Skip to content

Documentation.

ETF holdings, fund facts and security identity from primary sources. Version 1.7.0 of the API, read-only, JSON over HTTPS. This page is built from the OpenAPI file, which you can also load into your own tools.

Base URL

https://api.krabydata.com/v1. Every answer is JSON: { "data": ... }, lists add "pagination", and an error is { "error": "code", "message": "..." }. Any website may call the API from a browser (CORS is open for GET), but your key is then visible to your visitors: call it from your server when you can.

Accounts and keys

Keys belong to an account. Create one with your email and a password, open the link we mail you, and make a key under Keys in your account. An account holds up to three live keys, one per product or environment, each with a name you choose ("production", "staging"). Revoke a key there at any time; the others keep working.

Send a key in a header on every request but /v1/health and /v1/stats:

Authorization: Bearer kd_...

A key is kd_ followed by 43 characters. It is shown once, when it is made; we keep only its hash and cannot show it again. A key is never read from the query string, so it does not end up in logs or browser history.

The plan is the account's, not the key's. Its limits count the requests of all the account's keys together, and when you move to pro under Billing, every key the account has gets pro's limits at once, with no new key to deploy. Usage shows the last 30 days per day and per key.

Limits and their headers

Each plan allows a number of requests over a period, a UTC month on free and a UTC day on pro, and pro a number per minute (see the plans: 100 a month on free, 5,000 a day on pro), counted for the account across its keys. Every answer to a keyed request carries:

HeaderMeaning
X-RateLimit-LimitRequests your plan allows over its period: a UTC month on free, a UTC day on pro.
X-RateLimit-RemainingRequests your account has left in the period, this one counted.
Retry-AfterOn a 429 only: seconds to wait, until the next minute, midnight UTC, or the 1st of next month.

A daily count starts again at midnight UTC, a monthly one on the 1st. Unlimited plans send no limit headers.

Errors

The status says what kind of problem it is, error says exactly which, and message says it in words. Codes do not change within v1.

StatuserrorWhen
400bad_requestA required parameter is missing or malformed: the resolver was given none of symbol, ticker with mic, or isin; a real-estate route lacks country and level, or q.
400bad_areaA real-estate area id that is not COUNTRY-level-code, like BE-municipality-21009.
400bad_metricA metric the real-estate history does not know.
400bad_queryA universe screen whose q is not a JSON object.
400bad_symbolsA universe quote request without symbols, or with more than 500.
400bad_addressNot an address of that chain: a Bitcoin address or xpub, a 0x Ethereum address, a Solana address.
400bad_isinAn ISIN that is not two letters, nine characters and a check digit.
400bad_dateA date that is not YYYY-MM-DD.
400bad_sortA sort field the fund list does not know.
300ambiguousSeveral funds share that ticker. The answer lists them in candidates; ask again by ISIN.
401missing_keyNo Authorization header, or not in the form Bearer <key>.
401invalid_keyNot a KrabyData key, or a key that does not exist.
403revoked_keyThe key was revoked.
403unknown_planThe key's plan is no longer offered. Write to us.
404not_foundNo fund, security, area or route by that name.
404not_licensedA dataset your key may not see (see below).
404no_holdingsNo holdings stored for the fund on or before the date.
404suspect_holdingsThe only files for the date failed the weight check on write, and are held back. The message says why.
405method_not_allowedThe API is read-only: GET only.
429quota_exceededYour account's requests for the UTC day, across all its keys, are used up. Retry-After says when midnight UTC comes.
429rate_limitedToo many requests this minute from your account's keys. Retry-After says how many seconds to wait.
502upstream_unavailableA public blockchain service we read from did not answer. Try again in a minute.
500internal_errorOur fault. Nothing to change on your side; tell us if it lasts.

What your key does not see, and why

KrabyData only passes on what its sources allow. PentaLab's own products see more than a customer's key; the difference is always the same, and it is stated here rather than discovered.

  • Funds from issuers that have not agreed. Daily holdings files of Global X (Europe and US) and VanEck Europe carry notices against reproduction and derivative works. Those funds answer 404 not_licensed and are left out of every list, until an issuer agrees in writing.
  • Their funds that file with the SEC. A Global X US fund also files Form N-PORT, which is public. Such a fund answers from its filings only: its ISIN, ticker, name, EDGAR ids, the fee in its SEC prospectus and its N-PORT dates. Its NAV, net assets, launch date and the issuer's daily files are not shown.
  • The resolver uses public evidence only. /v1/listings/resolve answers from OpenFIGI's listings, the security master rows SEC filings name with the ticker they give, and lines of SEC filings that carry their own ISIN. A symbol that only an issuer's file connects to an ISIN answers as an unknown symbol would, with no hint that anything was left out. The same rule applies to /v1/securities/{isin}.
  • No CUSIP and no SEDOL. CUSIP Global Services and LSEG own those codes and license them separately. Fields named cusip or sedol never appear in your answers.
  • FIGI with attribution. FIGIs are given, with "attribution": "FIGI data from OpenFIGI" in the answer, which you should keep beside them.

