Get an asset
API version2026-09-29https://pyth.dourolabs.app/v3/intelligence/assets/{id}An API key or short-lived access token, in an Authorization: Bearer <token> header, and the API version above in a Pyth-Version header. Without it, requests get the newest version.
Returns an asset, such as a company's shares or a currency, by its ID or spine. A feed's base_asset and a dividend's paid_in are assets.
v3/intelligence/assets/{id}curl "https://pyth.dourolabs.app/v3/intelligence/assets/equity.aapl.1ccs" \
-H "Authorization: Bearer $PYTH_API_KEY" \
-H "Pyth-Version: 2026-09-29"{
"class": "equity",
"full_name": "APPLE INC",
"id": "asset-01m0a6sd8me54bsx692f90ws91",
"identifiers": [
{
"scheme": "nasdaq_symbol",
"sessions": [],
"value": "AAPL",
"record_id": "idr-01m14btkssejc8nbc6yscwbd6w"
}
],
"slug": "equity.aapl",
"status": "active",
"ticker": "AAPL",
"type": "asset",
"visibility": "public",
"meta": { "recorded_at": "2026-10-07T14:57:45.142Z" },
"spine": "equity.aapl.1ccs"
}Replace the placeholders in the URL path with these values.
idstringRequiredThe asset's ID or spine, such as equity.aapl.1ccs.
Add these parameters to the URL query string.
effectivestringOptionalReturns what was in effect at this instant, an RFC 3339 timestamp no later than now, using current knowledge. In a URL written by hand, write a + offset as %2B. Try it, and clients that encode query values such as Python's params, take + as is. Omit for the current state.
expandstringOptionalRelations to include in full instead of as IDs, comma-separated: succeeded_by, primary_exchange.
Response
200 · application/jsonReturns a JSON object with the following fields.
classstringAsset class. Currencies are assets too, with class fx. New values can be added. Treat an unrecognized value as unknown.
- crypto
- equity
- fx
- metal
- commodity
- rates
- nav
- funding_rate
- index
- event
- redemption_rate
- economic
- custom
- unknown
full_namestringFull name, such as APPLE INC.
idstringPermanent ID, such as asset-01m0a6sd8me54bsx692f90ws91.
identifiersobject[]The asset's external identifiers, such as nasdaq_symbol.
schemestringThe identifier's scheme, such as nasdaq_symbol.
sessionsstring[]The trading sessions the identifier applies to. Empty means every session.
- regular
- pre_market
- post_market
- over_night
- unknown
valuestringThe identifier's value, such as AAPL.
record_idstringID of the identifier record behind this entry, where one exists.
slugstringReadable name, such as equity.aapl. It can change, so it is not a stable key.
statusstringLifecycle status. New values can be added. Treat an unrecognized value as unknown.
- active
- delisted
- merged
- retired
- unknown
tickerstringTicker, such as AAPL.
typestringAlways asset.
visibilitystringWho may see the asset. Responses include only what the credential may see.
- public
- restricted
- internal
- unlisted
- unknown
countrystringCountry, such as US.
metaobjectWhen the record, as served, last changed.
recorded_atstringWhen the record last changed. A read pinned to an earlier effective instant reports the change behind what it shows, never a later one.
effective_atstringThe effective instant a single read was pinned to, echoed back; absent on an unpinned read. A list echoes it on its own meta.
primary_exchangestring | objectID of the asset's primary exchange. With expand=primary_exchange, the full exchange.
sectorstringIndustry sector, in GICS style, filled on a best-effort basis.
spinestringPermanent readable handle, such as equity.aapl.1ccs, never reused. Works anywhere an ID does. Absent until one is issued.
subclassstringSubclass within class, such as share, etf, adr or stablecoin.
succeeded_bystring | objectID of the asset that succeeded this one, where there is one. With expand=succeeded_by, the full asset, as Get an asset returns it.
Status codes returned when a request fails.
- 400
- A parameter, ID or spine is malformed or names another kind of resource, effective is in the future, a query parameter is unknown (parameter_invalid), the Pyth-Version value is not served (version_unsupported), or the Authorization header is empty or not a bearer credential (credential_malformed).
- 401
- The credential is missing or not recognized (credential_missing, credential_unknown).
- 403
- The access token is expired or not valid (credential_rejected), or the credential does not grant access to this data.
- 404
- No asset matches the ID or spine (resource_missing).
- 429
- Rate limit exceeded.
- 503
- The service is temporarily unavailable.