Skip to main content

API Standards

The Hyperion API adheres to widely adopted RFCs and ISO standards for data formats. This page documents each standard, explains how it applies to the API, and provides examples of valid and invalid values.

Phone numbers (E.164)​

All phone number fields follow the ITU-T E.164 international telephone numbering format.

Phone numbers must start with a + followed by the country code and subscriber number, with no spaces, hyphens, or parentheses. The maximum length is 15 digits (including the country code).

ValueValidReason
+14155552671YesUS number with country code 1
+442071838750YesUK number with country code 44
+5511998765432YesBrazil number with country code 55
(415) 555-2671NoContains parentheses, spaces, and hyphens
415-555-2671NoMissing + prefix and country code
+0123456789NoCountry code cannot start with 0
14155552671NoMissing + prefix
JSON
1{
2 "phoneNumber": "+14155552671"
3}

Country codes (ISO 3166-1)​

Country fields use ISO 3166-1 alpha-2 two-letter country codes.

ValueValidReason
USYesUnited States
CAYesCanada
DEYesGermany
USANoAlpha-3 code; the API requires alpha-2
usNoMust be uppercase
United StatesNoFull name not accepted
JSON
1{
2 "country": "US"
3}

State and province codes (ISO 3166-2)​

State and province fields use ISO 3166-2 subdivision codes in the format {country}-{subdivision}.

ValueValidReason
US-CAYesCalifornia, United States
US-DCYesDistrict of Columbia
CA-ONYesOntario, Canada
CANoMissing subdivision code
CaliforniaNoFull name not accepted
us-caNoCountry prefix must be uppercase
JSON
1{
2 "country": "US",
3 "state": "US-NY"
4}

Timestamps (ISO 8601 / RFC 3339)​

All timestamp fields use ISO 8601 format as profiled by RFC 3339. Timestamps are always in UTC, indicated by the Z suffix.

ValueValidReason
2024-02-17T10:45:23ZYesStandard UTC timestamp
2024-02-17T10:45:23.123ZYesWith millisecond precision
2024-02-17T10:45:23.123456ZYesWith microsecond precision
2024-02-17T10:45:23+00:00YesExplicit UTC offset
2024-02-17NoMissing time component
2024-02-17 10:45:23NoSpace instead of T separator
02/17/2024NoNot ISO 8601 format
1708166723NoUnix timestamp not accepted
JSON
1{
2 "createdAt": "2024-02-17T10:45:23Z",
3 "updatedAt": "2024-02-17T14:30:00.000Z"
4}

Language tags (BCP 47)​

Language and locale fields use BCP 47 language tags as defined in RFC 5646. Tags consist of a lowercase ISO 639-1 language code followed by an uppercase ISO 3166-1 region code, separated by a hyphen.

ValueValidReason
en-USYesEnglish (United States)
es-USYesSpanish (United States)
es-MXYesSpanish (Mexico)
fr-CAYesFrench (Canada)
pt-BRYesPortuguese (Brazil)
en_USNoUnderscore instead of hyphen
EN-usNoLanguage must be lowercase, region uppercase
englishNoFull language name not accepted
JSON
1{
2 "preferredLanguage": "en-US"
3}

Postal codes (USPS)​

For US addresses, postal code fields accept standard USPS 5-digit ZIP codes or 9-digit ZIP+4 codes with a hyphen separator.

ValueValidReason
94102YesStandard 5-digit ZIP
94102-1234YesZIP+4 format
9410NoFewer than 5 digits
941021234NoZIP+4 missing hyphen
94102-123NoZIP+4 extension must be 4 digits
ABCDENoMust be numeric
JSON
1{
2 "postalCode": "94102-1234"
3}

Identifiers (UUID)​

All resource identifiers use RFC 9562 Universally Unique Identifiers (UUIDs) in their canonical lowercase string representation.

ValueValidReason
550e8400-e29b-41d4-a716-446655440000YesStandard UUID format
550e8400e29b41d4a716446655440000NoMissing hyphens
550e8400-e29b-41d4-a716NoIncomplete UUID
not-a-uuidNoInvalid format
JSON
1{
2 "id": "550e8400-e29b-41d4-a716-446655440000",
3 "partnerId": "123e4567-e89b-12d3-a456-426614174000"
4}

Currency codes (ISO 4217)​

All monetary amounts include a currency field using ISO 4217 three-letter currency codes.

ValueValidReason
USDYesUnited States Dollar
CADYesCanadian Dollar
MXNYesMexican Peso
usdNoMust be uppercase
USNoMust be a 3-letter code
$NoCurrency symbols are not accepted
JSON
1{
2 "fee": {
3 "amount": 50,
4 "currency": "USD"
5 }
6}

Durations (ISO 8601)​

Duration and period fields use ISO 8601 duration format. Durations start with P (period) followed by date components, or PT for time-only components. The API uses durations for familiarization periods, multi-zone timing windows, responsible party response times, and permit or notice fee cadence (frequency on fees and renewals).

ValueValidMeaning
P7DYes7 days (common familiarization period)
P5DYes5 days
P15MYes15 minutes (multi-zone activation or RP response window)
P30MYes30 minutes (responsible party response window)
P1YYes1 year (also used for annual fees or renewals)
P3MYes3 months (quarterly fees or renewals)
PT0SYesZero-length period (one-time fee or non-recurring renewal)
7NoMissing P prefix
7DNoMissing P prefix
PNoNo duration component specified
JSON
1{
2 "period": "P7D",
3 "renewal": {
4 "frequency": "P1Y"
5 }
6}

Error responses (RFC 9457)​

All error responses follow RFC 9457 Problem Details for HTTP APIs. For the full error response format, status codes, and validation error structure, see the Errors page.

Standards reference​

StandardSpecificationFields
ITU-T E.164ITU-T E.164phoneNumber
ISO 3166-1 alpha-2ISO 3166country
ISO 3166-2ISO 3166state
ISO 4217ISO 4217currency
ISO 8601 / RFC 3339ISO 8601 / RFC 3339createdAt, updatedAt, observedAt, effectiveAt, expiresAt
ISO 8601 DurationsISO 8601period, fee and renewal frequency
BCP 47 / RFC 5646BCP 47 / RFC 5646preferredLanguage
USPS ZIP CodeUSPSpostalCode
RFC 9562RFC 9562id, partnerId, monitorableId, entityId
RFC 9457RFC 9457Error responses