How old the data is

Holdings from SEC Form N-PORT are dated at the filing's report period end. Funds file every month, but only the third month of each quarter is made public, 60 days after the quarter ends, so the holdings are two to five months old. Every such answer carries source.freshness saying so, and asOf with the date. Identity answers are current.

Versions

The base path carries the major version. Within /v1, fields and routes may be added; nothing is removed, renamed or changes meaning without a /v2, which would run beside /v1 for a notice period. Read your JSON so that an unknown field is ignored. Questions: contact@krabydata.com.

Routes.

GET

/v1/health

no key needed

Service status, for status pages and uptime checks

Needs no key. Whether the database answers, each source's latest holdings date, and each collector's last run.

Answers

200Up
503The database does not answer

Fields of a 200 answer

  • okboolean
  • timestring (date-time)
  • databaseobject
    • okboolean
    • msinteger
  • holdingsarray of object
    • sourcestring
    • latestAsOfstring (date)
    • lastFetchedAtstring (date-time)
  • collectorsarray of object
    • collectorstring
    • startedAtstring (date-time)
    • finishedAtstring (date-time) or null
    • fundsinteger
    • filesinteger
    • rowsinteger
    • errorsinteger
  • lastRunobject or null The most recent of the collectors' runs
GET

/v1/stats

no key needed

What the service holds, for the site's front page

Needs no key. Funds, the holding lines of each fund's latest file, the securities in the master, and per source its funds and latest holdings date. Kept for a minute; the answer says when it was computed.

Answers

200The figures

Fields of a 200 answer

  • dataobject
    • fundsinteger
    • fundsWithHoldingsinteger
    • holdingLinesinteger Lines of each fund's latest holdings file, summed
    • securitiesinteger ISINs in the security master
    • sourcesarray of object
      • sourcestring
      • namestring
      • externalDistributionboolean Whether external keys see this source
      • fundsinteger
      • fundsWithHoldingsinteger
      • fundsWithFeesinteger
      • holdingLinesinteger
      • latestAsOfstring (date) or null
  • asOfstring (date-time) When the figures were computed
GET

/v1/issuers

Sources collected, with their counts, latest date and last run

An external key sees only the issuers whose data may be redistributed.

Answers

200The issuers
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataarray of object
    • idstring
    • namestring
    • websitestring or null
    • noticestring or null
    • externalDistributionboolean
    • fundsinteger
    • fundsWithHoldingsinteger
    • latestAsOfstring (date) or null
    • lastFetchedAtstring (date-time) or null
    • linesLatestinteger
    • lastRunobject or null
GET

/v1/etfs

A page of funds

Parameters

NameInTypeMeaning
issuerquerystringAn issuer id from /v1/issuers (sec-nport, globalx...)
qquerystringText found in the name, ticker or ISIN
sortquerystring: ticker name issuer isin fees launched nav holdingsAsOf lines
dirquerystring: asc desc Default asc
limitqueryintegerDefault 100
offsetqueryintegerDefault 0

Answers

200The page
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • paginationobject
    • limitinteger
    • offsetinteger
    • countinteger
    • totalinteger
  • dataarray of object
    • isinstring or null
    • figistring or null Composite FIGI of the home market
    • shareClassFigistring or null Share class FIGI
    • tickerstring or null
    • namestring
    • issuerstring
    • shareClassstring or null
    • themestring or null
    • sfdrstring or null
    • ongoingChargesPctnumber or null
    • inceptionDatestring (date) or null
    • countriesarray of string
    • netAssetsnumber or null
    • navnumber or null
    • navAsOfstring (date) or null
    • domicilestring or null
    • replicationstring or null
    • distributionFrequencystring or null
    • baseCurrencystring or null
    • indexNamestring or null
    • detailsAtstring (date-time) or null
    • holdingsobject or null
      • asOfstring (date)
      • countinteger
    • identifiedWeightPctnumber or null
    • edgarobject or null A US fund's ids in SEC EDGAR
      • cikstring
      • seriesIdstring or null
      • classIdstring or null
GET

/v1/etfs/{id}

One fund's facts

