NATO Phonetic Alphabet
The NATO phonetic alphabet — also called the ICAO or international radiotelephony spelling alphabet — used to spell out letters unambiguously over radio and phone. Alfa, Bravo, Charlie through Zulu, plus the digits, each with its code word, a pronunciation respelling, and the corresponding Morse code.
Quick fetch
Stable URL. CORS-enabled. No auth.
curl https://staticdata.dev/v1/nato-phonetic-alphabet.json
Or use as a typed import:
import { natoPhoneticAlphabet } from "https://staticdata.dev/v1/nato-phonetic-alphabet.ts"
Formats
- JSON 3.5 KB
/v1/nato-phonetic-alphabet.json
min: 2.5 KB · /v1/nato-phonetic-alphabet.min.json
- CSV 808 B
/v1/nato-phonetic-alphabet.csv
- TypeScript 3.8 KB
/v1/nato-phonetic-alphabet.ts
export const natoPhoneticAlphabet
type NatoPhonetic = (typeof natoPhoneticAlphabet)[number]
Schema
Each record in the dataset has the following shape.
| Field | Type | Description | Example |
|---|---|---|---|
| symbol | string | The letter or digit | A |
| word | string | Code word | Alfa |
| pronunciation | string | Pronunciation respelling | AL-fah |
| morse | string | Morse code | .- |
Preview
First 10 records.
Fetch examples
Drop-in snippets in five languages.
curl -sSL https://staticdata.dev/v1/nato-phonetic-alphabet.json | jq '.[0]' import type { NatoPhonetic } from "https://staticdata.dev/v1/nato-phonetic-alphabet.ts";
const res = await fetch("https://staticdata.dev/v1/nato-phonetic-alphabet.min.json");
if (!res.ok) throw new Error(`Fetch failed: ${res.status}`);
const natoPhoneticAlphabet: NatoPhonetic[] = await res.json();
console.log(natoPhoneticAlphabet[0]); import urllib.request, json
with urllib.request.urlopen("https://staticdata.dev/v1/nato-phonetic-alphabet.min.json") as r:
natoPhoneticAlphabet = json.load(r)
print(natoPhoneticAlphabet[0]) package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://staticdata.dev/v1/nato-phonetic-alphabet.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])
} use serde_json::Value;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let body = ureq::get("https://staticdata.dev/v1/nato-phonetic-alphabet.min.json").call()?.into_string()?;
let data: Vec<Value> = serde_json::from_str(&body)?;
println!("{:?}", data.first());
Ok(())
} Sources and methodology
The international radiotelephony spelling alphabet adopted by the ICAO and NATO, covering the 26 letters A–Z and the digits 0–9.
The spellings Alfa and Juliett are intentional: they use these forms (rather than “Alpha” and “Juliet”) so that speakers of languages without the “ph” or final-consonant conventions still pronounce them correctly. The pronunciation field is the official respelling, with the stressed syllable capitalized. Digit code words are the plain English numbers, with the well-known aviation pronunciations “FOWER” for 4, “FIFE” for 5, “TREE” for 3, and “NIN-er” for 9 to avoid confusion over noisy channels. The morse field gives the standard International Morse Code for each symbol, included because the same letters and digits are so often referenced together.
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
nato-phonetic-alphabet changelog for this dataset's history.