API reference

Company data

Profiles, standardised financials, KPIs like revenue by segment or Uber trips, valuation metrics, earnings, ownership, short interest and filings with full-text search.

Earnings, IPO and economic calendars

GET /v1/calendar/{type}

1 credit per call 2 credits with fresh=true Operation ID company.calendar

Events in a range of up to 90 days, in date order, from 10 years back to 1 ahead. Each event has the object named after its calendar.

Path parameters

  • type string Required

    One of earningsiposeconomic

Query parameters

  • from date Required

    First day, YYYY-MM-DD

  • to date Required

    Last day, at most 90 days after from

  • regions array of strings Required

    Comma-separated MICs for ipos, and countries for earnings and economic

    Up to 50 items

  • fresh boolean

    Skip our cache and get the latest data. Items refreshed this way cost double

  • format string

    Response format

    One of jsoncsv

    Defaults to json

Response

  • data array of objects
    ShowHide 8 fields
    • date date

      The exchange's local date, the UTC date for economic releases

    • earnings object

      Only on earnings

      ShowHide 5 fields
      • currency string or null
      • epsActual number or null
      • epsEstimate number or null
      • periodEnd date or null
      • reportTime string or null

        One of before_openafter_closeduring_market

    • economic object

      Only on economic

      ShowHide 7 fields
      • actual number or null
      • forecast number or null
      • importance string or null

        One of lowmediumhigh

      • period string or null

        The period the figure covers, as published, like Aug or Q2

      • previous number or null
      • time timestamp or null
      • unit string or null
    • instrument object

      Only on earnings, once we know the listing

      ShowHide 8 fields
      • country string
      • currency string
      • id string
      • mic string

        Left out for instruments that don't trade on an exchange, like tokens

      • name string
      • symbol string
      • ticker string or null

        The 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

      • type string

        One of equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant

    • ipo object

      Only on ipos

      ShowHide 7 fields
      • currency string or null
      • price number or null
      • priceHigh number or null
      • priceLow number or null
      • shares number or null
      • status string or null

        One of expectedpricedwithdrawn

      • ticker string or null

        null until the exchange assigns one

    • name string

      The company, or the release

    • region string

      The MIC or country the event belongs to

    • symbol string

      Only on earnings, as EXCHANGE:TICKER once we know the listing and the bare ticker until then

  • meta object
    ShowHide 3 fields
    • credits integer

      Credits this call cost

    • nextCursor string or null

      Pass as cursor to get the next page, null on the last page

    • requestId string

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

GET /v1/earnings

2 credits per instrument 4 credits with fresh=true Operation ID company.earnings

Reported and upcoming results per period, EPS and revenue against the consensus estimate, oldest first. Actuals are null until the report is out. The from and to parameters bound period ends.

Query parameters

  • symbols array of strings Required

    Comma-separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...

    Up to 100 items

  • listedOn date

    Resolves 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

  • from date

    First day, YYYY-MM-DD

  • to date

    Last day, YYYY-MM-DD

  • fresh boolean

    Skip our cache and get the latest data. Items refreshed this way cost double

  • format string

    Response format

    One of jsoncsv

    Defaults to json

Response

  • data array of objects
    ShowHide 4 fields
    • asOf timestamp

      The 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

    • earnings array of objects
      ShowHide 10 fields
      • currency string
      • epsActual number or null
      • epsEstimate number or null
      • fiscalPeriod string

        One of FYH1H2Q1Q2Q3Q4

      • fiscalYear integer
      • periodEnd date or null
      • reportDate date or null
      • reportTime string or null

        When on the report date, relative to the exchange's session

        One of before_openafter_closeduring_market

      • revenueActual number or null
      • revenueEstimate number or null
    • instrument object

      What the symbol resolved to

      ShowHide 8 fields
      • country string
      • currency string
      • id string
      • mic string

        Left out for instruments that don't trade on an exchange, like tokens

      • name string
      • symbol string
      • ticker string or null

        The 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

      • type string

        One of equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant

    • symbol string

      The symbol as sent

  • errors array of objects
    ShowHide 3 fields
    • code string

      One of invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingdata_failed

    • message string
    • symbol string
  • meta object
    ShowHide 2 fields
    • credits integer

      Credits this call cost

    • requestId string

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