Parameters

NameInTypeMeaning
id requiredpathstringThe fund's ISIN, or its ticker when no other fund shares it (300 otherwise)

Answers

200The fund
300Several funds share that ticker; use the ISIN
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • isinstring or null
    • figistring or null Composite FIGI of the home market
    • shareClassFigistring or null Share class FIGI
    • tickerstring or null
    • namestring
    • issuerstring
    • shareClassstring or null
    • themestring or null
    • sfdrstring or null
    • ongoingChargesPctnumber or null
    • inceptionDatestring (date) or null
    • countriesarray of string
    • netAssetsnumber or null
    • navnumber or null
    • navAsOfstring (date) or null
    • domicilestring or null
    • replicationstring or null
    • distributionFrequencystring or null
    • baseCurrencystring or null
    • indexNamestring or null
    • detailsAtstring (date-time) or null
    • holdingsobject or null
      • asOfstring (date)
      • countinteger
    • identifiedWeightPctnumber or null
    • edgarobject or null A US fund's ids in SEC EDGAR
      • cikstring
      • seriesIdstring or null
      • classIdstring or null
    • issuerNamestring or null
    • historyobject
      • daysinteger Holdings dates stored
      • fromstring (date) or null
    • sourceobject Where the numbers came from, and how old they are
      • issuerstring or null
      • issuerNamestring or null
      • urlstring or null
      • fetchedAtstring (date-time) or null
      • sha256string or null
      • noticestring or null The source's own terms notice
      • externalDistributionboolean
      • freshnessstring or null How old this source's data is (N-PORT two to five months)
GET

/v1/etfs/{id}/holdings

A fund's holdings on a date

The latest file on or before date (today when omitted) whose weights passed the check on write. Lines keep the file's own identifiers; a line whose file gave no ISIN may carry one found by a rule, named in isinFrom.

Parameters

NameInTypeMeaning
id requiredpathstringThe fund's ISIN, or its ticker when no other fund shares it (300 otherwise)
datequerystring (date)

Answers

200The holdings
300Several funds share that ticker; use the ISIN
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund (not_found), not licensed for an external key (not_licensed), no file on or before the date (no_holdings), or only files held back by the weight check (suspect_holdings, with the reason)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • etfobject
      • isinstring or null
      • figistring or null Composite FIGI of the home market
      • shareClassFigistring or null Share class FIGI
      • tickerstring or null
      • namestring
      • issuerstring
    • asOfstring (date)
    • requestedDatestring (date) or null
    • totalsobject
      • linesinteger
      • securitiesinteger
      • weightPctnumber
      • securitiesWeightPctnumber
      • cashWeightPctnumber
      • cryptoWeightPctnumber
      • otherWeightPctnumber
      • identifiedWeightPctnumber or null Share of the security weight whose lines carry an ISIN
    • sourceobject Where the numbers came from, and how old they are
      • issuerstring or null
      • issuerNamestring or null
      • urlstring or null
      • fetchedAtstring (date-time) or null
      • sha256string or null
      • noticestring or null The source's own terms notice
      • externalDistributionboolean
      • freshnessstring or null How old this source's data is (N-PORT two to five months)
    • attributionstring "FIGI data from OpenFIGI" when a line carries a FIGI (external keys)
    • holdingsarray of object
      • lineinteger
      • kindstring one of security, cash, crypto, other
      • namestring
      • isinstring or null
      • isinFromstring or null The file, or the rule that found the ISIN. one of file, cusip, master-cusip, master-sedol, treasury, master-ticker, successor
      • sedolstring or null Internal keys only
      • tickerstring or null
      • tickerFromstring or null one of file, master
      • countrystring or null
      • figistring or null The line's own FIGI, else the composite FIGI of its home market
      • shareClassFigistring or null Share class FIGI
      • cusipstring or null Internal keys only
      • currencystring or null
      • sectorstring or null
      • assetCatstring or null N-PORT asset category (EC, EP, DBT...)
      • weightPctnumber or null
      • sharesnumber or null
      • pricenumber or null
      • marketValuenumber or null
GET

/v1/etfs/{id}/holdings/dates

Every holdings date stored for a fund

Parameters

NameInTypeMeaning
id requiredpathstringThe fund's ISIN, or its ticker when no other fund shares it (300 otherwise)

Answers

200The dates, newest first; a held-back date is listed with its reason and never served
300Several funds share that ticker; use the ISIN
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • etfobject
      • isinstring or null
      • figistring or null Composite FIGI of the home market
      • shareClassFigistring or null Share class FIGI
      • tickerstring or null
      • namestring
      • issuerstring
    • datesarray of object
      • asOfstring (date)
      • countinteger
      • fetchedAtstring (date-time)
      • suspectboolean
      • suspectReasonstring or null
