API reference

Income and corporate actions

Dividends with franking and DRP prices, AMIT tax components, corporate actions and official tax FX rates.

Corporate actions

GET /v1/corporate-actions

1 credit per instrument 2 credits with fresh=true Operation ID income.corporateActions

Splits, consolidations, demergers, mergers, returns of capital, symbol and name changes and delistings. Each action has the detail object its type names. The from and to parameters bound the effective 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

  • types array of strings

    Comma-separated action types, every type when empty

Response

  • data array of objects
    ShowHide 4 fields
    • actions array of objects

      Oldest effective date first

      ShowHide 11 fields
      • announcedDate date or null
      • delisting object

        Only on delisting

        ShowHide 1 field
        • reason string or null

          As the exchange gave it

      • demerger object

        Only on demerger

        ShowHide 4 fields
        • au object

          Only for Australian demergers

          ShowHide 1 field
          • costBaseApportionmentPct number or null

            Share of the original cost base that moves to the demerged company, as the ATO sets it

        • child string or null

          The demerged company's symbol, null until it's known

        • childName string or null

          The demerged company

        • ratio number or null

          Demerged shares for every share held

      • effectiveDate date

        The ex-date of splits and demergers, the first day under a new symbol or name, the last trading day before a delisting

      • merger object

        Only on merger

        ShowHide 4 fields
        • acquirer string or null

          Symbol of the company whose shares are paid

        • cash number or null

          Cash for every share held

        • currency string or null
        • ratio number or null

          Acquirer shares for every share held

      • nameChange object

        Only on name_change

        ShowHide 2 fields
        • new string or null
        • old string or null
      • returnOfCapital object

        Only on return_of_capital

        ShowHide 2 fields
        • amount number or null

          Per share

        • currency string or null
      • split object

        Only on split and consolidation

        ShowHide 2 fields
        • new number or null

          Shares held after, for every old number of shares

        • old number or null

          Shares held before

      • status string

        One of announcedconfirmedcompletedcancelled

      • symbolChange object

        Only on symbol_change

        ShowHide 2 fields
        • new string or null
        • old string or null
      • type string

        One of splitconsolidationdemergermergerreturn_of_capitalsymbol_changename_changedelisting

    • 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

  • 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.

Dividends and distributions

GET /v1/dividends

1 credit per instrument 2 credits with fresh=true Operation ID income.dividends

Every dividend with its dates, the amount as declared and adjusted for later splits, reinvestment plan details and Australian franking. The from and to parameters bound the ex-date. Status firms up from announced to confirmed to paid.

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

    • dividends array of objects

      Oldest ex-date first

      ShowHide 11 fields
      • adjustedAmount number

        Per share today, after every split and consolidation since the ex-date

      • amount number

        Per share as declared

      • au object

        Australian franking, only on Australian dividends

        ShowHide 4 fields
        • conduitForeignIncome number or null

          Per share, in the dividend's currency

        • frankedPct number or null

          Share of the dividend that is franked, 0 to 100

        • frankingCredit number or null

          Per share, in the dividend's currency

        • taxRatePct number or null

          Company tax rate the credit was worked out at

      • currency string
      • declaredDate date or null
      • drp object

        Dividend reinvestment plan, only when there is one

        ShowHide 2 fields
        • discountPct number or null

          Discount to market the plan gives, 0 to 100

        • price number or null

          Reinvestment price per share, in the dividend's currency

      • exDate date
      • payDate date or null
      • recordDate date or null
      • status string

        One of announcedconfirmedpaidcancelled

      • type string

        One of regularinterimfinalspecialreturn_of_capitalcapital_gains

    • 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.

Australian trust tax components

GET /v1/tax/au/components

5 credits per instrument Growth and up 10 credits with fresh=true Operation ID tax.auComponents