GET /v1/filings

2 credits per instrument 4 credits with fresh=true Operation ID filings.list

Every filing and announcement a company made, oldest first. Document URLs are ours, so they're stable. The from and to parameters bound the publish date in UTC.

Query parameters

  • symbols array of strings Required

    Comma-separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...

    Up to 100 items

  • listedOn date

    Resolves 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

  • from date

    First day, YYYY-MM-DD

  • to date

    Last day, YYYY-MM-DD

  • fresh boolean

    Skip our cache and get the latest data. Items refreshed this way cost double

  • format string

    Response format

    One of jsoncsv

    Defaults to json

  • types array of strings

    Comma-separated filing types, every type when empty

  • forms array of strings

    Comma-separated forms as the regulator names them, like 10-K or Appendix 3Y

    Up to 50 items

Response

  • data array of objects
    ShowHide 4 fields
    • asOf timestamp

      The 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

    • filings array of objects
      ShowHide 11 fields
      • accession string

        The regulator's own id for the filing

      • documents array of objects
        ShowHide 4 fields
        • mediaType string or null

          null until we've downloaded the document

        • name string or null

          null until we've downloaded the document, which a large one waits for until someone opens it

        • role string

          The data role marks a machine-readable part, like XBRL

          One of primaryexhibitdata

        • url string or null

          The original document, served by us. The link works for an hour, and one given before we've downloaded the document keeps working after

      • form string
      • id string
      • periodEnd date or null

        The period a report covers

      • priceSensitive boolean

        The exchange's flag on announcements it expects to move the price, only where the exchange flags

      • publishedAt timestamp
      • regulator string
      • status string

        One of filedrevisedcancelled

      • title string
      • type string

        One of annual_reportinterim_reportquarterly_reportcurrent_reportproxyregistrationinsiderownershipannouncementother

    • instrument object

      What the symbol resolved to

      ShowHide 8 fields
      • country string
      • currency string
      • id string
      • mic string

        Left out for instruments that don't trade on an exchange, like tokens

      • name string
      • symbol string
      • ticker string or null

        The 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

      • type string

        One of equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant

    • symbol string

      The symbol as sent

  • errors array of objects
    ShowHide 3 fields
    • code string

      One of invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingdata_failed

    • message string
    • symbol string
  • meta object
    ShowHide 2 fields
    • credits integer

      Credits this call cost

    • requestId string

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

GET /v1/filings/search

5 credits per instrument Growth and up 10 credits with fresh=true Operation ID filings.search

Filings whose documents match q, best first. The q parameter 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. Each symbol costs the weight, and a search without symbols costs it once.

Query parameters

  • q string Required

    Up to 500 characters

  • symbols array of strings

    Comma-separated identifiers to search the filings of. Any of their filings in the date range that we don't hold yet are added first. Leave it empty to search every filing we hold

    Up to 100 items

  • limit integer

    From 1 to 100. Defaults to 20

  • from date

    First day, YYYY-MM-DD

  • to date

    Last day, YYYY-MM-DD

  • fresh boolean

    Skip our cache and get the latest data. Items refreshed this way cost double

  • format string

    Response format

    One of jsoncsv

    Defaults to json

  • types array of strings

    Comma-separated filing types, every type when empty

  • forms array of strings

    Comma-separated forms as the regulator names them, like 10-K or Appendix 3Y

    Up to 50 items