GET

/v1/etfs/{id}/holdings/open

Security lines of the latest file still without an ISIN, heaviest first, and why

Parameters

NameInTypeMeaning
id requiredpathstringThe fund's ISIN, or its ticker when no other fund shares it (300 otherwise)

Answers

200The open lines
300Several funds share that ticker; use the ISIN
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • etfobject
      • isinstring or null
      • figistring or null Composite FIGI of the home market
      • shareClassFigistring or null Share class FIGI
      • tickerstring or null
      • namestring
      • issuerstring
    • asOfstring (date)
    • identifiedWeightPctnumber or null
    • openLinesinteger
    • openWeightPctnumber
    • openarray of object
      • lineinteger
      • namestring
      • tickerstring or null
      • cusipstring or null Internal keys only
      • assetCatstring or null
      • weightPctnumber or null
      • whystring one of tie: preferred, tie: share classes, successor unconfirmed, venue unknown, no candidate, debt, no identifier, resolvable
      • candidatesarray of string
GET

/v1/etfs/{id}/listings

Every venue a fund trades on, from OpenFIGI

Parameters

NameInTypeMeaning
id requiredpathstringThe fund's ISIN, or its ticker when no other fund shares it (300 otherwise)

Answers

200The listings
300Several funds share that ticker; use the ISIN
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • etfobject
      • isinstring or null
      • figistring or null Composite FIGI of the home market
      • shareClassFigistring or null Share class FIGI
      • tickerstring or null
      • namestring
      • issuerstring
    • listingsarray of object
      • figistring
      • isinstring or null
      • shareClassFigistring or null Share class FIGI
      • tickerstring
      • exchCodestring or null Bloomberg venue code
      • micstring or null
      • symbolstring or null Yahoo-style symbol where one exists
      • namestring or null
      • securityTypestring or null
      • fetchedAtstring (date-time)
    • attributionstring always FIGI data from OpenFIGI
GET

/v1/listings/resolve

The ISIN behind a symbol, a ticker on a venue, or the listings of an ISIN

Give one of symbol (a Yahoo-style symbol: DFNS.MI, NESN.SW, AMZN, BRK-B), ticker with mic, or isin. A fund is found in its OpenFIGI listings, a share in the security master, then in holdings lines. When several ISINs answer, isin is null and candidates lists them: the API never guesses. An external key's answer rests on public evidence only: OpenFIGI listings, the master rows SEC N-PORT filings name with the ticker they give, and N-PORT lines that carry their own ISIN.

Parameters

NameInTypeMeaning
symbolquerystring
tickerquerystring
micquerystringISO 10383 market identifier code
isinquerystring

Answers

200The answer, possibly empty
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • isinstring or null
    • candidatesarray of string or null
    • fundsarray of object
      • isinstring or null
      • figistring or null Composite FIGI of the home market
      • shareClassFigistring or null Share class FIGI
      • tickerstring or null
      • namestring
      • issuerstring
    • listingsarray of object
      • figistring
      • isinstring or null
      • shareClassFigistring or null Share class FIGI
      • tickerstring
      • exchCodestring or null Bloomberg venue code
      • micstring or null
      • symbolstring or null Yahoo-style symbol where one exists
      • namestring or null
      • securityTypestring or null
      • fetchedAtstring (date-time)
    • websitestring or null The company's website host (apple.com) when the ISIN names a share, from Wikidata (CC0)
    • securitiesarray of object
      • isinstring or null
      • figistring or null Composite FIGI of the home market
      • shareClassFigistring or null Share class FIGI
      • namestring or null
      • currencystring or null
      • tickersarray of string
      • heldByFundsinteger
      • lastSeenstring (date) or null
      • cusipstring or null Internal keys only
      • countrystring or null
    • attributionstring always FIGI data from OpenFIGI
GET

/v1/securities/{isin}

One security from the master, with its succession

Parameters

NameInTypeMeaning
isin requiredpathstring

Answers

200The security
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • isinstring or null
    • figistring or null Composite FIGI of the home market
    • shareClassFigistring or null Share class FIGI
    • tickerstring or null
    • namestring or null
    • cusipstring or null Internal keys only
    • leistring or null
    • countrystring or null
    • firstSeenstring (date) or null
    • lastSeenstring (date) or null
    • heldByFundsinteger or null
    • succeededByobject or null
      • isinstring or null
      • figistring or null Composite FIGI of the home market
      • shareClassFigistring or null Share class FIGI
      • effectiveFromstring (date) or null
      • evidenceobject
    • succeedsarray of object
      • isinstring or null
      • figistring or null Composite FIGI of the home market
      • shareClassFigistring or null Share class FIGI
      • effectiveFromstring (date) or null
      • evidenceobject
