API reference
Company data
Profiles, standardised financials, valuation metrics, earnings, ownership, short interest and filings with full text search.
Earnings, IPO and economic calendars
/v1/calendar/{type} Events in a range of up to 90 days, in date order. Each event fills in the object named after its calendar and leaves the others with null fields.
Path parameters
typestring RequiredOne of
earningsiposeconomic
Query parameters
fromdate RequiredFirst day, YYYY-MM-DD
todate RequiredLast day, at most 90 days after from
regionsarray of strings RequiredComma separated MICs for ipos, and countries for earnings and economic
Up to 50 items
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShow 7 fields
datedateThe exchange's local date, the UTC date for economic releases
earningsobjectShow 5 fields
currencystring or nullepsActualnumber or nullepsEstimatenumber or nullperiodEnddate or nullreportTimestring or nullOne of
before_openafter_closeduring_market
economicobjectShow 7 fields
actualnumber or nullforecastnumber or nullimportancestring or nullOne of
lowmediumhighperiodstring or nullThe period the figure covers, as published, like Aug or Q2
previousnumber or nulltimetimestamp or nullunitstring or null
ipoobjectShow 7 fields
currencystring or nullpricenumber or nullpriceHighnumber or nullpriceLownumber or nullsharesnumber or nullstatusstring or nullOne of
expectedpricedwithdrawntickerstring or nullnull until the exchange assigns one
namestringThe company, or the release
regionstringThe MIC or country the event belongs to
symbolstring or nullnull for IPOs and economic releases
metaobjectShow 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.
Earnings
/v1/earnings Reported and upcoming results per period, EPS and revenue against the consensus estimate, oldest first. Actuals are null until the report is out. from and to bound period ends.
Query parameters
symbolsarray of strings RequiredComma separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...
Up to 100 items
fromdateFirst day, YYYY-MM-DD
todateLast day, YYYY-MM-DD
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShow 4 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 checked it with a source
earningsarray of objectsShow 10 fields
currencystringepsActualnumber or nullepsEstimatenumber or nullfiscalPeriodstringOne of
FYH1H2Q1Q2Q3Q4fiscalYearintegerperiodEnddate or nullreportDatedate or nullreportTimestring or nullWhen on the report date, relative to the exchange's session
One of
before_openafter_closeduring_marketrevenueActualnumber or nullrevenueEstimatenumber or null
instrumentobjectWhat the symbol resolved to
Show 7 fields
countrystring or nullcurrencystring or nullidstringmicstring or nullnamestringsymbolstringtypestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybond
symbolstringThe symbol as sent
errorsarray of objectsShow 3 fields
codestringOne of
invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingsource_failedmessagestringsymbolstring
metaobjectShow 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.
Filings and announcements
/v1/filings Every filing and announcement a company made, oldest first. Document URLs are ours, so they're stable. from and to bound the publish date in UTC.
Query parameters
symbolsarray of strings RequiredComma separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...
Up to 100 items
fromdateFirst day, YYYY-MM-DD
todateLast day, YYYY-MM-DD
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
typesarray of stringsComma separated filing types, every type when empty
formsarray of stringsComma separated forms as the regulator names them, like 10-K or Appendix 3Y
Up to 50 items
Response
dataarray of objectsShow 4 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 checked it with a source
filingsarray of objectsShow 11 fields
accessionstringThe regulator's own id for the filing
documentsarray of objectsShow 4 fields
mediaTypestringnamestringrolestringdata is a machine readable part, like XBRL
One of
primaryexhibitdataurlstring or nullThe original document, served by us
formstringidstringperiodEnddate or nullThe period a report covers
priceSensitiveboolean or nullThe exchange's flag on announcements it expects to move the price, null where the exchange doesn't flag
publishedAttimestampregulatorstringstatusstringOne of
filedrevisedcancelledtitlestringtypestringOne of
annual_reportinterim_reportquarterly_reportcurrent_reportproxyregistrationinsiderownershipannouncementother
instrumentobjectWhat the symbol resolved to
Show 7 fields
countrystring or nullcurrencystring or nullidstringmicstring or nullnamestringsymbolstringtypestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybond
symbolstringThe symbol as sent
errorsarray of objectsShow 3 fields
codestringOne of
invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingsource_failedmessagestringsymbolstring
metaobjectShow 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.
Full text search across filings
/v1/filings/search Filings whose documents match q, best first. q takes quoted phrases, OR, and a leading minus to leave a word out. Reports and announcements from the last three years can be searched as soon as we hold them. Older or very large filings become searchable once someone opens them with filings.get.
Query parameters
qstring RequiredUp to 500 characters
symbolsarray of stringsComma separated identifiers to search the filings of. Any of their filings in the date range that we don't hold yet are fetched first. Leave it empty to search every filing we hold
Up to 100 items
limitintegerFrom 1 to 100. Defaults to 20
fromdateFirst day, YYYY-MM-DD
todateLast day, YYYY-MM-DD
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
typesarray of stringsComma separated filing types, every type when empty
formsarray of stringsComma separated forms as the regulator names them, like 10-K or Appendix 3Y
Up to 50 items
Response
dataarray of objectsShow 13 fields
accessionstringThe regulator's own id for the filing
documentsarray of objectsShow 4 fields
mediaTypestringnamestringrolestringdata is a machine readable part, like XBRL
One of
primaryexhibitdataurlstring or nullThe original document, served by us
formstringidstringperiodEnddate or nullThe period a report covers
priceSensitiveboolean or nullThe exchange's flag on announcements it expects to move the price, null where the exchange doesn't flag
publishedAttimestampranknumberHigher is a better match, only comparable within one search
regulatorstringsnippetstringWhere the match is in the text
statusstringOne of
filedrevisedcancelledtitlestringtypestringOne of
annual_reportinterim_reportquarterly_reportcurrent_reportproxyregistrationinsiderownershipannouncementother
metaobjectShow 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.
One filing with its full text
/v1/filings/{id} A filing with the text of every document, and links to the originals.
Path parameters
idstring RequiredFrom filings.list or filings.search
Matches ^fil_[0-9A-Za-z]{21}$
Response
dataobjectShow 12 fields
accessionstringThe regulator's own id for the filing
documentsarray of objectsShow 4 fields
mediaTypestringnamestringrolestringdata is a machine readable part, like XBRL
One of
primaryexhibitdataurlstring or nullThe original document, served by us
formstringidstringperiodEnddate or nullThe period a report covers
priceSensitiveboolean or nullThe exchange's flag on announcements it expects to move the price, null where the exchange doesn't flag
publishedAttimestampregulatorstringstatusstringOne of
filedrevisedcancelledtextstringText of every document in order, separated by blank lines
titlestringtypestringOne of
annual_reportinterim_reportquarterly_reportcurrent_reportproxyregistrationinsiderownershipannouncementother
metaobjectShow 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.
Financial statements
/v1/financials One standardised statement per company, oldest period first. Values are in full units of the period's currency, never thousands, and carry the sign they have on the statement, except cash outflows, which are negative. from and to bound period ends.
Query parameters
symbolsarray of strings RequiredComma separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...
Up to 100 items
fromdateFirst day, YYYY-MM-DD
todateLast day, YYYY-MM-DD
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
statementstring RequiredOne of
incomebalancecash_flowperiodstringttm periods are labelled by the quarter they end with
One of
annualhalfquarterlyttmDefaults to annual
Response
dataarray of objectsShow 7 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 checked it with a source
instrumentobjectWhat the symbol resolved to
Show 7 fields
countrystring or nullcurrencystring or nullidstringmicstring or nullnamestringsymbolstringtypestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybond
lineItemsarray of objectsThe lines present, in display order
Show 3 fields
codestringnamestringunitstringOne of
moneyper_shareshares
periodstringOne of
annualhalfquarterlyttmperiodsarray of objectsShow 5 fields
currencystring or nullnull when the period only holds share counts
fiscalPeriodstringOne of
FYH1H2Q1Q2Q3Q4fiscalYearintegerperiodEnddatevaluesarray of objectsShow 2 fields
lineItemstringCode from lineItems
valuenumber
statementstringOne of
incomebalancecash_flowsymbolstringThe symbol as sent
errorsarray of objectsShow 3 fields
codestringOne of
invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingsource_failedmessagestringsymbolstring
metaobjectShow 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.
Market cap
/v1/metrics Market cap with the share count or coin supply behind it. Without date it's as of the latest price, with date as it stood at the close on or before that day, which leaves out the price and the supply figures only tracked live.
Query parameters
symbolsarray of strings RequiredComma separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...
Up to 100 items
currencystringConvert every price into this ISO currency
Matches ^[A-Z]{3}$
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
datedateMarket cap at the close on or before this day, the latest when empty
Response
dataarray of objectsShow 12 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 checked it with a source
circulatingSupplynumber or nullCoins in circulation, for crypto
currencystringOf price, marketCap and fdv
datedateThe day the figures are for
fdvnumber or nullFully diluted valuation, null with date
instrumentobjectWhat the symbol resolved to
Show 7 fields
countrystring or nullcurrencystring or nullidstringmicstring or nullnamestringsymbolstringtypestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybond
marketCapnumbermaxSupplynumber or nullNull with date
pricenumber or nullWhat each share or coin was valued at, null with date
sharesOutstandingnumber or nullThe company-wide share count, or a fund's units on issue
symbolstringThe symbol as sent
totalSupplynumber or nullNull with date
errorsarray of objectsShow 3 fields
codestringOne of
invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingsource_failedmessagestringsymbolstring
metaobjectShow 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.
Institutional and substantial holders
/v1/ownership/holders institutional is the latest full scheduled report, like US 13F filings. substantial is each holder's latest notice of crossing a threshold, like ASX Form 604, leaving out holders who have exited. Largest first.
Query parameters
symbolsarray of strings RequiredComma separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...
Up to 100 items
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
typestringOne of
institutionalsubstantialDefaults to institutional
datedateHolders as they stood on this day, the latest when empty
Response
dataarray of objectsShow 6 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 checked it with a source
datedateThe day the holdings stand at
instrumentobjectWhat the symbol resolved to
Show 7 fields
countrystring or nullcurrencystring or nullidstringmicstring or nullnamestringsymbolstringtypestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybond
positionsarray of objectsShow 7 fields
changenumber or nullShares bought or sold since the holder's previous report
currencystring or nullOf value
holderobjectShow 4 fields
cikstring or nullkindstringOne of
institutionfundpersoncompanyotherleistring or nullnamestring
percentnumber or nullOf shares outstanding, 0 to 100
reportDatedateThe date the holder reported the position at
sharesnumbervaluenumber or null
symbolstringThe symbol as sent
typestringOne of
institutionalsubstantial
errorsarray of objectsShow 3 fields
codestringOne of
invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingsource_failedmessagestringsymbolstring
metaobjectShow 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.
Insider trades
/v1/ownership/insider-trades Directors' and officers' trades from Form 4, Appendix 3Y and their equivalents, oldest first. shares is always positive and acquired says which way the trade went. from and to bound the trade date.
Query parameters
symbolsarray of strings RequiredComma separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...
Up to 100 items
fromdateFirst day, YYYY-MM-DD
todateLast day, YYYY-MM-DD
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShow 4 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 checked it with a source
instrumentobjectWhat the symbol resolved to
Show 7 fields
countrystring or nullcurrencystring or nullidstringmicstring or nullnamestringsymbolstringtypestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybond
symbolstringThe symbol as sent
tradesarray of objectsShow 14 fields
acquiredbooleancodestring or nullThe form's own transaction code, like P or S on a Form 4
currencystring or nullOf price
derivativebooleanTrue for options, rights and other contracts on the shares
filedDatedate or nullindirectbooleanTrue when held through someone else, like a family trust
insiderstringpricenumber or nullrelationstring or nullsecuritystring or nullWhat changed hands, as the form names it
sharesnumbersharesAfternumber or nulltradeDatedatetypestringOne of
buysellawardexercisegiftother
errorsarray of objectsShow 3 fields
codestringOne of
invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingsource_failedmessagestringsymbolstring
metaobjectShow 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.
Company profiles
/v1/profiles Who a company is: its name, country, where it sits in our sector taxonomy, its logo and its identifiers. Unknown fields are null, and the industry is known once the company's exchange listing has been screened.
Query parameters
symbolsarray of strings RequiredComma separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...
Up to 100 items
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShow 10 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 checked it with a source
cikstring or nullSEC Central Index Key, for SEC registrants
countrystring or nullindustrystring or nullIndustry id from /v1/sectors
instrumentobjectWhat the symbol resolved to
Show 7 fields
countrystring or nullcurrencystring or nullidstringmicstring or nullnamestringsymbolstringtypestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybond
leistring or nullLegal Entity Identifier
logostring or nullURL of the logo, served by us
namestringsectorstring or nullSector id from /v1/sectors
symbolstringThe symbol as sent
errorsarray of objectsShow 3 fields
codestringOne of
invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingsource_failedmessagestringsymbolstring
metaobjectShow 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.
Short interest
/v1/short-interest The aggregate short position as the regulator publishes it: daily for ASIC, each settlement date for FINRA. Regulators that only publish a percentage leave shares null. Defaults to the last week.
Query parameters
symbolsarray of strings RequiredComma separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...
Up to 100 items
fromdateFirst day, YYYY-MM-DD
todateLast day, YYYY-MM-DD
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShow 4 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 checked it with a source
instrumentobjectWhat the symbol resolved to
Show 7 fields
countrystring or nullcurrencystring or nullidstringmicstring or nullnamestringsymbolstringtypestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybond
positionsarray of objectsShow 6 fields
averageVolumenumber or nulldatedatedaysToCovernumber or nullpercentnumber or nullOf shares on issue, 0 to 100
sharesnumber or nullsharesOutstandingnumber or nullThe shares on issue the regulator measured against
symbolstringThe symbol as sent
errorsarray of objectsShow 3 fields
codestringOne of
invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingsource_failedmessagestringsymbolstring
metaobjectShow 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.