Response

  • data array of objects
    ShowHide 13 fields
    • accession string

      The regulator's own id for the filing

    • documents array of objects
      ShowHide 4 fields
      • mediaType string or null

        null until we've downloaded the document

      • name string or null

        null until we've downloaded the document, which a large one waits for until someone opens it

      • role string

        The data role marks a machine-readable part, like XBRL

        One of primaryexhibitdata

      • url string or null

        The original document, served by us. The link works for an hour, and one given before we've downloaded the document keeps working after

    • form string
    • id string
    • periodEnd date or null

      The period a report covers

    • priceSensitive boolean

      The exchange's flag on announcements it expects to move the price, only where the exchange flags

    • publishedAt timestamp
    • rank number

      Higher is a better match, only comparable within one search

    • regulator string
    • snippet string

      Where the match is in the text

    • status string

      One of filedrevisedcancelled

    • title string
    • type string

      One of annual_reportinterim_reportquarterly_reportcurrent_reportproxyregistrationinsiderownershipannouncementother

  • meta object
    ShowHide 3 fields
    • credits integer

      Credits this call cost

    • nextCursor string or null

      Pass as cursor to get the next page, null on the last page

    • requestId string

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

GET /v1/filings/{id}

2 credits per call 4 credits with fresh=true Operation ID filings.get

A filing with the text of every document, and links to the originals.

Path parameters

  • id string Required

    From filings.list or filings.search

    Matches ^fil_[0-9A-Za-z]{21}$

Response

  • data object
    ShowHide 12 fields
    • accession string

      The regulator's own id for the filing

    • documents array of objects
      ShowHide 4 fields
      • mediaType string or null

        null until we've downloaded the document

      • name string or null

        null until we've downloaded the document, which a large one waits for until someone opens it

      • role string

        The data role marks a machine-readable part, like XBRL

        One of primaryexhibitdata

      • url string or null

        The original document, served by us. The link works for an hour, and one given before we've downloaded the document keeps working after

    • form string
    • id string
    • periodEnd date or null

      The period a report covers

    • priceSensitive boolean

      The exchange's flag on announcements it expects to move the price, only where the exchange flags

    • publishedAt timestamp
    • regulator string
    • status string

      One of filedrevisedcancelled

    • text string

      Text of every document in order, separated by blank lines

    • title string
    • type string

      One of annual_reportinterim_reportquarterly_reportcurrent_reportproxyregistrationinsiderownershipannouncementother

  • meta object
    ShowHide 3 fields
    • asOf timestamp or null

      The point in time this data describes, like when a filing was published. Null where that doesn't apply, as with account data

    • credits integer

      Credits this call cost

    • requestId string

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

GET /v1/financials

2 credits per instrument 4 credits with fresh=true Operation ID company.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. The from and to parameters bound period ends.

Query parameters

  • symbols array of strings Required

    Comma-separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...

    Up to 100 items

  • listedOn date

    Resolves 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

  • from date

    First day, YYYY-MM-DD

  • to date

    Last day, YYYY-MM-DD

  • fresh boolean

    Skip our cache and get the latest data. Items refreshed this way cost double

  • format string

    Response format

    One of jsoncsv

    Defaults to json

  • statement string Required

    One of incomebalancecash_flow

  • period string

    A ttm period is labelled by the quarter it ends with

    One of annualhalfquarterlyttm

    Defaults to annual

Response

  • data array of objects
    ShowHide 7 fields
    • asOf timestamp

      The 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

    • instrument object

      What the symbol resolved to

      ShowHide 8 fields
      • country string
      • currency string
      • id string
      • mic string

        Left out for instruments that don't trade on an exchange, like tokens

      • name string
      • symbol string
      • ticker string or null

        The 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

      • type string

        One of equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant

    • lineItems array of objects

      The lines present, in display order

      ShowHide 3 fields
      • code string
      • name string
      • unit string

        One of moneyper_shareshares

    • period string

      One of annualhalfquarterlyttm

    • periods array of objects
      ShowHide 5 fields
      • currency string

        Left out when the period only holds share counts

      • fiscalPeriod string

        One of FYH1H2Q1Q2Q3Q4

      • fiscalYear integer
      • periodEnd date
      • values array of objects
        ShowHide 2 fields
        • lineItem string

          Code from lineItems

        • value number
    • statement string

      One of incomebalancecash_flow

    • symbol string

      The symbol as sent

  • errors array of objects
    ShowHide 3 fields
    • code string

      One of invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingdata_failed

    • message string
    • symbol string
  • meta object
    ShowHide 2 fields
    • credits integer

      Credits this call cost

    • requestId string

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.

