---
title: "Mobile Assets V1"
method: GET
path: "/v1/mobile/assets"
---

# Mobile Assets V1

`GET /v1/mobile/assets`

## Request

- Base URL: `https://api.n0brains.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.n0brains.com/v1/mobile/assets`
- Auth: none declared

Typed Markets directory (anonymous). Every display concern is
backend-owned — assetId opaque + case-sensitive + /check/assets-compatible,
displayName/sortOrder/assetClass/availability all served, client transforms
nothing.

A PARTIAL universe is never served (no stub, no missing-leg list): those
stay 503. A merely OLD one is served with `meta.degraded: true` and the
real `meta.dataTime`, because the client already renders a labelled stale
state and an error tells the user less than the truth does (ops #179).

## Response `200`

Successful Response

- MobileAssetsResponse: GET /v1/mobile/assets — typed Markets directory (anonymous). Every display concern is served, so the client computes nothing. 503 on a PARTIAL universe (missing leg, or a cold-start stub) — that rule is unchanged. A merely OLD universe is served with meta.degraded, because the client renders a labelled stale state and an error says less.
  - `schemaVersion` 1, required
  - `items` MobileAssetItem[], required
    - `assetId` string, required: Opaque, case-sensitive, /check/assets-compatible. No client transform.
    - `symbol` string, required
    - `displayName` string, required: Backend-owned; falls back to symbol then assetId.
    - `assetClass` 'crypto' | 'stock' | 'metal' | 'commodity' | 'index' | 'other', required
    - `sortOrder` integer, required: Backend-owned stable integer, lower-first; unordered assets sort after ordered, tie-broken by case-sensitive assetId.
    - `availability` AssetAvailability, required
      - `markets` boolean, required
      - `price` boolean, required
      - `check` boolean, required
      - `assetDetail` boolean, required
  - `meta` MobileAssetsMeta, required
    - `serverTime` string, required
    - `count` integer, required
    - `degraded` boolean, nullable: Present (true) ONLY when the list is the last known good universe rather than a fresh read. It is COMPLETE — a partial universe is never served, it is a 503. Absent means fresh.
    - `dataTime` string, nullable: Observation time of a degraded list. Present only alongside degraded; never the request time.

## Other responses

- `503`: Service Unavailable

---

[API](https://skmtc.dev/n0brains/apis/n0brains-signals-api.md) · [All operations](https://skmtc.dev/n0brains/apis/n0brains-signals-api/llms.txt) · [OpenAPI document](https://skmtc.dev/n0brains/apis/n0brains-signals-api/revisions/ac21b5aebd10?raw)
