> ## Documentation Index
> Fetch the complete documentation index at: https://docs.uapi.nl/llms.txt
> Use this file to discover all available pages before exploring further.

# Types

> Field types and normalization guarantees

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.

<ResponseExample>
  ```json Example normalization theme={null}
  {
    "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
  }
  ```
</ResponseExample>

## 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.

<ResponseExample>
  ```json Dates theme={null}
  {
    "opened_at": "2025-10-23T09:05:18Z",
    "closed_at": null
  }
  ```
</ResponseExample>

## 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.

<ResponseExample>
  ```json Magnitude and currency theme={null}
  {
    "market_cap": 13000000000,
    "avg_volume": 173590218,
    "unit_price": 19.99
  }
  ```
</ResponseExample>

## 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.

<ResponseExample>
  ```json Booleans and arrays theme={null}
  {
    "is_featured": true,
    "aliases": ["NVIDIA", "NVDA"],
    "related_symbols": []
  }
  ```
</ResponseExample>

## 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.

<ResponseExample>
  ```json Naming theme={null}
  {
    "first_seen_at": "2025-10-23T09:00:00Z",
    "last_trade_price": 180.28,
    "fifty_two_week_high": 195.62
  }
  ```
</ResponseExample>

## 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.