KPIs

GET /v1/kpis

2 credits per instrument 4 credits with fresh=true Operation ID company.kpis

Revenue, gross profit, operating income and net income for each period, also broken down by segment, region and product where the company reports them that way. Some of the largest companies have figures of their own too, like trips at Uber. Each series runs oldest period first, with values in full units, never thousands. The from and to parameters bound period ends.

Query parameters

  • symbols array of strings Required

    Comma-separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...

    Up to 100 items

  • listedOn date

    Resolves 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

  • from date

    First day, YYYY-MM-DD

  • to date

    Last day, YYYY-MM-DD

  • fresh boolean

    Skip our cache and get the latest data. Items refreshed this way cost double

  • format string

    Response format

    One of jsoncsv

    Defaults to json

  • period string

    Halves are only given by companies that report no quarters

    One of annualhalfquarterly

    Defaults to quarterly

  • kpis array of strings

    Comma-separated KPI codes, like revenue or trips, every KPI the company has when empty

    Up to 50 items

Response

  • data array of objects
    ShowHide 5 fields
    • asOf timestamp

      The 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

    • instrument object

      What the symbol resolved to

      ShowHide 8 fields
      • country string
      • currency string
      • id string
      • mic string

        Left out for instruments that don't trade on an exchange, like tokens

      • name string
      • symbol string
      • ticker string or null

        The 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

      • type string

        One of equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant

    • period string

      One of annualhalfquarterly

    • series array of objects

      Each KPI's total first, then its breakdowns with the largest members first

      ShowHide 8 fields
      • breakdown string

        How the KPI is split, left out for its total

        One of segmentgeographyproduct

      • kpi string
      • member string

        The part of the breakdown this series is, stable across periods

      • memberName string

        What the company calls the member

      • name string
      • points array of objects
        ShowHide 5 fields
        • currency string

          Left out for units that aren't money

        • fiscalPeriod string

          One of FYH1H2Q1Q2Q3Q4

        • fiscalYear integer
        • periodEnd date
        • value number
      • scope string

        Whether any company can have the KPI, or it was curated for this one

        One of sharedcompany

      • unit string

        Percentages are in points, 12.5 for 12.5%

        One of moneycountpercentper_shareshares

    • symbol string

      The symbol as sent

  • errors array of objects
    ShowHide 3 fields
    • code string

      One of invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingdata_failed

    • message string
    • symbol string
  • meta object
    ShowHide 2 fields
    • credits integer

      Credits this call cost

    • requestId string

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

GET /v1/metrics

1 credit per instrument 2 credits with fresh=true Operation ID company.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 price, fdv and the supply figures only tracked live. Share counts are on listed lines and supplies on crypto, each only when known.

Query parameters

  • symbols array of strings Required

    Comma-separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...

    Up to 100 items

  • listedOn date

    Resolves 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

  • currency string

    Convert every price into this ISO currency, or count it in any instrument, like CRYPTO:BTC for how many bitcoin it's worth

    Up to 100 characters

  • fresh boolean

    Skip our cache and get the latest data. Items refreshed this way cost double

  • format string

    Response format

    One of jsoncsv

    Defaults to json

  • date date

    Market cap at the close on or before this day, the latest when empty

