Skip to main content

NATO Phonetic Alphabet API

REAL DATA

The official ICAO/NATO phonetic alphabet — all 36 characters with code words and pronunciations, plus a /spell route that spells out any text.

Authoritative reference data or standards computation

Base URL
/api/nato-alphabet
Capabilities
2 routes
Last updated
July 29, 2026
Data source

GET /api/nato-alphabet

Live requestRuns against the public API
No key required
GET/api/nato-alphabet

Request parameters

Only the 26 letters, only the 10 digits, or the full table.

Advanced response options6 options

Limit the number of returned records (1–100). Defaults to all matches.

Return only these fields (comma-separated). Mutually exclusive with 'exclude'.

Return all fields except these (comma-separated).

Response format: json envelope, ndjson (one record per line) or csv.

Pretty-print the JSON response.

Drop the envelope: return the raw array/object without data/meta wrapper.

Response

Example parameters are ready. Send the request to inspect the live response.

Route reference

Code samples Ready-to-copy requests in 4 languages
Choose a code sample language
curl "https://randomapi.dev/api/nato-alphabet"
const res = await fetch("https://randomapi.dev/api/nato-alphabet");
const { data, meta } = await res.json();
import requests

data = requests.get("https://randomapi.dev/api/nato-alphabet").json()["data"]
$json = json_decode(file_get_contents(
  "https://randomapi.dev/api/nato-alphabet"
), true);
$data = $json["data"];
Parameters Route-specific request inputs 1
group enum

Only the 26 letters, only the 10 digits, or the full table.

default: any
allowed: letters | digits | any
example: group=letters
Universal parameters Shared response and formatting options 6
count int

Limit the number of returned records (1–100). Defaults to all matches.

default: all matches
allowed: 1 – 100
example: count=3
fields list

Return only these fields (comma-separated). Mutually exclusive with 'exclude'.

example: fields=character,code
exclude list

Return all fields except these (comma-separated).

example: exclude=pronunciation
format enum

Response format: json envelope, ndjson (one record per line) or csv.

default: json
allowed: json | ndjson | csv
example: format=csv
pretty boolean

Pretty-print the JSON response.

default: false
example: pretty=true
unwrap boolean

Drop the envelope: return the raw array/object without data/meta wrapper.

default: false
example: unwrap=true
Response schema Fields returned in each record 3
character string

The letter (A–Z) or digit (0–9).

example: A

code string

The official ICAO code word — note 'Alfa' and 'Juliett' are the official spellings.

example: Alfa

pronunciation string

ICAO respelling with stressed syllables (TREE for 3, FOW-ER for 4, FIFE for 5, NIN-ER for 9).

example: AL-FAH

Documented examples

