Skip to main content
uAPI produces normalized, schema-validated JSON designed to be consistent across vastly different sources. The envelope is stable, and the data object adheres to a schema chosen for the target page type. Field names use snake_case, dates are ISO 8601 UTC strings, numbers are numeric types with expanded magnitudes, booleans are true or false, unknowns are null, and arrays are always arrays even when they contain a single item. Currency values are numbers without symbols and without localized formatting.
{
  "name": "NVIDIA Corporation",
  "symbol": "NVDA",
  "price": 180.28,
  "percent_change": -0.49,
  "market_status": "closed",
  "timestamp": "2025-10-23T09:00:00Z",
  "tags": ["semiconductors"],
  "is_active": true,
  "notes": null
}

Dates and timezones

All timestamp fields are normalized to ISO 8601 in UTC. The Z suffix indicates zero offset. There are no locale-dependent formats, no ambiguous month and day ordering, and no numeric timestamps. Time-only fields are emitted as full timestamps where applicable, or as null when the source omits them.
{
  "opened_at": "2025-10-23T09:05:18Z",
  "closed_at": null
}

Numbers, magnitude, and currency

Abbreviations such as K, M, B, and T are expanded to full numeric values. Currency symbols are removed so the field is a pure number that can be used in arithmetic without additional parsing. Decimal precision is preserved from the source.
{
  "market_cap": 13000000000,
  "avg_volume": 173590218,
  "unit_price": 19.99
}

Booleans, nulls, and arrays

Booleans are true or false and never “true”, “false”, 1, or 0. The absence of a value is expressed as null and not as “null” or an empty string. Fields that represent collections are always arrays to retain schema stability even when only one item is present.
{
  "is_featured": true,
  "aliases": ["NVIDIA", "NVDA"],
  "related_symbols": []
}

Field naming

All keys are emitted in snake_case. This rule applies recursively, converting camelCase, PascalCase, and kebab-case to a uniform style. Downstream systems can rely on consistent naming without special-case handling.
{
  "first_seen_at": "2025-10-23T09:00:00Z",
  "last_trade_price": 180.28,
  "fifty_two_week_high": 195.62
}

Practical parsing tips

Treat numeric fields as numbers at parse time to preserve precision and to avoid downstream localization issues. Treat timestamp fields as UTC, parsing with an ISO 8601 compliant library. When a field is documented as an array, always process it as an array even when it contains one element. Never rely on zero sentinel values to infer unknown data; null explicitly communicates unknown or unavailable.