Roman Numerals
The complete set of 13 symbols that form the basis of Roman numeral notation — 7 additive base symbols (I, V, X, L, C, D, M) plus 6 subtractive pairs (IV, IX, XL, XC, CD, CM). These are the unique tokens used by the standard algorithm to convert any integer to its Roman numeral representation and back.
Quick fetch
Stable URL. CORS-enabled. No auth.
curl https://staticdata.dev/v1/roman-numerals.json
Or use as a typed import:
import { romanNumerals } from "https://staticdata.dev/v1/roman-numerals.ts"
Formats
- JSON 596 B
/v1/roman-numerals.json
min: 360 B · /v1/roman-numerals.min.json
- CSV 101 B
/v1/roman-numerals.csv
- TypeScript 804 B
/v1/roman-numerals.ts
export const romanNumerals
type RomanNumeral = (typeof romanNumerals)[number]
Schema
Each record in the dataset has the following shape.
| Field | Type | Description | Example |
|---|---|---|---|
| value | number | Integer value of the Roman numeral symbol | 1000 |
| numeral | string | Roman numeral symbol string | M |
Preview
First 10 records.
Fetch examples
Drop-in snippets in five languages.
curl -sSL https://staticdata.dev/v1/roman-numerals.json | jq '.[0]' import type { RomanNumeral } from "https://staticdata.dev/v1/roman-numerals.ts";
const res = await fetch("https://staticdata.dev/v1/roman-numerals.min.json");
if (!res.ok) throw new Error(`Fetch failed: ${res.status}`);
const romanNumerals: RomanNumeral[] = await res.json();
console.log(romanNumerals[0]); import urllib.request, json
with urllib.request.urlopen("https://staticdata.dev/v1/roman-numerals.min.json") as r:
romanNumerals = json.load(r)
print(romanNumerals[0]) package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://staticdata.dev/v1/roman-numerals.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/roman-numerals.min.json").call()?.into_string()?;
let data: Vec<Value> = serde_json::from_str(&body)?;
println!("{:?}", data.first());
Ok(())
} Sources and methodology
Roman numerals use seven base letters — I (1), V (5), X (10), L (50), C (100), D (500), and M (1000) — combined with six subtractive pairs where a smaller symbol placed before a larger one represents the difference: IV (4), IX (9), XL (40), XC (90), CD (400), and CM (900). Together these 13 symbols are the atomic tokens of the standard (modern) Roman numeral notation, which is a convention rather than a formal standard, widely used in publishing, clocks, outlines, and numbering systems.
Subtractive forms appear in Roman inscriptions but were used inconsistently in antiquity (IIII for 4 is still common on clock faces); the consistent subtractive notation became the norm in the Middle Ages and early modern period and is the accepted modern convention. Each of the 13 entries in this dataset is a distinct, non-redundant token; the standard conversion algorithm iterates them from largest (M=1000) to smallest (I=1), greedily subtracting each symbol’s value and appending the symbol to the output string.
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
roman-numerals changelog for this dataset's history.
More Code datasets
- ansi-colors
- ascii
- cron-presets
- css-at-rules
- css-functions
- css-named-colors
- css-properties
- css-pseudo-classes
- css-pseudo-elements
- css-units
- data-units
- exit-codes
- file-signatures
- hash-algorithms
- js-array-methods
- js-math-methods
- js-object-methods
- js-string-methods
- json-schema-keywords
- jwt-claims
- mathematical-constants
- measurement-units
- node-builtin-modules
- owasp-top-10
- periodic-table
- physical-constants
- posix-signals
- programming-languages
- regex-flags
- regex-patterns
- si-base-units
- si-derived-units
- si-prefixes
- spdx-licenses
- strftime-tokens
- tailwind-colors
- time-units
- unicode-blocks
- unicode-general-categories
- unicode-planes
- unix-file-permissions
- xterm-256-colors