Build-generated requests and complete responses
3
The full table
GET /api/nato-alphabet
{
  "data": [
    {
      "character": "A",
      "code": "Alfa",
      "pronunciation": "AL-FAH"
    },
    {
      "character": "B",
      "code": "Bravo",
      "pronunciation": "BRAH-VOH"
    },
    {
      "character": "C",
      "code": "Charlie",
      "pronunciation": "CHAR-LEE"
    },
    {
      "character": "D",
      "code": "Delta",
      "pronunciation": "DELL-TAH"
    },
    {
      "character": "E",
      "code": "Echo",
      "pronunciation": "ECK-OH"
    },
    {
      "character": "F",
      "code": "Foxtrot",
      "pronunciation": "FOKS-TROT"
    },
    {
      "character": "G",
      "code": "Golf",
      "pronunciation": "GOLF"
    },
    {
      "character": "H",
      "code": "Hotel",
    …
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}
Digits only (TREE, FOW-ER, FIFE …)
GET /api/nato-alphabet?group=digits
{
  "data": [
    {
      "character": "0",
      "code": "Zero",
      "pronunciation": "ZE-RO"
    },
    {
      "character": "1",
      "code": "One",
      "pronunciation": "WUN"
    },
    {
      "character": "2",
      "code": "Two",
      "pronunciation": "TOO"
    },
    {
      "character": "3",
      "code": "Three",
      "pronunciation": "TREE"
    },
    {
      "character": "4",
      "code": "Four",
      "pronunciation": "FOW-ER"
    },
    {
      "character": "5",
      "code": "Five",
      "pronunciation": "FIFE"
    },
    {
      "character": "6",
      "code": "Six",
      "pronunciation": "SIX"
    },
    {
      "character": "7",
      "code": "Seven",
    …
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}
Letters as CSV
GET /api/nato-alphabet?group=letters&format=csv
character,code,pronunciation
A,Alfa,AL-FAH
B,Bravo,BRAH-VOH
C,Charlie,CHAR-LEE
D,Delta,DELL-TAH
E,Echo,ECK-OH
F,Foxtrot,FOKS-TROT
G,Golf,GOLF
H,Hotel,HOH-TELL
I,India,IN-DEE-AH
J,Juliett,JEW-LEE-ETT
K,Kilo,KEY-LOH
L,Lima,LEE-MAH
M,Mike,MIKE
N,November,NO-VEM-BER
O,Oscar,OSS-CAH
P,Papa,PAH-PAH
Q,Quebec,KEH-BECK
R,Romeo,ROW-ME-OH
S,Sierra,SEE-AIR-RAH
T,Tango,TANG-GO
U,Uniform,YOU-NEE-FORM
V,Victor,VIK-TAH
W,Whiskey,WISS-KEY
X,X-ray,ECKS-RAY
Y,Yankee,YANG-KEY
Z,Zulu,ZOO-LOO

GET /api/nato-alphabet/spell

Letters are matched case-insensitively, digits use the number words, a space becomes (space), any other character passes through unchanged.

Live requestRuns against the public API
No key required
GET/api/nato-alphabet/spell?text=hello

Request parameters

The text to spell (1–100 characters).

Advanced response options4 options

Return only these fields (comma-separated). Mutually exclusive with 'exclude'.

Return all fields except these (comma-separated).

Pretty-print the JSON response.

Drop the envelope: return the raw array/object without data/meta wrapper.

Response

Example parameters are ready. Send the request to inspect the live response.

Route reference

Code samples Ready-to-copy requests in 4 languages
Choose a code sample language
curl "https://randomapi.dev/api/nato-alphabet/spell?text=hello"
const res = await fetch("https://randomapi.dev/api/nato-alphabet/spell?text=hello");
const { data, meta } = await res.json();
import requests

data = requests.get("https://randomapi.dev/api/nato-alphabet/spell?text=hello").json()["data"]
$json = json_decode(file_get_contents(
  "https://randomapi.dev/api/nato-alphabet/spell?text=hello"
), true);
$data = $json["data"];
Parameters Route-specific request inputs 1
text string required

The text to spell (1–100 characters).

allowed: 1 – 100
example: text=hello
Universal parameters Shared response and formatting options 4
fields list

Return only these fields (comma-separated). Mutually exclusive with 'exclude'.

example: fields=text,spelled
exclude list

Return all fields except these (comma-separated).

example: exclude=sentence
pretty boolean

Pretty-print the JSON response.

default: false
example: pretty=true
unwrap boolean

Drop the envelope: return the raw array/object without data/meta wrapper.

default: false
example: unwrap=true
Response schema Fields returned in each record 3
text string

The input text, echoed back.

example: hello

spelled object[]

One entry per character: the original character and its code word ('(space)' for spaces; characters outside A–Z/0–9 pass through unchanged).

example: [{"character":"h","code":"Hotel"},{"character":"i","code":"India"}]

sentence string

All code words joined with single spaces — ready to read out loud.

example: Hotel India

Documented examples

Build-generated requests and complete responses
3
Spell 'hello'
GET /api/nato-alphabet/spell?text=hello
{
  "data": {
    "text": "hello",
    "spelled": [
      {
        "character": "h",
        "code": "Hotel"
      },
      {
        "character": "e",
        "code": "Echo"
      },
      {
        "character": "l",
        "code": "Lima"
      },
      {
        "character": "l",
        "code": "Lima"
      },
      {
        "character": "o",
        "code": "Oscar"
      }
    ],
    "sentence": "Hotel Echo Lima Lima Oscar"
  },
  "meta": {
    "endpoint": "nato-alphabet",
    "route": "/spell",
    "params": {
      "text": "hello"
    },
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}
Letters, digits and a space
GET /api/nato-alphabet/spell?text=SOS%20112
{
  "data": {
    "text": "SOS 112",
    "spelled": [
      {
        "character": "S",
        "code": "Sierra"
      },
      {
        "character": "O",
        "code": "Oscar"
      },
      {
        "character": "S",
        "code": "Sierra"
      },
      {
        "character": " ",
        "code": "(space)"
      },
      {
        "character": "1",
        "code": "One"
      },
      {
        "character": "1",
        "code": "One"
      },
      {
        "character": "2",
        "code": "Two"
      }
    ],
    "sentence": "Sierra Oscar Sierra (space) One One Two"
  },
  "meta": {
    "endpoint": "nato-alphabet",
    "route": "/spell",
    "params": {
      "text": "SOS 112"
    },
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}
Just the sentence
GET /api/nato-alphabet/spell?text=cargo&fields=sentence
{
  "data": {
    "sentence": "Charlie Alfa Romeo Golf Oscar"
  },
  "meta": {
    "endpoint": "nato-alphabet",
    "route": "/spell",
    "params": {
      "text": "cargo"
    },
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}

About this API

Coverage & behavior

The ICAO radiotelephony spelling alphabet exactly as standardized (ICAO Annex 10): 26 letters plus the 10 digits, with the official spellingsAlfa (not Alpha) and Juliett (not Juliet), chosen so the words are pronounced correctly in every language — and the ICAO pronunciation respellings, including the radio-safe digits TREE (3), FOW-ER (4), FIFE (5) and NIN-ER (9).

Two routes:

  • /api/nato-alphabet — the reference table (filter with group=letters|digits).
  • /api/nato-alphabet/spell?text=… — spells any text: letters match case-insensitively, digits use the number words, a space becomes (space), and any other character passes through unchanged. The ready-to-read sentence joins the code words with spaces.

Deterministic: the same text always spells the same way.

Use it for

  • Read confirmation codes, call signs or license plates over the phone without ambiguity
  • Add a 'spell this' helper to support tools and IVR scripts
  • Teach or quiz the phonetic alphabet from the authoritative table

Frequently asked questions

How do I spell a word?

/api/nato-alphabet/spell?text=hello answers Hotel Echo Lima Lima Oscar — as a per-character breakdown and a ready-made sentence.

Are digits included?

Yes — letters and digits both, with pronunciations; group=letters|digits filters the reference list.

Which spelling standard is this?

The ICAO/NATO radiotelephony alphabet (Alfa, Bravo, Charlie…) — the international standard used in aviation and telecoms.