AMIT attribution components of every distribution in an Australian financial year, per unit. The basis field is estimate until the issuer publishes its final annual (AMMA) figures. Components the issuer didn't report are null.

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

  • financialYear integer

    Named by the year it ends in, so 2026 runs 1 July 2025 to 30 June 2026. Defaults to the current one

    From 2000 to 2100

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

    • distributions array of objects
      ShowHide 24 fields
      • amitCostBaseDecrease number or null
      • amitCostBaseIncrease number or null
      • basis string

        One of estimatefinal

      • cashDistribution number or null
      • cgtConcession number or null
      • currency string
      • discountedCapitalGainsNtap number or null

        On other than taxable Australian property

      • discountedCapitalGainsTap number or null

        On taxable Australian property

      • exDate date or null
      • foreignIncome number or null

        Assessable foreign income grossed up for the foreign tax paid on it

      • foreignIncomeTaxOffset number or null
      • frankedDividends number or null
      • frankingCredits number or null
      • indexedCapitalGains number or null
      • interest number or null
      • netExemptIncome number or null
      • nonAssessableNonExempt number or null
      • otherCapitalGainsNtap number or null
      • otherCapitalGainsTap number or null
      • otherIncome number or null
      • otherNonAttributable number or null
      • payDate date
      • unfrankedCfiDividends number or null

        Unfranked dividends that are conduit foreign income

      • unfrankedDividends number or null
    • financialYear integer
    • 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.

Read an Australian AMMA tax statement

POST /v1/tax/au/statements

5 credits per call 10 credits with fresh=true Operation ID tax.auStatements

Reads a holder's AMIT member annual (AMMA) statement from any Australian registry and returns its tax return labels and components in dollars. Send the units held at each of the year's distributions too, and the statement helps work out the fund's components per unit: once enough statements with different holdings are in, each distribution is solved exactly and goes final. Only the amounts are kept, never the file or who the holder is.

Form fields

  • file file Required

    The statement as the registry sent it

    Sent as application/pdf

  • holdings array of objects

    Units held at each of the year's distributions, leaving out those not held

    Up to 366 items

    ShowHide 2 fields
    • date date Required

      The distribution's ex date or payment date

    • units number Required

      At least 0

  • symbol string

    The fund, needed when the statement doesn't print its ASX code

Response

  • data object
    ShowHide 5 fields
    • amounts object

      In dollars, the holder's total for the year

      ShowHide 20 fields
      • amitCostBaseDecrease number or null
      • amitCostBaseIncrease number or null
      • cashDistribution number or null
      • cgtConcession number or null
      • discountedCapitalGainsNtap number or null

        On other than taxable Australian property

      • discountedCapitalGainsTap number or null

        On taxable Australian property

      • foreignIncome number or null

        Assessable foreign income grossed up for the foreign tax paid on it

      • foreignIncomeTaxOffset number or null
      • frankedDividends number or null
      • frankingCredits number or null
      • indexedCapitalGains number or null
      • interest number or null
      • netExemptIncome number or null
      • nonAssessableNonExempt number or null
      • otherCapitalGainsNtap number or null
      • otherCapitalGainsTap number or null
      • otherIncome number or null
      • otherNonAttributable number or null
      • unfrankedCfiDividends number or null

        Unfranked dividends that are conduit foreign income

      • unfrankedDividends number or null
    • contribution string or null

      Null without holdings. Conflicting statements can't be fitted with the fund's others and are set aside

      One of usedconflicting

    • financialYear integer
    • symbol string
    • taxReturn object

      Tax return (supplementary section) labels, like 13U

  • 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 Error502 Bad Gateway503 Service Unavailable

Every error body is problem+json with a stable code. See errors.

Official FX rates for tax

GET /v1/tax/fx

1 credit per pair 2 credits with fresh=true Operation ID tax.fx

Rates a tax authority publishes for converting foreign amounts, as distinct from market FX, which lives in prices.daily under FX: symbols. Each rate is dated on the last day of its period. Pairs go in the direction the authority publishes, like AUDUSD for the RBA and USDCAD for the BoC.

Query parameters

  • authority string Required

    One of RBAATOECBHMRCIRSBOC

  • pairs array of strings Required

    Comma-separated currency pairs, up to 100

    Up to 100 items

  • period string

    What each rate stands for, where year_end is the rate on the last day of the tax year

    One of dailymonthlyyearlyyear_end

    Defaults to daily

  • 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 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

    • base string
    • pair string
    • quote string
    • rates array of objects
      ShowHide 2 fields
      • date date
      • rate number

        Units of quote per unit of base

  • errors array of objects
    ShowHide 3 fields
    • code string

      One of invalid_symbolnot_supporteddata_unavailabledata_pendingdata_failed

    • message string
    • pair string

      The pair upper cased, or as sent when it isn't a pair

  • 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.