Pyth ID to Astra ID map

GET
/v1/feed-ids

Every feed Astra serves, once, sorted by symbol, with its Astra ID and its Pyth-compatible ID when it has one. Paste your Pyth IDs into pyth_ids to see which ones Astra serves: the Hermes routes accept those IDs as they are, so a feed found here needs no change in the client. missing lists the requested IDs Astra does not serve, lower-case without 0x.

With neither pyth_ids nor astra_ids the whole list is returned, without missing. With either, only the matching feeds are returned, plus missing. pyth_ids matches Pyth-compatible IDs only and astra_ids Astra IDs only; both may be combined. category narrows the items and never adds to missing. The answer changes only on a deploy: it may be cached for an hour, and the unfiltered list carries an ETag.

Send at most 200 IDs per request, pyth_ids and astra_ids together; longer URLs are rejected before they reach Astra. For more IDs, use several requests.

Query Parameters

pyth_ids?array<string>

Pyth feed IDs to look up, comma-separated, repeated, or both. 0x optional, any case. The server accepts at most 500 together with astra_ids. Send at most 200 IDs per request; longer URLs are rejected before they reach Astra. For more, use several requests.

Itemsitems <= 500
astra_ids?array<string>

Astra feed IDs to look up, as pyth_ids. Send at most 200 IDs per request, together with pyth_ids; longer URLs are rejected before they reach Astra.

Itemsitems <= 500
category?string

Keep one category, such as crypto or equity.

Header Parameters

If-None-Match?string

The ETag of an unfiltered list already held; the answer is then 304 when it is unchanged.

Response Body

application/json

application/problem+json

text/plain

curl -X GET "https://example.com/v1/feed-ids?pyth_ids=e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"
{  "items": [    {      "symbol": "string",      "asset_type": "string",      "category": "crypto",      "astra_id": "string",      "pyth_id": "string"    }  ],  "missing": [    "string"  ]}