Response

  • data array of objects
    ShowHide 12 fields
    • asOf timestamp

      The 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

    • circulatingSupply number

      Coins in circulation, for crypto

    • currency string

      Of price, marketCap and fdv

    • date date

      The day the figures are for

    • fdv number

      Fully diluted valuation for crypto, left out with date

    • instrument object

      What the symbol resolved to

      ShowHide 8 fields
      • country string
      • currency string
      • id string
      • mic string

        Left out for instruments that don't trade on an exchange, like tokens

      • name string
      • symbol string
      • ticker string or null

        The 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

      • type string

        One of equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant

    • marketCap number
    • maxSupply number

      For crypto, left out with date

    • price number

      What each share or coin was valued at, left out with date

    • sharesOutstanding number

      The company-wide share count, or a fund's units on issue

    • symbol string

      The symbol as sent

    • totalSupply number

      For crypto, left out with date

  • errors array of objects
    ShowHide 3 fields
    • code string

      One of invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingdata_failed

    • message string
    • symbol string
  • meta object
    ShowHide 2 fields
    • credits integer

      Credits this call cost

    • requestId string

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

GET /v1/ownership/holders

2 credits per instrument Growth and up 4 credits with fresh=true Operation ID ownership.holders

Holders of companies that file with the SEC, largest first. The institutional type is the latest quarterly 13F report, and substantial is each holder's latest Schedule 13D or 13G, leaving out holders who have dropped to 5% or less. Other markets get not_supported.

Query parameters

  • symbols array of strings Required

    Comma-separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...

    Up to 100 items

  • listedOn date

    Resolves 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

  • fresh boolean

    Skip our cache and get the latest data. Items refreshed this way cost double

  • format string

    Response format

    One of jsoncsv

    Defaults to json

  • type string

    One of institutionalsubstantial

    Defaults to institutional

  • date date

    Holders as they stood on this day, the latest when empty

Response

  • data array of objects
    ShowHide 6 fields
    • asOf timestamp

      The 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

    • date date

      The day the holdings stand at

    • instrument object

      What the symbol resolved to

      ShowHide 8 fields
      • country string
      • currency string
      • id string
      • mic string

        Left out for instruments that don't trade on an exchange, like tokens

      • name string
      • symbol string
      • ticker string or null

        The 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

      • type string

        One of equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant

    • positions array of objects
      ShowHide 7 fields
      • change number or null

        Shares bought or sold since the holder's previous report

      • currency string or null

        Of value

      • holder object
        ShowHide 3 fields
        • cik string or null
        • kind string

          One of institutionfundpersoncompanyother

        • name string
      • percent number or null

        Of shares outstanding, 0 to 100

      • reportDate date

        The date the holder reported the position at

      • shares number
      • value number or null

        What the holder reported the position worth. Substantial holders don't report one, so theirs is the shares at the last close on or before the report date

    • symbol string

      The symbol as sent

    • type string

      One of institutionalsubstantial

  • errors array of objects
    ShowHide 3 fields
    • code string

      One of invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingdata_failed

    • message string
    • symbol string
  • meta object
    ShowHide 2 fields
    • credits integer

      Credits this call cost

    • requestId string

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

GET /v1/ownership/insider-trades

2 credits per instrument Growth and up 4 credits with fresh=true Operation ID ownership.insiderTrades

Directors' and officers' trades of companies that file Form 4 with the SEC, oldest first. Other markets get not_supported, though their notices, like the ASX's Appendix 3Y, are in filings.list. The shares field is always positive and acquired says which way the trade went. The from and to parameters bound the trade date.

Query parameters

  • symbols array of strings Required

    Comma-separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...

    Up to 100 items

  • listedOn date

    Resolves 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

  • from date

    First day, YYYY-MM-DD

  • to date

    Last day, YYYY-MM-DD

  • fresh boolean

    Skip our cache and get the latest data. Items refreshed this way cost double

  • format string

    Response format

    One of jsoncsv

    Defaults to json