GET

/v1/securities/{isin}/funds

The funds holding a security, from each fund's latest file on or before the date

Parameters

NameInTypeMeaning
isin requiredpathstring
datequerystring (date)

Answers

200The funds, heaviest weight first
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • isinstring or null
    • figistring or null Composite FIGI of the home market
    • shareClassFigistring or null Share class FIGI
    • namestring or null
    • requestedDatestring (date) or null
    • fundsarray of object
      • isinstring or null
      • figistring or null Composite FIGI of the home market
      • shareClassFigistring or null Share class FIGI
      • tickerstring or null
      • namestring
      • issuerstring
      • asOfstring (date)
      • weightPctnumber or null
      • sharesnumber or null
      • marketValuenumber or null
GET

/v1/realestate/countries

Countries with real-estate figures, their levels of areas and their sources

Sale prices and rents per area come from official open data (statistics offices, tax administrations) under licences that allow reuse with a credit. Every answer names its sources; show their attribution next to the figures.

Answers

200The countries
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataarray of object
    • countrystring
    • namestring
    • levelsarray of object
      • levelstring
      • areasinteger
      • withFiguresinteger Areas with at least one figure
      • lateststring (date) or null
      • shapesboolean Outlines exist for the whole country at this level
      • splitBystring or null The parent level whose areas this level's outlines are stored by (FR communes by department); ask /shapes and /map with parent
    • sourcesarray of object
      • idstring
      • countrystring
      • namestring
      • publisherstring
      • urlstring
      • licencestring
      • licenceUrlstring
      • attributionstring The credit line to show next to the figures
      • externalDistributionboolean
GET

/v1/realestate/map

The latest figures of every area of a country at one level, with the gross yield

Parameters

