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).
Quick fetch
Stable URL. CORS-enabled. No auth.
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
min: 2.5 KB · /v1/morse-code.min.json
- CSV 934 B
/v1/morse-code.csv
- TypeScript 4.0 KB
/v1/morse-code.ts
export const morseCode
type MorseCode = (typeof morseCode)[number]
Schema
Each record in the dataset has the following shape.
| 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.
Fetch examples
Drop-in snippets in five languages.
curl -sSL https://staticdata.dev/v1/morse-code.json | jq '.[0]' 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]); 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]) 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])
} 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.