> For the complete documentation index, see [llms.txt](https://docs.stork.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.stork.network/resources/stork-fast/rest-api.md).

# REST API

## Get FAST Taxonomy

> Get the taxonomy id and the list of assets the authenticated user is\
> authorized to receive. The numeric \`asset\_id\` returned for each asset\
> is scoped to the returned \`taxonomy\_id\`.

```json
{"openapi":"3.0.3","info":{"title":"Stork FAST Distributor API","version":"1.0"},"tags":[{"name":"Taxonomy","description":"Asset taxonomy used to decode FAST messages"}],"servers":[{"url":"https://fast.jp.stork-oracle.network"}],"security":[{"token_auth":[]}],"components":{"securitySchemes":{"token_auth":{"description":"Enter your token in the format of \"Basic your-token\"","type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"TaxonomyResponse":{"type":"object","properties":{"taxonomy_id":{"$ref":"#/components/schemas/TaxonomyID"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/TaxonomyAsset"}}},"required":["taxonomy_id","assets"]},"TaxonomyID":{"type":"integer","format":"int32","minimum":0,"maximum":65535,"description":"Identifier for a FAST taxonomy. Stable for the lifetime of a deployment."},"TaxonomyAsset":{"type":"object","properties":{"name":{"$ref":"#/components/schemas/PriceID"},"asset_id":{"$ref":"#/components/schemas/AssetID"}},"required":["name","asset_id"],"description":"Mapping between a human-readable price id and its numeric asset id within a taxonomy."},"PriceID":{"type":"string","description":"Human-readable price identifier (e.g. `BTCUSD`)."},"AssetID":{"type":"integer","format":"int32","minimum":0,"maximum":65535,"description":"Compact numeric asset id used inside FAST messages."},"ErrorResponse":{"type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/v1/taxonomy":{"get":{"tags":["Taxonomy"],"summary":"Get FAST Taxonomy","description":"Get the taxonomy id and the list of assets the authenticated user is\nauthorized to receive. The numeric `asset_id` returned for each asset\nis scoped to the returned `taxonomy_id`.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxonomyResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Get Latest Prices

> Get the most recent prices for one or more assets as a FAST message.\
> Assets are identified by their numeric FAST asset ids (scoped to the\
> current taxonomy returned by \`/v1/taxonomy\`). The response is the FAST\
> wire payload encoded as JSON.\
> \
> The \`message\_type\` query parameter selects the wire format:\
> \- \`unsigned\` \*(default)\* — taxonomy, timestamp, and quantized values per asset.\
> \- \`signed\_ecdsa\` — same as \`unsigned\` plus a hex-encoded ECDSA payload (\`p\`)\
> &#x20; covering the assets list, taxonomy id, and timestamp.\
> \
> Quantized values (\`v\`) are decimal strings scaled by 1e18.

```json
{"openapi":"3.0.3","info":{"title":"Stork FAST Distributor API","version":"1.0"},"tags":[{"name":"Prices","description":"Latest FAST price reads"}],"servers":[{"url":"https://fast.jp.stork-oracle.network"}],"security":[{"token_auth":[]}],"components":{"securitySchemes":{"token_auth":{"description":"Enter your token in the format of \"Basic your-token\"","type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"LatestPricesUnsignedResponse":{"type":"object","properties":{"type":{"type":"string","enum":["unsigned"]},"tax":{"$ref":"#/components/schemas/TaxonomyID"},"ts":{"type":"integer","format":"int64","description":"Response timestamp in nanoseconds since the Unix epoch."},"a":{"type":"array","items":{"$ref":"#/components/schemas/LatestPricesAsset"}}},"required":["tax","ts","a"]},"TaxonomyID":{"type":"integer","format":"int32","minimum":0,"maximum":65535,"description":"Identifier for a FAST taxonomy. Stable for the lifetime of a deployment."},"LatestPricesAsset":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/AssetID"},"v":{"type":"string","description":"Quantized price value as a decimal string (scaled by 1e18)."}},"required":["id","v"]},"AssetID":{"type":"integer","format":"int32","minimum":0,"maximum":65535,"description":"Compact numeric asset id used inside FAST messages."},"LatestPricesSignedECDSAResponse":{"type":"object","description":"Signed ECDSA response. The taxonomy id, timestamp, and asset values are\npacked into the binary payload (`p`), not into the outer JSON.","properties":{"type":{"type":"string","enum":["signed_ecdsa"]},"p":{"type":"string","description":"Hex-encoded (0x-prefixed) binary payload covering the ECDSA signature\nand the taxonomy id, timestamp, and assets. Layout:\n65-byte signature + 2-byte taxonomy id + 8-byte timestamp +\nN × (2-byte asset id + 16-byte quantized value)."}},"required":["type","p"]},"ErrorResponse":{"type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/v1/prices/latest":{"get":{"tags":["Prices"],"summary":"Get Latest Prices","description":"Get the most recent prices for one or more assets as a FAST message.\nAssets are identified by their numeric FAST asset ids (scoped to the\ncurrent taxonomy returned by `/v1/taxonomy`). The response is the FAST\nwire payload encoded as JSON.\n\nThe `message_type` query parameter selects the wire format:\n- `unsigned` *(default)* — taxonomy, timestamp, and quantized values per asset.\n- `signed_ecdsa` — same as `unsigned` plus a hex-encoded ECDSA payload (`p`)\n  covering the assets list, taxonomy id, and timestamp.\n\nQuantized values (`v`) are decimal strings scaled by 1e18.","parameters":[{"name":"assets","in":"query","description":"Comma-separated list of FAST asset ids to fetch (e.g. `1,2,3`).","required":true,"schema":{"type":"string"}},{"name":"message_type","in":"query","description":"Wire format for the response payload.","required":false,"schema":{"type":"string","enum":["unsigned","signed_ecdsa"],"default":"unsigned"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/LatestPricesUnsignedResponse"},{"$ref":"#/components/schemas/LatestPricesSignedECDSAResponse"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Get Market Status

> Get the current market status, next market status, and the time of the\
> next status change for a FAST-tracked asset, identified by its numeric\
> FAST asset id.\
> \
> The response is an \*\*unsigned\*\* JSON object with Fast-style short keys:\
> \- \`a\` — the requested FAST asset id\
> \- \`ts\` — request timestamp in nanoseconds\
> \- \`cs\` — current status code\
> \- \`ns\` — next status code\
> \- \`chts\` — timestamp of the next status change in nanoseconds\
> \
> \*\*Status codes:\*\*\
> \| Code | Meaning |\
> \|------|---------|\
> \| 0 | Closed |\
> \| 1 | Regular Hours |\
> \| 2 | Extended Hours |\
> \| 3 | After Hours |\
> \
> Supported asset classes: US equities (e.g. \`AAPL\_24\_5\`, \`TSLA\_24\_5\`),\
> forex pairs (e.g. \`EURUSD\`, \`USDJPY\`), and metals (\`XAUUSD\`, \`XAGUSD\`).

```json
{"openapi":"3.0.3","info":{"title":"Stork FAST Distributor API","version":"1.0"},"tags":[{"name":"Market Status","description":"Market status for FAST-tracked assets"}],"servers":[{"url":"https://fast.jp.stork-oracle.network"}],"security":[{"token_auth":[]}],"components":{"securitySchemes":{"token_auth":{"description":"Enter your token in the format of \"Basic your-token\"","type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"AssetID":{"type":"integer","format":"int32","minimum":0,"maximum":65535,"description":"Compact numeric asset id used inside FAST messages."},"MarketStatusResponse":{"type":"object","properties":{"a":{"$ref":"#/components/schemas/AssetID"},"ts":{"type":"integer","format":"int64","description":"Request timestamp in nanoseconds since the Unix epoch."},"cs":{"$ref":"#/components/schemas/MarketStatusCode"},"ns":{"$ref":"#/components/schemas/MarketStatusCode"},"chts":{"type":"integer","format":"int64","description":"Timestamp of the next status change in nanoseconds since the Unix epoch."}},"required":["a","ts","cs","ns","chts"]},"MarketStatusCode":{"type":"integer","format":"int32","enum":[0,1,2,3],"description":"Market status code:\n* 0 — Closed\n* 1 — Regular Hours\n* 2 — Extended Hours\n* 3 — After Hours"},"ErrorResponse":{"type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/v1/market_status":{"get":{"tags":["Market Status"],"summary":"Get Market Status","description":"Get the current market status, next market status, and the time of the\nnext status change for a FAST-tracked asset, identified by its numeric\nFAST asset id.\n\nThe response is an **unsigned** JSON object with Fast-style short keys:\n- `a` — the requested FAST asset id\n- `ts` — request timestamp in nanoseconds\n- `cs` — current status code\n- `ns` — next status code\n- `chts` — timestamp of the next status change in nanoseconds\n\n**Status codes:**\n| Code | Meaning |\n|------|---------|\n| 0 | Closed |\n| 1 | Regular Hours |\n| 2 | Extended Hours |\n| 3 | After Hours |\n\nSupported asset classes: US equities (e.g. `AAPL_24_5`, `TSLA_24_5`),\nforex pairs (e.g. `EURUSD`, `USDJPY`), and metals (`XAUUSD`, `XAGUSD`).","parameters":[{"name":"asset","in":"query","description":"The numeric FAST asset id to get market status for.","required":true,"schema":{"$ref":"#/components/schemas/AssetID"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketStatusResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.stork.network/resources/stork-fast/rest-api.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
