API reference
Reference
Search, identifiers, exchanges and trading calendars, plus our sector, currency and chain lists.
Supported chains
/v1/chains Every chain we cover. Token symbols use the namespace, like SOLANA:EPjF...Dt1v.
Query parameters
freshbooleanSkip our cache and get the latest data. Items refreshed this way cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShowHide 7 fields
evmChainIdintegerThe EIP-155 chain id, only on EVM chains
idstringkindstringOne of
evmutxosvmtvmothernamestringnamespacestringnativeDecimalsintegernativeSymbolstring
metaobjectShowHide 3 fields
creditsintegerCredits this call cost
nextCursorstring or nullPass as cursor to get the next page, null on the last page
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden422 Unprocessable Entity429 Too Many Requests500 Internal Server Error503 Service Unavailable
Every error body is problem+json with a stable code. See errors.
Supported currencies
/v1/currencies Every currency prices can be converted into with currency=.
Query parameters
freshbooleanSkip our cache and get the latest data. Items refreshed this way cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShowHide 3 fields
codestringminorUnitsintegerDecimal places of the minor unit, left out for units without one like gold
namestring
metaobjectShowHide 3 fields
creditsintegerCredits this call cost
nextCursorstring or nullPass as cursor to get the next page, null on the last page
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden422 Unprocessable Entity429 Too Many Requests500 Internal Server Error503 Service Unavailable
Every error body is problem+json with a stable code. See errors.
Exchanges
/v1/exchanges Every exchange we cover with its country, timezone, currency and regular trading hours in local time.
Query parameters
freshbooleanSkip our cache and get the latest data. Items refreshed this way cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShowHide 12 fields
aliasesarray of stringsOther names symbols can use for this exchange, like ASX
breaksarray of objectsMidday pauses, local time
ShowHide 2 fields
endstringstartstring
closestringRegular session close, local time
countrystringcurrencystringmicstringnamestringopenstringRegular session open, local time
operatingMicstringquoteUnitstringThe minor unit prices are quoted in, like GBX, left out when quoted in major units
timezonestringIANA timezone the hours are in
weekendarray of strings
metaobjectShowHide 3 fields
creditsintegerCredits this call cost
nextCursorstring or nullPass as cursor to get the next page, null on the last page
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden422 Unprocessable Entity429 Too Many Requests500 Internal Server Error503 Service Unavailable
Every error body is problem+json with a stable code. See errors.
Exchange trading calendar
/v1/exchanges/{mic}/calendar Trading sessions between from and to with their open, close and breaks in UTC, plus the holidays and early closes in that range. Up to five years per call, between 2000 and 2099.
Path parameters
micstring RequiredA MIC, or an alias like ASX
Up to 16 characters
Query parameters
fromdate RequiredFirst day, YYYY-MM-DD
todate RequiredLast day, YYYY-MM-DD
Response
dataobjectShowHide 4 fields
holidaysarray of objectsWeekdays in the range the exchange is closed or closes early
ShowHide 4 fields
closestringThe early close in local time, left out when closed all day
datedatekindstringOne of
closedearly_closenamestring
micstringsessionsarray of objectsEvery trading day in the range
ShowHide 5 fields
breaksarray of objectsShowHide 2 fields
endtimestampstarttimestamp
closetimestampdatedateearlyClosebooleanopentimestamp
timezonestring
metaobjectShowHide 3 fields
asOftimestamp or nullThe point in time this data describes, like when a filing was published. Null where that doesn't apply, as with account data
creditsintegerCredits this call cost
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden404 Not Found422 Unprocessable Entity429 Too Many Requests500 Internal Server Error503 Service Unavailable
Every error body is problem+json with a stable code. See errors.
Instruments listed on an exchange
/v1/exchanges/{mic}/instruments The exchange's whole listing universe, ordered by ticker.
Path parameters
micstring RequiredA MIC, or an alias like ASX
Up to 16 characters
Query parameters
cursorstringFrom meta.nextCursor of the previous page
Up to 512 characters
limitintegerPage size
From 1 to 1000. Defaults to 100
freshbooleanSkip our cache and get the latest data. Items refreshed this way cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShowHide 4 fields
industrystring or nullAn industry id from /v1/sectors, null when unclassified
instrumentobjectShowHide 8 fields
countrystringcurrencystringidstringmicstringLeft out for instruments that don't trade on an exchange, like tokens
namestringsymbolstringtickerstring or nullThe code it's known by, like a listing's ticker, a token's symbol or an unlisted fund's APIR code. Null when it has none
typestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant
isinstring or nullsnapshotDatedateThe trading day this listing was last seen on
metaobjectShowHide 3 fields
creditsintegerCredits this call cost
nextCursorstring or nullPass as cursor to get the next page, null on the last page
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden404 Not Found422 Unprocessable Entity429 Too Many Requests500 Internal Server Error503 Service Unavailable
Every error body is problem+json with a stable code. See errors.
Instrument details
/v1/instruments Every identifier we hold, status, listing dates, and the history of listings and names. Licensed identifiers like CUSIP and SEDOL work as symbols but are never returned.
Query parameters
symbolsarray of strings RequiredComma-separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...
Up to 100 items
listedOndateResolves tickers as the listing that traded on this day, for tickers that have since been reused. A symbol can carry its own day instead, like ASX:CCL@2021-05-10, which overrides this
freshbooleanSkip our cache and get the latest data. Items refreshed this way cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShowHide 11 fields
asOftimestampThe point in time this data describes. For history and events it's the date of the newest record, or the end of your range when there are none. Live values give when they were observed, and reference data gives when we last confirmed it
identifiersobjectOnly the ones it has
ShowHide 14 fields
apirstringcikstringcompositeFigistringcontractstringchain:address, for tokens
cryptoSymbolstringcurrencyCodestringFor a currency itself, like FX:AUD
figistringfutureCodestringfxPairstringindexCodestringisinstringleistringrateCodestringshareClassFigistring
instrumentobjectWhat the symbol resolved to
ShowHide 8 fields
countrystringcurrencystringidstringmicstringLeft out for instruments that don't trade on an exchange, like tokens
namestringsymbolstringtickerstring or nullThe code it's known by, like a listing's ticker, a token's symbol or an unlisted fund's APIR code. Null when it has none
typestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant
listedFromdate or nullFirst trading day on any exchange, null when unknown or never listed
listedTodateLast trading day, or an option's expiry. Left out while listed without an end
listingsarray of objectsEvery exchange and ticker it has traded under, oldest first
ShowHide 4 fields
fromdate or nullFirst trading day, null when unknown
micstringtickerstringtodateLast trading day, left out while listed
namesarray of objectsEvery name it has had, oldest first
ShowHide 3 fields
fromdate or nullFirst day under this name, null when unknown
namestringtodateLast day under this name, left out for the current name
nftobjectWhich collection an NFT is from and its token id. Left out for other types
ShowHide 2 fields
collectionobjectThe collection an item belongs to. Left out on a collection, and when we don't know
ShowHide 8 fields
countrystringcurrencystringidstringmicstringLeft out for instruments that don't trade on an exchange, like tokens
namestringsymbolstringtickerstring or nullThe code it's known by, like a listing's ticker, a token's symbol or an unlisted fund's APIR code. Null when it has none
typestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant
tokenIdstring or nullThe item's token id, null on a collection and on chains without them, like Solana
optionobjectThe terms of an option or warrant. Left out for other types
ShowHide 7 fields
exercisestring or nullOne of
americaneuropeanexpirydate or nullmultipliernumber or nullHow many of the underlying one contract is on. Null for contracts adjusted for a corporate action, and when we don't know
rightstring or nullOne of
callputstrikenumber or nullIn the instrument's currency
underlyingobjectWhat the contract is written on. Left out when we don't know
ShowHide 8 fields
countrystringcurrencystringidstringmicstringLeft out for instruments that don't trade on an exchange, like tokens
namestringsymbolstringtickerstring or nullThe code it's known by, like a listing's ticker, a token's symbol or an unlisted fund's APIR code. Null when it has none
typestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant
warrantTypestring or nullHow the issuer describes a warrant, like trading or instalment
statusstringOne of
activedelistedsuspendedexpiredsymbolstringThe symbol as sent
errorsarray of objectsShowHide 3 fields
codestringOne of
invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingdata_failedmessagestringsymbolstring
metaobjectShowHide 2 fields
creditsintegerCredits this call cost
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden422 Unprocessable Entity429 Too Many Requests500 Internal Server Error503 Service Unavailable
Every error body is problem+json with a stable code. See errors.
Instrument logo
/v1/logos The logo image of any symbol symbols take, for img tags and anyone else, without a key and from any origin. Currencies and FX pairs show the round flag of their base currency. A symbol answers with a redirect to where its logo lives, which also answers any origin, and the logo URLs other responses carry answer with the image itself. Logos come in whatever format their source made them, so SVG, PNG, JPEG, GIF, WebP or AVIF. Answers are cached for a day in browsers and longer at our edge, and a missing logo for an hour.
Query parameters
symbolstringAny identifier symbols take, like ASX:BHP, FX:AUDUSD, FX:AUD, CRYPTO:BTC or SOLANA:<mint>. Send either symbol, or id and v
idstringAn instrument id, from a logo URL another response gave
vstringThe version from the same logo URL
Errors
400 Neither a symbol nor an id and version, or a symbol we can't read404 No logo for the symbol, or none at that version429 Too many logos from one network, see Retry-After502 The logo is temporarily unavailable503 The logo is still being fetched, ask again after Retry-After
Find instruments
/v1/search Instruments whose name, ticker, ISIN or contract address matches q, best first. Exact tickers and identifiers lead, then tickers and names that start with q, and a company's main listing comes before its other listings. A US exchange that lists nothing matching takes matches on the other US exchanges, since brokers often print NYSE for NYSE Arca. Each page costs the same.
Query parameters
qstring RequiredA name, ticker, ISIN or contract address
Up to 100 characters
typestringOnly instruments of this type
One of
equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrantexchangestringOnly instruments listed here, as a MIC or an alias like ASX
Up to 16 characters
countrystringOnly instruments from this ISO country
Matches ^[A-Z]{2}$
cursorstringFrom meta.nextCursor of the previous page
Up to 512 characters
limitintegerPage size
From 1 to 1000. Defaults to 100
freshbooleanSkip our cache and get the latest data. Items refreshed this way cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShowHide 8 fields
countrystringcurrencystringidstringmicstringLeft out for instruments that don't trade on an exchange, like tokens
namestringsymbolstringtickerstring or nullThe code it's known by, like a listing's ticker, a token's symbol or an unlisted fund's APIR code. Null when it has none
typestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant
metaobjectShowHide 3 fields
creditsintegerCredits this call cost
nextCursorstring or nullPass as cursor to get the next page, null on the last page
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden422 Unprocessable Entity429 Too Many Requests500 Internal Server Error503 Service Unavailable
Every error body is problem+json with a stable code. See errors.
Find instruments in bulk
/v1/search Up to 100 searches in one call, each matching the way a single search does and answered with its first page, in request order. Each query that finds its answer costs what a single search does, and one we can't answer right now is in errors instead.
Query parameters
freshbooleanSkip our cache and get the latest data. Items refreshed this way cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Request body
limitintegerThe most instruments each query answers with
From 1 to 1000. Defaults to 100
queriesarray of objects RequiredUp to 100 searches
Up to 100 items
ShowHide 4 fields
countrystringOnly instruments from this ISO country
Matches ^[A-Z]{2}$
exchangestringOnly instruments listed here, as a MIC or an alias like ASX
Up to 16 characters
qstring RequiredA name, ticker, ISIN or contract address
Up to 100 characters
typestringOnly instruments of this type
One of
equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant
Response
dataarray of objectsShowHide 3 fields
instrumentsarray of objectsBest first
ShowHide 8 fields
countrystringcurrencystringidstringmicstringLeft out for instruments that don't trade on an exchange, like tokens
namestringsymbolstringtickerstring or nullThe code it's known by, like a listing's ticker, a token's symbol or an unlisted fund's APIR code. Null when it has none
typestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant
qstringThe query's q as sent
queryintegerThe query's position in queries
errorsarray of objectsShowHide 3 fields
codestringOne of
data_pendingdata_failedmessagestringqueryintegerThe query's position in queries
metaobjectShowHide 2 fields
creditsintegerCredits this call cost
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden422 Unprocessable Entity429 Too Many Requests500 Internal Server Error503 Service Unavailable
Every error body is problem+json with a stable code. See errors.
Sector and industry taxonomy
/v1/sectors Our sectors and the industries in each. Profiles, listings and the screener use these ids.
Query parameters
freshbooleanSkip our cache and get the latest data. Items refreshed this way cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShowHide 3 fields
idstringindustriesarray of objectsShowHide 2 fields
idstringnamestring
namestring
metaobjectShowHide 3 fields
creditsintegerCredits this call cost
nextCursorstring or nullPass as cursor to get the next page, null on the last page
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden422 Unprocessable Entity429 Too Many Requests500 Internal Server Error503 Service Unavailable
Every error body is problem+json with a stable code. See errors.