NameInTypeMeaning
country requiredquerystring
level requiredquerystring
parentquerystringOnly the areas inside this one (a level stored one parent at a time

Answers

200The areas and their latest figures
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • countrystring
    • levelstring
    • areasarray of object
      • idstring
      • countrystring
      • levelstring
      • codestring The code the country's statistics office uses
      • namestring
      • namesobject
      • parentIdstring or null
      • activeboolean
      • figuresarray of object
        • metricstring one of sale_price, sale_price_m2, rent, rent_m2, price_index, rent_index
        • propertystring one of all, house, apartment, land
        • statstring one of median, mean, index
        • periodstring
        • periodEndstring (date)
        • valuenumber
        • p25number or null
        • p75number or null
        • countinteger or null Sales or leases behind the figure
        • unitstring
        • currencystring or null
        • sourcestring
      • grossYieldobject or null
        • pctnumber Twelve months of rent over the price
        • basisstring
        • propertystring
        • rentPeriodstring
        • pricePeriodstring
        • approxboolean True when the price blends two kinds of dwelling or the periods differ
      • grossYieldGapobject or null Why there is no gross yield (null when there is one, or no figures at all)
        • reasonstring one of no_rent, no_price, different_kinds, far_apart, few_sales
        • rentPeriodstring
        • pricePeriodstring
        • countinteger The fewest sales or leases behind a figure
        • rentPropertystring
        • pricePropertystring
    • sourcesarray of object
      • idstring
      • countrystring
      • namestring
      • publisherstring
      • urlstring
      • licencestring
      • licenceUrlstring
      • attributionstring The credit line to show next to the figures
      • externalDistributionboolean
GET

/v1/realestate/shapes

The outlines of a country's areas at one level, as TopoJSON (WGS84, simplified); each geometry's id is the area id

Parameters

NameInTypeMeaning
country requiredquerystring
level requiredquerystring
parentquerystringOnly the areas inside this one (a level stored one parent at a time

Answers

200The outlines
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • countrystring
    • levelstring
    • versionstring
    • topologyobject A TopoJSON topology with one object named after the level
    • sourceobject
      • idstring
      • countrystring
      • namestring
      • publisherstring
      • urlstring
      • licencestring
      • licenceUrlstring
      • attributionstring The credit line to show next to the figures
      • externalDistributionboolean
GET

/v1/realestate/areas/{id}

One area, its latest figures, gross yield, parents and children

Parameters

NameInTypeMeaning
id requiredpathstring

Answers

200The area
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • idstring
    • countrystring
    • levelstring
    • codestring The code the country's statistics office uses
    • namestring
    • namesobject
    • parentIdstring or null
    • activeboolean
    • figuresarray of object
      • metricstring one of sale_price, sale_price_m2, rent, rent_m2, price_index, rent_index
      • propertystring one of all, house, apartment, land
      • statstring one of median, mean, index
      • periodstring
      • periodEndstring (date)
      • valuenumber
      • p25number or null
      • p75number or null
      • countinteger or null Sales or leases behind the figure
      • unitstring
      • currencystring or null
      • sourcestring
    • grossYieldobject or null
      • pctnumber Twelve months of rent over the price
      • basisstring
      • propertystring
      • rentPeriodstring
      • pricePeriodstring
      • approxboolean True when the price blends two kinds of dwelling or the periods differ
    • grossYieldGapobject or null Why there is no gross yield (null when there is one, or no figures at all)
      • reasonstring one of no_rent, no_price, different_kinds, far_apart, few_sales
      • rentPeriodstring
      • pricePeriodstring
      • countinteger The fewest sales or leases behind a figure
      • rentPropertystring
      • pricePropertystring
    • parentsarray of object
      • idstring
      • countrystring
      • levelstring
      • codestring The code the country's statistics office uses
      • namestring
      • namesobject
      • parentIdstring or null
      • activeboolean
    • childrenarray of object
      • levelstring
      • areasinteger
    • sourcesarray of object
      • idstring
      • countrystring
      • namestring
      • publisherstring
      • urlstring
      • licencestring
      • licenceUrlstring
      • attributionstring The credit line to show next to the figures
      • externalDistributionboolean
GET

/v1/realestate/areas/{id}/history

Every period of every series of an area

Parameters

NameInTypeMeaning
id requiredpathstring
metricquerystring: sale_price sale_price_m2 rent rent_m2 price_index rent_index
propertyquerystring: all house apartment land

Answers

200The series, oldest period first
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • idstring
    • countrystring
    • levelstring
    • codestring The code the country's statistics office uses
    • namestring
    • namesobject
    • parentIdstring or null
    • activeboolean
    • seriesarray of object
      • metricstring
      • propertystring
      • statstring
      • frequencystring A source publishing years and quarters gives one series of each. one of month, quarter, half, year
      • unitstring
      • currencystring or null
      • sourcestring
      • pointsarray of object
        • periodstring
        • periodEndstring (date)
        • valuenumber
        • p25number or null
        • p75number or null
        • countinteger or null
    • sourcesarray of object
      • idstring
      • countrystring
      • namestring
      • publisherstring
      • urlstring
      • licencestring
      • licenceUrlstring
      • attributionstring The credit line to show next to the figures
      • externalDistributionboolean
GET

/v1/wines/{lwin}

One wine by its seven-digit LWIN, with the LWIN11 of a vintage when one is given

Parameters

NameInTypeMeaning
lwin requiredpathstring
vintagequeryintegerA year; LWIN11 is the LWIN followed by it (1000 for a non-vintage wine when absent)

Answers

200The wine
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • lwinstring
    • namestring
    • producerstring or null
    • winestring or null
    • countrystring or null
    • regionstring or null
    • subRegionstring or null
    • sitestring or null
    • colourstring or null
    • typestring or null
    • subTypestring or null
    • designationstring or null
    • classificationstring or null
    • vintageConfigstring or null
    • firstVintageinteger or null
    • finalVintageinteger or null
    • statusstring or null LWIN's own status; retired rows stay so a bottle already recorded keeps its name
    • isWineboolean
    • vintageinteger or null
    • lwin11string or null
  • sourceobject
    • idstring
    • namestring
    • publisherstring
    • urlstring
    • licencestring
    • licenceUrlstring
    • attributionstring The credit line to show next to the names
    • externalDistributionboolean
GET

/v1/wallets/detect

Which chain an address or Bitcoin extended public key belongs to

Internal keys only for now; other keys receive 404 not_licensed. The address is never written to a log.

Parameters

NameInTypeMeaning
address requiredquerystring

Answers

200The chains it could be, empty when none
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataarray of object
    • chainstring one of bitcoin, ethereum, solana
    • inputstring one of address, xpub
GET

/v1/wallets/{chain}/{address}

What a public address holds and what moved in and out of it

Bitcoin (an address, or an xpub, ypub or zpub whose used addresses are found by the usual gap of 20), Ethereum (ETH and ERC-20 tokens with a known price worth a dollar or more; the rest are counted in hiddenTokens) and Solana (SOL and well-known tokens, the latest 50 transactions). Read from mempool.space, Blockscout and Solana's public RPC server; kept ten minutes. Internal keys only for now; other keys receive 404 not_licensed.

Parameters

NameInTypeMeaning
chain requiredpathstring: bitcoin ethereum solana btc eth sol
address requiredpathstring

Answers

200Balances and transfers, newest first
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_unavailable: the public service did not answer

Fields of a 200 answer

  • dataobject
    • chainstring
    • inputstring one of address, xpub
    • addressesarray of object
    • balancesarray of object
      • symbolstring
      • namestring
      • contractstring
      • quantitynumber
      • pendingnumber
      • nativeboolean
    • hiddenTokensinteger
    • transfersarray of object
      • idstring
      • timestring (date-time) or null
      • confirmedboolean
      • directionstring one of in, out
      • symbolstring
      • contractstring
      • quantitynumber
      • feenumber Paid by this wallet
    • truncatedboolean
    • readAtstring (date-time)
    • sourceobject
GET

/v1/universe/screen

One page of a screen over every stock or ETF of 50 markets, or every coin

Filters and sorts the market universe: every stock with a market cap or trading and every ETF of 50 markets, read from Yahoo's screener every 15 minutes while each market trades, with each company's figures, and every coin priced in dollars with a market cap, read every 15 minutes around the clock. Side listings are left out and a company on several lines shows its busiest one. Internal keys only; other keys receive 404 not_licensed.

Parameters

NameInTypeMeaning
qquerystringThe query as JSON: { kind: stock | etf | crypto, markets: [us, de, ...] (ignored for crypto), filters: [{ field, min, max } or { field, values }], sort: { field, dir: asc | desc }, offset, size (up to 250) }. Amounts in US dollars. Unknown markets and fields are dropped; no markets means us.

Answers

200The cleaned query, how many rows match, and the page
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • queryobject
    • totalinteger
    • rowsarray
    • type
    • description
GET

/v1/universe/map

The largest names of a screen, sector by sector, or the largest funds

Stocks: up to 30 per sector by market cap (the query's sector filter chooses the sectors). ETFs: the 150 largest by net assets, one group. Coins: the 150 largest by market cap, one group (coins). Internal keys only; other keys receive 404 not_licensed.

Parameters

NameInTypeMeaning
qquerystringThe query as JSON: { kind: stock | etf | crypto, markets: [us, de, ...] (ignored for crypto), filters: [{ field, min, max } or { field, values }], sort: { field, dir: asc | desc }, offset, size (up to 250) }. Amounts in US dollars. Unknown markets and fields are dropped; no markets means us.

Answers

200One group per sector (or funds)
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • groupsarray of object
      • keystring A sector key
      • rowsarray of object
GET

/v1/universe/quotes

Listings of the universe by symbol

Any line, side listings included, as the screen answers it. Prices are at most 15 minutes old while the market trades. Internal keys only; other keys receive 404 not_licensed.

Parameters

NameInTypeMeaning
symbols requiredquerystringUp to 500 Yahoo-style symbols

Answers

200The rows found, by symbol, and the symbols not in the universe
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
  • unknownarray of string
GET

/v1/universe/fields

The fields a screen can filter and sort on, per kind

Internal keys only; other keys receive 404 not_licensed.

Answers

200Field ids for stocks and for ETFs
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • stockarray of string
    • etfarray of string
    • cryptoarray of string
GET

/v1/universe/breadth

The NYSE's daily breadth, from a date on

Per trading day, how many NYSE stocks closed at a 52-week high and at a 52-week low, how many rose and fell, and the volume of those that rose and fell (src/universe/breadth.js), for KrabyFlow's market mood. Internal keys only; other keys receive 404 not_licensed.

Parameters

NameInTypeMeaning
from requiredquerystring (date)

Answers

200One row per trading day, oldest first
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataarray of object
    • datestring (date)
    • stocksinteger
    • newHighsinteger
    • newLowsinteger
    • advancersinteger
    • declinersinteger
    • upVolumenumber
    • downVolumenumber
GET

/v1/universe/status

The last read of each market, the company figures and the in-memory copy

Internal keys only; other keys receive 404 not_licensed.

Answers

200How fresh the universe is
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)

Fields of a 200 answer

  • dataobject
    • marketsarray of object
    • figuresobject
    • snapshotobject
GET

/v1/market/quotes

Latest prices of listings, as KrabyFlow's provider contract gives them

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
symbols requiredquerystringUp to 500 market symbols (AAPL, IWDA.AS, BTC-EUR), comma-separated
currenciesquerystringJSON object symbol → the currency the listing trades in; a quote in another currency is refused

Answers

200Object keyed by symbol: { price, currency, exchange, asOf, source }. The universe first, then Marketstack, then Yahoo; symbols nobody prices are absent.
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/fundamentals

Valuation, growth, dividends and analyst figures of one listing

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
symbol requiredquerystringOne market symbol (AAPL, IWDA.AS, BTC-EUR)

Answers

200The fields of getFundamentals in the listing's currency, or null
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/lookup

What a symbol is priced as

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
symbol requiredquerystringOne market symbol (AAPL, IWDA.AS, BTC-EUR)

Answers

200{ symbol, name, currency, exchange, assetType, price } or null
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/funds

Funds matching a name or an ISIN

KrabyFlow's market data provider (src/market/api.js): Yahoo's lookup of mutual funds, each named by its quote. A bank's name alone lists its funds ("argenta"); more words narrow them. Yahoo's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
q requiredquerystring1 to 100 characters

Answers

200Up to 100 { symbol, name, exchange, quoteType, assetType, currency, price }
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/history

Daily closes adjusted for splits only, cash dividends and splits

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
symbol requiredquerystringOne market symbol (AAPL, IWDA.AS, BTC-EUR)
fromquerystringYYYY-MM-DD; everything when left out

Answers

200{ closes: [{ date, close }], dividends: [{ date, amount }], splits: [{ date, ratio }] }, or null when the source failed
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/intraday

Prices through the last trading days

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
symbol requiredquerystringOne market symbol (AAPL, IWDA.AS, BTC-EUR)
daysquerystring1 to 35 (5-minute points for one day, 30-minute up to 7, hourly beyond)

Answers

200{ timeZone, points: [{ at, day, close }] } or null
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/earnings/history

Reported diluted EPS, trailing twelve months and fiscal years

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
symbol requiredquerystringOne market symbol (AAPL, IWDA.AS, BTC-EUR)

Answers

200{ currency, ttm, annual } or null
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/earnings/results

The last reported quarters against estimates, and the next estimate

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
symbol requiredquerystringOne market symbol (AAPL, IWDA.AS, BTC-EUR)

Answers

200{ currency, quarters, next } or null
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/capital

Share counts, cash, cash flow, share sales and stock pay per period

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
symbol requiredquerystringOne market symbol (AAPL, IWDA.AS, BTC-EUR)

Answers

200{ currency, industry, quarterly, annual, splits } or null
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/profile

Everything known about one security, for its page

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
symbol requiredquerystringOne market symbol (AAPL, IWDA.AS, BTC-EUR)

Answers

200The profile in KrabyFlow's field ids, or null
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/fund

A fund's largest holdings, sector weights and asset mix from the market source

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
symbol requiredquerystringOne market symbol (AAPL, IWDA.AS, BTC-EUR)

Answers

200{ holdings, sectors, mix } or null (a fund's full holdings by ISIN are /v1/etfs/{id}/holdings)
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/identity

The ISIN behind a listing from the paid source (one request of its allowance)

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
symbol requiredquerystringOne market symbol (AAPL, IWDA.AS, BTC-EUR)

Answers

200{ symbol, isin, name, source } or null
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/website

A company's website host

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
symbol requiredquerystringOne market symbol (AAPL, IWDA.AS, BTC-EUR)

Answers

200A host such as apple.com, or null
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/fx

US dollars per unit of each currency

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
currencies requiredquerystringUp to 200 three-letter codes, comma-separated

Answers

200Object keyed by currency; the ECB's reference rates first, the market source for the rest
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/fear-greed

The crypto fear and greed index (alternative.me, credit the source next to it)

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Parameters

NameInTypeMeaning
limitquerystringDays, newest first; 0 for the whole history

Answers

200alternative.me's answer as it sends it
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data
GET

/v1/market/status

Where each kind of market data comes from, and Marketstack's month

KrabyFlow's market data provider (src/market/api.js). Yahoo's and Marketstack's data, which may not be passed on: internal keys only; other keys receive 404 not_licensed. A source that fails answers 502 upstream_error.

Answers

200The routing, what is paused, Marketstack's count and the ECB rates' date
400A malformed parameter (bad_date, bad_isin, bad_sort, bad_request)
401No key (missing_key) or an unknown one (invalid_key)
403A revoked key (revoked_key)
404No such fund or security (not_found), or a dataset an external key may not see (not_licensed)
429Over the daily quota (quota_exceeded, until midnight UTC) or the per-minute rate (rate_limited)
502upstream_error: the market source failed; message says how

Fields of a 200 answer

  • data