staticdata.dev
Menu
Datasets About Contact

ISO 15924 Script Codes

ISO 15924 defines a set of four-letter alphabetic codes and three-digit numeric codes for the names of writing systems (scripts). Maintained by the Unicode Consortium on behalf of ISO, it is widely used in IANA language tags, OpenType font tables, and Unicode character properties to identify the script a character or text belongs to.

v1.0.0 MIT 226 records Updated 2026-10-05 stable Source:  Unicode Consortium — ISO 15924 Registry

Quick fetch

Stable URL. CORS-enabled. No auth.

bash
curl https://staticdata.dev/v1/iso-15924.json

Or use as a typed import: import { iso15924 } from "https://staticdata.dev/v1/iso-15924.ts"

Formats

  • JSON 22.5 KB

    /v1/iso-15924.json

    Open

    min: 15.9 KB · /v1/iso-15924.min.json

  • CSV 7.5 KB

    /v1/iso-15924.csv

    Open
  • TypeScript 22.7 KB

    /v1/iso-15924.ts

    export const iso15924

    type ScriptCode = (typeof iso15924)[number]

    Open

Schema

Each record in the dataset has the following shape.

Schema
Field Type Description Example
code string Four-letter ISO 15924 script code Latn
number number Three-digit numeric script code 215
name string English name of the script Latin
alias? string | null Unicode property value alias (PVA), or null if none Latin

Preview

First 10 records.

Data preview
codenumbernamealias
Pcun15Proto-Cuneiform
Pelm16Proto-Elamite
Xsux20Cuneiform, Sumero-AkkadianCuneiform
Xpeo30Old PersianOld_Persian
Ugar40UgariticUgaritic
Egyp50Egyptian hieroglyphsEgyptian_Hieroglyphs
Egyh60Egyptian hieratic
Egyd70Egyptian demotic
Hluw80Anatolian Hieroglyphs (Luwian Hieroglyphs, Hittite Hieroglyphs)Anatolian_Hieroglyphs
Nkdb85Naxi Dongba (na²¹ɕi³³ to³³ba²¹, Nakhi Tomba)

Showing 10 of 226. View full data:  JSON · CSV

Fetch examples

Drop-in snippets in five languages.

curl
curl -sSL https://staticdata.dev/v1/iso-15924.json | jq '.[0]'
JavaScript
import type { ScriptCode } from "https://staticdata.dev/v1/iso-15924.ts";

const res = await fetch("https://staticdata.dev/v1/iso-15924.min.json");
if (!res.ok) throw new Error(`Fetch failed: ${res.status}`);
const iso15924: ScriptCode[] = await res.json();
console.log(iso15924[0]);
Python
import urllib.request, json

with urllib.request.urlopen("https://staticdata.dev/v1/iso-15924.min.json") as r:
    iso15924 = json.load(r)

print(iso15924[0])
Go
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
)

func main() {
	resp, err := http.Get("https://staticdata.dev/v1/iso-15924.min.json")
	if err != nil { panic(err) }
	defer resp.Body.Close()

	var data []map[string]any
	if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
		panic(err)
	}
	fmt.Println(data[0])
}
Rust
use serde_json::Value;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let body = ureq::get("https://staticdata.dev/v1/iso-15924.min.json").call()?.into_string()?;
    let data: Vec<Value> = serde_json::from_str(&body)?;
    println!("{:?}", data.first());
    Ok(())
}

Sources and methodology

ISO 15924 is the international standard for codes representing the names of writing scripts. It assigns each script a unique four-letter alphabetic code (e.g. Latn for Latin, Arab for Arabic) and a three-digit numeric code (e.g. 215 for Latin). The registry is maintained by the Unicode Consortium as the Registration Authority on behalf of the International Organization for Standardization (ISO).

This dataset was sourced directly from the authoritative registry file published at https://www.unicode.org/iso15924/iso15924.txt. Each record includes the four-letter code, numeric identifier, English name, and the Unicode Property Value Alias (PVA) where one exists. The PVA is used in Unicode’s Script character property and in regular expression engines that support \p{Script=...} syntax.

As of October 2026 the dataset matches the registry exactly (most recent registry change: 2025-04-24). It contains 226 entries covering scripts ranging from ancient systems like Cuneiform and Egyptian Hieroglyphs to modern scripts still in active use. Entries with no defined Unicode PVA have alias: null. The data is sorted by numeric code.

Versioning

URLs under /v1/ are stable: field names and types will not change in a way that breaks consumers. Values can be corrected or records added when the upstream source changes; schema-incompatible updates ship under a new version path. See the iso-15924 changelog for this dataset's history.

More Locale datasets