staticdata.dev
Menu
Datasets About Contact

Morse Code

The International Morse Code table covering all 26 letters (A–Z), 10 digits (0–9), and 18 common punctuation marks (the ITU-R M.1677-1 set plus five widely used non-ITU extensions). Each entry records the symbol, its dot-dash encoding, and a type classification (letter, digit, or punctuation).

v1.0.0 MIT 54 records Updated 2026-10-05 stable Source:  ITU-R M.1677-1 International Morse Code

Quick fetch

Stable URL. CORS-enabled. No auth.

bash
curl https://staticdata.dev/v1/morse-code.json

Or use as a typed import: import { morseCode } from "https://staticdata.dev/v1/morse-code.ts"

Formats

  • JSON 3.8 KB

    /v1/morse-code.json

    Open

    min: 2.5 KB · /v1/morse-code.min.json

  • CSV 934 B

    /v1/morse-code.csv

    Open
  • TypeScript 4.0 KB

    /v1/morse-code.ts

    export const morseCode

    type MorseCode = (typeof morseCode)[number]

    Open

Schema

Each record in the dataset has the following shape.

Schema
Field Type Description Example
symbol string The character being encoded (uppercase letter, digit, or punctuation) A
morse string Dot-dash encoding using . and - characters .-
type string Classification: letter, digit, or punctuation letter

Preview

First 10 records.

Data preview
symbolmorsetype
A.-letter
B-...letter
C-.-.letter
D-..letter
E.letter
F..-.letter
G--.letter
H....letter
I..letter
J.---letter

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

Fetch examples

Drop-in snippets in five languages.

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

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

with urllib.request.urlopen("https://staticdata.dev/v1/morse-code.min.json") as r:
    morseCode = json.load(r)

print(morseCode[0])
Go
package main

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

func main() {
	resp, err := http.Get("https://staticdata.dev/v1/morse-code.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/morse-code.min.json").call()?.into_string()?;
    let data: Vec<Value> = serde_json::from_str(&body)?;
    println!("{:?}", data.first());
    Ok(())
}

Sources and methodology

This dataset contains the letters, digits and punctuation of International Morse Code as standardized by the ITU-R M.1677-1 recommendation, plus a few common non-ITU extensions. Morse code encodes text as sequences of dots (short signals) and dashes (long signals), originally designed for telegraphy but still used in amateur radio, aviation, and emergency communications.

The 54 entries cover all 26 Latin letters (A–Z, rendered uppercase), all 10 decimal digits (0–9), and 18 common punctuation marks: period, comma, question mark, apostrophe, exclamation mark, slash, parentheses, ampersand, colon, semicolon, equals, plus, hyphen, underscore, quotation mark, dollar sign, and at sign. The type field classifies each symbol as letter, digit, or punctuation to allow easy filtering.

The dot-dash sequences for letters and digits are universal across all ITU-compliant implementations. Of the punctuation, 13 marks (. , ? ' / ( ) : = + - " @) are defined in ITU-R M.1677-1; the other five (!, &, ;, _, $) are not part of the ITU recommendation but are widely used, mainly in amateur radio practice. ITU-only items such as the multiplication sign (sent as X), procedural signals (e.g. error, understood, end of work) and accented letters are not included.

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 morse-code changelog for this dataset's history.

Related datasets

More Locale datasets