Response

  • data array of objects
    ShowHide 4 fields
    • asOf timestamp

      The 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

    • instrument object

      What the symbol resolved to

      ShowHide 8 fields
      • country string
      • currency string
      • id string
      • mic string

        Left out for instruments that don't trade on an exchange, like tokens

      • name string
      • symbol string
      • ticker string or null

        The 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

      • type string

        One of equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant

    • symbol string

      The symbol as sent

    • trades array of objects
      ShowHide 14 fields
      • acquired boolean
      • code string or null

        The form's own transaction code, like P or S on a Form 4

      • currency string or null

        Of price

      • derivative boolean

        True for options, rights and other contracts on the shares

      • filedDate date or null
      • indirect boolean

        True when held through someone else, like a family trust

      • insider string
      • price number or null
      • relation string or null
      • security string or null

        What changed hands, as the form names it

      • shares number
      • sharesAfter number or null
      • tradeDate date
      • type string

        One of buysellawardexercisegiftother

  • errors array of objects
    ShowHide 3 fields
    • code string

      One of invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingdata_failed

    • message string
    • symbol string
  • meta object
    ShowHide 2 fields
    • credits integer

      Credits this call cost

    • requestId string

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

GET /v1/profiles

1 credit per instrument 2 credits with fresh=true Operation ID company.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

  • symbols array of strings Required

    Comma-separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...

    Up to 100 items

  • listedOn date

    Resolves 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

  • fresh boolean

    Skip our cache and get the latest data. Items refreshed this way cost double

  • format string

    Response format

    One of jsoncsv

    Defaults to json

Response

  • data array of objects
    ShowHide 10 fields
    • asOf timestamp

      The 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

    • cik string or null

      SEC Central Index Key, for SEC registrants

    • country string or null
    • industry string or null

      Industry id from /v1/sectors

    • instrument object

      What the symbol resolved to

      ShowHide 8 fields
      • country string
      • currency string
      • id string
      • mic string

        Left out for instruments that don't trade on an exchange, like tokens

      • name string
      • symbol string
      • ticker string or null

        The 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

      • type string

        One of equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant

    • lei string or null

      Legal Entity Identifier

    • logo string or null

      URL of the logo, served by us

    • name string
    • sector string or null

      Sector id from /v1/sectors

    • symbol string

      The symbol as sent

  • errors array of objects
    ShowHide 3 fields
    • code string

      One of invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingdata_failed

    • message string
    • symbol string
  • meta object
    ShowHide 2 fields
    • credits integer

      Credits this call cost

    • requestId string

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

GET /v1/short-interest

1 credit per instrument 2 credits with fresh=true Operation ID company.shortInterest

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. When a regulator leaves out the shares on issue or the volume, we work them out from our own market data, and a published figure always wins. Without from it covers the 31 days up to to, or up to today.

Query parameters

  • symbols array of strings Required

    Comma-separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...

    Up to 100 items

  • listedOn date

    Resolves 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

  • from date

    First day, YYYY-MM-DD

  • to date

    Last day, YYYY-MM-DD

  • fresh boolean

    Skip our cache and get the latest data. Items refreshed this way cost double

  • format string

    Response format

    One of jsoncsv

    Defaults to json

Response

  • data array of objects
    ShowHide 4 fields
    • asOf timestamp

      The 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

    • instrument object

      What the symbol resolved to

      ShowHide 8 fields
      • country string
      • currency string
      • id string
      • mic string

        Left out for instruments that don't trade on an exchange, like tokens

      • name string
      • symbol string
      • ticker string or null

        The 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

      • type string

        One of equityetffundindexfxcryptotokenratefuturecommoditybondnftoptionwarrant

    • positions array of objects
      ShowHide 6 fields
      • averageVolume number or null

        Average daily volume. If the regulator publishes none, the average over the 10 trading sessions up to and including the date, which is about one FINRA reporting period

      • date date
      • daysToCover number or null

        Shares short divided by averageVolume, to two decimals

      • percent number or null

        Shares short as a percentage of sharesOutstanding, 0 to 100

      • shares number or null
      • sharesOutstanding number or null

        The shares on issue the regulator measured against. If it publishes none, the company's shares outstanding as last filed before the date, adjusted for any split since

    • symbol string

      The symbol as sent

  • errors array of objects
    ShowHide 3 fields
    • code string

      One of invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingdata_failed

    • message string
    • symbol string
  • meta object
    ShowHide 2 fields
    • credits integer

      Credits this call cost

    • requestId string

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.