← APIs / EODHD Financial APIs
Verified

EODHD Financial APIs

Apiosk Basicsby Apiosk Basics · General

Global market prices, fundamentals, corporate events, options, fixed income, news, sentiment and macro data.

financeapi
Price per request
$0.05
About

EODHD by Unicorn Data Services provides 60 documented financial-data operations. Browse the available market, fundamentals, corporate events, options, fixed income, news, sentiment and macro endpoints. Calls remain unavailable until Apiosk has the required commercial rights, credentials and validated execution contracts.

Base URL
https://gateway.apiosk.com/eodhd
Technical Specs
Auth MethodapiKey
Response FormatJSON
Endpoints60
Endpoints
MethodPathDescriptionCost
GET /api/bond-fundamentals/{identifier} Return reference and fundamental data for a US corporate bond identified by ISIN or CUSIP.
$0.05 default
View details
GET /api/bulk-fundamentals/{EXCHANGE_CODE} Reduced fundamentals for a whole exchange, a paginated slice of it, or a chosen list of symbols.
$0.13 default
View details
GET /api/calendar/dividends Dividend dates for one symbol or for a single calendar day, paginated and deliberately thin.
$0.02 default
View details
GET /api/calendar/earnings Reported and upcoming earnings dates with actual EPS, consensus estimate and the surprise.
$0.03 default
View details
GET /api/calendar/ipos IPO calendar covering filings, expected listings, amendments and priced deals.
$0.03 default
View details
GET /api/calendar/splits Split and reverse-split calendar by effective date, expressed as an old-to-new share ratio.
$0.03 default
View details
GET /api/calendar/trends Consensus EPS and revenue estimates per fiscal period, with the revision history behind them.
$0.05 default
View details
GET /api/div/{symbol} Full history of dividend payments for one instrument with ex-date, key dates and per share amounts.
$0.02 default
View details
GET /api/economic-events Return the macroeconomic events calendar with actual, previous and estimated values.
$0.02 default
View details
GET /api/eod-bulk-last-day/{exchange} One day of end-of-day prices, splits or dividends for every ticker on an exchange in a single request.
$0.13 default
View details
GET /api/eod/{symbol} Daily, weekly or monthly open, high, low, close, adjusted close and volume for one instrument.
$0.02 default
View details
GET /api/exchange-details/{exchange} Trading hours, working days, holiday calendar and ticker counts for one exchange.
$0.05 default
View details
GET /api/exchange-symbol-list/{exchange} All tradable tickers on one exchange with name, type, currency and ISIN.
$0.02 default
View details
GET /api/exchanges-list/ List of all exchanges supported by EODHD with codes, MICs, country and currency.
$0.01 default
View details
GET /api/fundamentals/{symbol} Unversioned legacy path of the Fundamental Data API, kept for backward compatibility.
$0.05 default
View details
GET /api/historical-market-cap/{symbol} Time series of historical market capitalisation in US dollars for one instrument.
$0.05 default
View details
GET /api/insider-transactions Obsolete flat-schema insider transactions feed, optionally filtered by ticker and date.
$0.02 default
View details
GET /api/intraday/{symbol} Historical intraday OHLCV bars at 1 minute, 5 minute or 1 hour resolution for one instrument.
$0.05 default
View details
GET /api/logo-svg/{symbol} Return the company logo for a US or Toronto ticker as a scalable SVG image.
$0.02 default
View details
GET /api/logo/{symbol} Return the company logo for a ticker as a 200x200 transparent PNG image.
$0.02 default
View details
GET /api/macro-indicator/{country} Return an annual World Bank macroeconomic indicator time series for one country or aggregate.
$0.01 default
View details
GET /api/mp/investverte/companies List the companies covered by the InvestVerte ESG dataset.
$0.01 default
View details
GET /api/mp/investverte/countries List the countries covered by the InvestVerte ESG dataset.
$0.01 default
View details
GET /api/mp/investverte/country/{symbol} Return aggregated ESG scores for one country, by year and reporting frequency.
$0.03 default
View details
GET /api/mp/investverte/esg/{symbol} AI-derived environmental, social, governance and total ESG scores for one company, by year and reporting frequency.
$0.03 default
View details
GET /api/mp/investverte/sector/{symbol} Return an ESG score time series for one sector and its parent industries.
$0.03 default
View details
GET /api/mp/investverte/sectors List the sectors covered by the InvestVerte ESG dataset.
$0.01 default
View details
GET /api/mp/praams/analyse/bond/{isin} Return PRAAMS risk and return analytics for one bond, looked up by ISIN.
$0.05 default
View details
GET /api/mp/praams/analyse/equity/isin/{isin} Return PRAAMS risk and return analytics for one equity, looked up by ISIN.
$0.05 default
View details
GET /api/mp/praams/analyse/equity/ticker/{ticker} Return PRAAMS risk and return analytics for one equity, looked up by ticker.
$0.05 default
View details
GET /api/mp/praams/bank/balance_sheet/isin/{isin} Return standardised bank balance sheet data for one bank, looked up by isin.
$0.05 default
View details
GET /api/mp/praams/bank/balance_sheet/ticker/{ticker} Return standardised bank balance sheet data for one bank, looked up by ticker.
$0.05 default
View details
GET /api/mp/praams/bank/income_statement/isin/{isin} Return standardised bank income statement data for one bank, looked up by isin.
$0.05 default
View details
GET /api/mp/praams/bank/income_statement/ticker/{ticker} Return standardised bank income statement data for one bank, looked up by ticker.
$0.05 default
View details
POST /api/mp/praams/explore/bond Screen bonds by region, country, sector and risk and return score ranges.
$0.05 default
View details
POST /api/mp/praams/explore/equity Screen equities by region, country, sector and risk and return score ranges.
$0.05 default
View details
GET /api/mp/praams/reports/bond/{isin} Generate and download a multi page PDF bond research report.
$0.03 default
View details
GET /api/mp/praams/reports/equity/isin/{isin} Generate and download a multi page PDF equity research report.
$0.03 default
View details
GET /api/mp/praams/reports/equity/ticker/{ticker} Generate and download a multi page PDF equity research report.
$0.03 default
View details
GET /api/mp/tradinghours/markets List all trading venues available to your tier with their FinID and MIC.
$0.03 default
View details
GET /api/mp/tradinghours/markets/details Return static details for one or more markets identified by FinID.
$0.03 default
View details
GET /api/mp/tradinghours/markets/lookup Search markets by exchange name, market name, security description, MIC or country.
$0.02 default
View details
GET /api/mp/tradinghours/markets/status Return the real time open or closed status of one or more markets with the next bell time.
$0.05 default
View details
GET /api/mp/unicornbay/options/contracts List US stock option contracts with quotes, Greeks and open interest, filtered by underlying, expiration, strike and type.
$0.05 default
View details
GET /api/mp/unicornbay/options/eod Return the end-of-day history of quotes, volume, open interest and Greeks for US stock option contracts.
$0.05 default
View details
GET /api/mp/unicornbay/options/underlying-symbols List every US stock ticker for which option contracts are available in the options dataset.
$0.03 default
View details
GET /api/mp/unicornbay/spglobal/comp/{symbol} Return current and historical constituents of one S&P or Dow Jones index.
$0.05 default
View details
GET /api/mp/unicornbay/spglobal/list List 100+ S&P and Dow Jones indices with end of day value, market cap and divisor.
$0.03 default
View details
GET /api/mp/unicornbay/tickdata/ticks Return tick by tick trade data for a US stock ticker over a Unix timestamp range.
$0.05 default
View details
GET /api/news Return financial news articles for a ticker or topic tag, each with in house sentiment scores.
$0.03 default
View details
GET /api/news-word-weights Return the most relevant words in news about a ticker over a date range, each with a weight.
$0.05 default
View details
GET /api/real-time/{symbol} Latest delayed quote with session open, high, low, close, volume and change for one or more tickers.
$0.02 default
View details
GET /api/screener Screen the whole covered global stock universe by fundamentals, performance and volume, and return the matching tickers.
$0.03 default
View details
GET /api/search/{query} Full text lookup of tickers, company names and ISINs returning matching instruments.
$0.02 default
View details
GET /api/sec-filings/{symbol}/form4 SEC Form 4 insider filings for one US issuer, with non-derivative and derivative rows and footnotes.
$0.05 default
View details
GET /api/sentiments Return daily aggregated news sentiment scores per ticker, normalized from -1 to 1.
$0.03 default
View details
GET /api/splits/{symbol} Full history of stock splits for one instrument with the split ratio.
$0.02 default
View details
GET /api/technical/{symbol} Compute a technical indicator time series for any supported symbol, selected with the function parameter.
$0.02 default
View details
GET /api/v1.1/fundamentals/{symbol} Full fundamentals object for a common stock or equity ticker.
$0.05 default
View details
GET /api/v2/bulk-fundamentals/{EXCHANGE_CODE} Full-exchange fundamentals snapshot returned in a single call, served from an hourly cache.
$6.25 default
View details
Endpoint documentation
GET/api/bond-fundamentals/{identifier}
$0.05 default
Description

Return reference and fundamental data for a US corporate bond identified by ISIN or CUSIP.

Documentation

GET /api/bond-fundamentals/{identifier} — Return reference and fundamental data for a US corporate bond identified by ISIN or CUSIP.

Returns a single JSON object describing one bond: identifiers such as ISIN, WKN and FIGI, coupon, maturity date, yield to maturity, callability and next call date, settlement conventions, a classification block and an issuance block naming the issuer. Use it to enrich a bond position, to build a bond master file, or to compute cash flow schedules from the coupon and coupon payment frequency. Only US corporate bonds under the BOND virtual exchange currently have fundamentals, and only ISIN and CUSIP identifiers are accepted.

EODHD call weight: 10; required plans: all_in_one.

The documentation page lists the output field names but shows no complete example JSON response and gives no per field types or descriptions, so the types and descriptions in response_schema are inferred from the field names and are not quoted from the docs. No other fields are documented; anything not listed here was not shown by the docs. The documented example identifier is the CUSIP 910047AG4; the matching ISIN form is US910047AG49. Each BOND fundamentals request consumes 10 API calls and the data is available with the All-In-One subscription only. Data is updated daily and covers only US corporate bonds; EODHD states new bonds can be added on request within 24 hours.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Output format. The documentation states that bond fundamentals are returned in JSON only, so use fmt=json.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "identifier": {
      "description": "The bond identifier, either an ISIN or a CUSIP code. Other identifier types are not supported.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "identifier"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.bond_fundamentals",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "A single bond fundamentals object.",
  "properties": {
    "Callable": {
      "description": "Whether the bond is callable.",
      "type": "integer"
    },
    "ClassificationData": {
      "description": "Instrument classification of the bond.",
      "properties": {
        "BondType": {
          "description": "Type of the bond.",
          "type": "string"
        },
        "DebtType": {
          "description": "Type of the debt instrument.",
          "type": "string"
        },
        "IndustryGroup": {
          "description": "Industry group of the issuer.",
          "type": "string"
        },
        "IndustrySubGroup": {
          "description": "Industry sub group of the issuer.",
          "type": "string"
        },
        "SubProductAsset": {
          "description": "Sub product asset classification.",
          "type": "string"
        },
        "SubProductAssetType": {
          "description": "Sub product asset type classification.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Coupon": {
      "description": "Coupon rate of the bond.",
      "type": "number"
    },
    "Currency": {
      "description": "Currency the bond is denominated in.",
      "type": "string"
    },
    "FIGI": {
      "description": "Financial Instrument Global Identifier of the bond.",
      "type": "string"
    },
    "ISIN": {
      "description": "International Securities Identification Number of the bond.",
      "type": "string"
    },
    "IssueData": {
      "description": "Issuance details of the bond.",
      "properties": {
        "CouponPaymentFrequency": {
          "description": "Frequency of coupon payments.",
          "type": "string"
        },
        "FirstCouponDate": {
          "description": "Date of the first coupon payment.",
          "format": "date",
          "type": "string"
        },
        "FirstTradingDay": {
          "description": "First day the bond traded.",
          "format": "date",
          "type": "string"
        },
        "IssueDate": {
          "description": "Date the bond was issued.",
          "format": "date",
          "type": "string"
        },
        "Issuer": {
          "description": "Name of the issuer.",
          "type": "string"
        },
        "IssuerCountry": {
          "description": "Country of the issuer.",
          "type": "string"
        },
        "IssuerDescription": {
          "description": "Description of the issuer.",
          "type": "string"
        },
        "IssuerURL": {
          "description": "Website of the issuer.",
          "type": "string"
        },
        "OfferingDate": {
          "description": "Date the bond was offered.",
          "format": "date",
          "type": "string"
        }
      },
      "type": "object"
    },
    "LastTradeDate": {
      "description": "Date of the last recorded trade.",
      "format": "date",
      "type": "string"
    },
    "Maturity_Date": {
      "description": "Maturity date of the bond.",
      "format": "date",
      "type": "string"
    },
    "MinimumSettlementAmount": {
      "description": "Minimum settlement amount for a transaction in the bond.",
      "type": "number"
    },
    "Name": {
      "description": "Name of the bond issue.",
      "type": "string"
    },
    "NextCallDate": {
      "description": "Next date on which the bond can be called.",
      "format": "date",
      "type": "string"
    },
    "ParIntegralMultiple": {
      "description": "Integral multiple of par in which the bond can be traded.",
      "type": "number"
    },
    "UpdateDate": {
      "description": "Date the record was last updated.",
      "format": "date",
      "type": "string"
    },
    "WKN": {
      "description": "German Wertpapierkennnummer securities identifier.",
      "type": "string"
    },
    "YieldToMaturity": {
      "description": "Yield to maturity of the bond.",
      "type": "number"
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "identifier": "910047AG4"
}
GET/api/bulk-fundamentals/{EXCHANGE_CODE}
$0.13 default
Description

Reduced fundamentals for a whole exchange, a paginated slice of it, or a chosen list of symbols.

Documentation

GET /api/bulk-fundamentals/{EXCHANGE_CODE} — Reduced fundamentals for a whole exchange, a paginated slice of it, or a chosen list of symbols.

Returns a JSON array with one reduced fundamentals record per company, reading live data. Use offset and limit to page through an exchange up to 500 symbols at a time, or pass symbols to fetch a specific list, in which case the exchange code in the path is ignored. Each record carries fewer fields than a single-ticker call and history is capped at the last 4 quarters and last 4 years. Common stocks only; ETFs and mutual funds are not supported.

EODHD call weight: 100; required plans: extended_fundamentals.

Access requires the Extended Fundamentals subscription, which is quoted on request; the All-In-One package on its own does not include it, so this is not covered by the plans that unlock the single-ticker endpoint. Cost is 100 API calls per request without symbols and 100 plus the number of symbols with them, so 3 symbols cost 103 calls. The same feed is also reachable at /api/v1.1/bulk-fundamentals/{EXCHANGE_CODE}. The documentation shows the block names and their contents in prose but does not enumerate every field of every block, so the second level is modelled as free-form objects. Version 1.0 is the silent default and omits Earnings Trends, so always send version=1.2.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.13 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "EXCHANGE_CODE": {
      "description": "Exchange code, for example US, NYSE, NASDAQ, AMEX, BATS, or any non-US code such as LSE, XETRA or TO.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "fmt": {
      "default": "csv",
      "description": "Output format. Set to json for JSON; the default is CSV. JSON is strongly recommended, and version 1.2 is JSON only.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "limit": {
      "default": 500,
      "description": "Number of symbols to return. The maximum is 500 per request.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "offset": {
      "default": 0,
      "description": "Starting position for pagination, the number of symbols to skip.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "symbols": {
      "description": "Comma-separated list of tickers to fetch. When set, the exchange code in the path is ignored.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "version": {
      "default": "1.0",
      "description": "Output template. Use 1.2 for the full current Fundamentals template including Earnings Trends. When omitted the API falls back to 1.0, a leaner legacy format that omits some blocks.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "EXCHANGE_CODE"
  ],
  "type": "object",
  "x-apiosk-call-weight": 100,
  "x-apiosk-capability-id": "eodhd.bulk_fundamentals",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "extended_fundamentals"
  ],
  "x-apiosk-provider-cost-eur": 0.005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.125
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "One object per company, in the order the exchange or the symbols list produced them.",
  "items": {
    "additionalProperties": true,
    "description": "Reduced fundamentals record for one company. Mirrors the single-ticker Fundamentals API with fewer fields.",
    "properties": {
      "AnalystRatings": {
        "additionalProperties": true,
        "description": "Consensus rating, target price and the counts of strong buy, buy, hold, sell and strong sell ratings.",
        "type": "object"
      },
      "Earnings": {
        "additionalProperties": true,
        "description": "Earnings trend plus the last four reported quarters under the keys Last_0 to Last_3.",
        "type": "object"
      },
      "Financials": {
        "additionalProperties": true,
        "description": "Balance_Sheet, Cash_Flow and Income_Statement, limited to the last 4 quarters and last 4 years.",
        "type": "object"
      },
      "General": {
        "additionalProperties": true,
        "description": "Identification and classification: Code, Name, Exchange, currency, country, ISIN, CUSIP, CIK, sector and industry, GIC classification, IPO date, delisting flag and description.",
        "type": "object"
      },
      "Highlights": {
        "additionalProperties": true,
        "description": "Headline metrics: market capitalization, EBITDA, PE and PEG ratios, book value, dividend share and yield, EPS and EPS estimates, margins and returns.",
        "type": "object"
      },
      "SharesStats": {
        "additionalProperties": true,
        "description": "Share statistics: shares outstanding and float, insider and institutional ownership, short interest.",
        "type": "object"
      },
      "SplitsDividends": {
        "additionalProperties": true,
        "description": "Forward dividend rate and yield, payout ratio, dividend and ex-dividend dates, last split factor and date.",
        "type": "object"
      },
      "Technicals": {
        "additionalProperties": true,
        "description": "Technical figures: beta, 52-week high and low, 50- and 200-day moving averages, short-interest figures.",
        "type": "object"
      },
      "Valuation": {
        "additionalProperties": true,
        "description": "Valuation multiples: trailing and forward PE, price-to-sales, price-to-book, enterprise value and its ratios.",
        "type": "object"
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "EXCHANGE_CODE": "NASDAQ",
  "fmt": "json",
  "limit": 200,
  "offset": 1000,
  "symbols": "AAPL.US,MSFT.US",
  "version": "1.2"
}
Example response
"[\n {\n  \"General\": {\n   \"Code\": \"AAPL\",\n   \"Type\": \"Common Stock\",\n   \"Name\": \"Apple Inc.\",\n   \"Exchange\": \"NASDAQ\",\n   \"ISIN\": \"US0378331005\",\n   \"Sector\": \"Technology\"\n  },\n  \"Highlights\": {\n   \"MarketCapitalization\": 3200000000000,\n   \"PERatio\": 32.1,\n   \"DividendYield\": 0.0045,\n   \"EarningsShare\": 6.61\n  },\n  \"Valuation\": {\n   \"TrailingPE\": 32.1,\n   \"ForwardPE\": 28.4,\n   \"PriceSalesTTM\": 8.2,\n   \"PriceBookMRQ\": 51.3\n  },\n  \"SharesStats\": {\n   \"SharesOutstanding\": 14900000000,\n   \"SharesFloat\": 14880000000\n  },\n  \"Technicals\": {\n   \"Beta\": 1.24,\n   \"52WeekHigh\": 260.1,\n   \"52WeekLow\": 164.1,\n   \"50DayMA\": 228.4\n  },\n  \"SplitsDividends\": {\n   \"ForwardAnnualDividendRate\": 1.04,\n   \"PayoutRatio\": 0.15,\n   \"ExDividendDate\": \"2026-05-12\"\n  },\n  \"AnalystRatings\": {\n   \"Rating\": 4.2,\n   \"TargetPrice\": 275.0,\n   \"Buy\": 21,\n   \"Hold\": 8\n  }\n }\n]"
GET/api/calendar/dividends
$0.02 default
Description

Dividend dates for one symbol or for a single calendar day, paginated and deliberately thin.

Documentation

GET /api/calendar/dividends — Dividend dates for one symbol or for a single calendar day, paginated and deliberately thin.

Answers when a dividend falls rather than how much it is: each record is a date and a symbol, nothing else. It is built differently from its four siblings, with filters nested under filter and paging under page. History is deep and forward dates are covered too: Apple returns 92 dividend dates starting on 1987-05-11, and 347 symbols already carried a date on 2026-09-15. For amounts, currencies, declaration and payment dates use the Corporate Actions splits and dividends API instead.

EODHD call weight: 1; required plans: all_in_one, fundamentals_data_feed, corporate_events_calendar_and_news_feed.

The odd one out of the five calendar endpoints: bracketed filter and page parameters, always JSON, paginated, and newest dates first rather than oldest. Either filter[symbol] or filter[date_eq] is mandatory or you get HTTP 422. A ticker that does not exist is not an error here: you get HTTP 200 with total 0, whereas the other four endpoints answer an unknown symbol with a 404 whose body mentions a missing type. The payload carries only a date and a symbol, no amount or currency.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.02 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "filter[date_eq]": {
      "description": "One exact dividend date, YYYY-MM-DD, returning every symbol going ex-dividend that day. Required when filter[symbol] is absent.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[date_from]": {
      "description": "Lower bound, inclusive. Only meaningful alongside filter[symbol].",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[date_to]": {
      "description": "Upper bound, inclusive. Only meaningful alongside filter[symbol].",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[symbol]": {
      "description": "A single ticker in EODHD format. Either this or filter[date_eq] must be present, otherwise the request returns HTTP 422.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Ignored on this endpoint: it always answers in JSON, including when you ask for CSV.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "page[limit]": {
      "default": 1000,
      "description": "Records per page. Must be at least 1; values above the default are accepted rather than clamped, so 1001 comes back as 1001.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "page[offset]": {
      "default": 0,
      "description": "How many records to skip. Follow links.next instead of computing it yourself.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 1,
  "x-apiosk-capability-id": "eodhd.calendar_dividends",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "fundamentals_data_feed",
    "corporate_events_calendar_and_news_feed"
  ],
  "x-apiosk-provider-cost-eur": 0.00005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.02
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": true,
  "description": "Paginated envelope around the dividend date list.",
  "properties": {
    "data": {
      "description": "One record per dividend date, newest first.",
      "items": {
        "additionalProperties": true,
        "description": "A single dividend date record.",
        "properties": {
          "date": {
            "description": "Dividend date.",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "symbol": {
            "description": "Ticker in EODHD format.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "links": {
      "additionalProperties": true,
      "description": "Navigation links.",
      "properties": {
        "next": {
          "description": "Ready-made URL for the next page, null on the last one.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "meta": {
      "additionalProperties": true,
      "description": "Paging and echoed filters. Only the filters you actually sent appear as keys.",
      "properties": {
        "date_from": {
          "description": "The filter[date_from] you passed, echoed back.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "date_to": {
          "description": "The filter[date_to] you passed, echoed back.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "limit": {
          "description": "The page size you asked for, echoed back.",
          "type": [
            "integer",
            "null"
          ]
        },
        "offset": {
          "description": "The offset you asked for, echoed back.",
          "type": [
            "integer",
            "null"
          ]
        },
        "symbol": {
          "description": "The filter[symbol] you passed, echoed back.",
          "type": [
            "string",
            "null"
          ]
        },
        "total": {
          "description": "Matching records across all pages, not just this one.",
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "type": "object"
    }
  },
  "type": "object"
}
Example request
{
  "filter[date_eq]": "2026-09-15",
  "filter[date_from]": "2025-01-01",
  "filter[date_to]": "2025-12-31",
  "filter[symbol]": "AAPL.US",
  "fmt": "json",
  "page[limit]": 500,
  "page[offset]": 1000
}
Example response
"{\n \"meta\": {\n  \"total\": 4,\n  \"offset\": 0,\n  \"limit\": 1000,\n  \"symbol\": \"AAPL.US\",\n  \"date_from\": \"2025-01-01\",\n  \"date_to\": \"2025-12-31\"\n },\n \"data\": [\n  {\n   \"date\": \"2025-11-10\",\n   \"symbol\": \"AAPL.US\"\n  },\n  {\n   \"date\": \"2025-08-11\",\n   \"symbol\": \"AAPL.US\"\n  },\n  {\n   \"date\": \"2025-05-12\",\n   \"symbol\": \"AAPL.US\"\n  },\n  {\n   \"date\": \"2025-02-10\",\n   \"symbol\": \"AAPL.US\"\n  }\n ],\n \"links\": {\n  \"next\": null\n }\n}"
GET/api/calendar/earnings
$0.03 default
Description

Reported and upcoming earnings dates with actual EPS, consensus estimate and the surprise.

Documentation

GET /api/calendar/earnings — Reported and upcoming earnings dates with actual EPS, consensus estimate and the surprise.

Returns one record per company and fiscal period inside a date window matched on the report date, with the actual EPS, the consensus estimate and the surprise already computed. History goes back to the 1990s and the forward book already held 26,414 scheduled reports between today and the end of 2027 when the documentation was written. Pass symbols to narrow the window to specific tickers. Nothing is paginated and this is the largest of the five calendar datasets, so keep windows short.

EODHD call weight: 1; required plans: all_in_one, fundamentals_data_feed, corporate_events_calendar_and_news_feed.

difference is 0 and not null when the estimate is missing, so test estimate rather than difference before trusting a surprise of zero: in one default seven-day window all 1,636 records without an estimate carried difference 0 and percent null. More than ten years between from and to returns HTTP 422 with 'Maximum date range is 10 years', but the practical ceiling is far lower: one year is about 120,000 records and 21 MB, a six-year window came back as 158 MB after 45 seconds, and beyond roughly five years the request often fails with HTTP 500 and a bare 'Error occurred'. A window whose end precedes its start returns HTTP 200 with an empty list, while an unknown symbol returns HTTP 404 with a misleading body about a missing type. Default fmt is csv, not json, and the CSV column names differ from the JSON keys.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "csv",
      "description": "Response format. Omitting the parameter returns CSV, whose column names differ from the JSON field names: Code, Report_Date, BeforeAfterMarket.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "default": "today",
      "description": "Start of the window, YYYY-MM-DD, matched against the report date. An unparseable value returns HTTP 422.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbols": {
      "description": "One or more tickers in EODHD format, comma-separated, for example AAPL.US,MSFT.US,AI.PA. This filters the date window, it does not replace it, so combine it with from and to.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "to": {
      "default": "from + 7 days",
      "description": "End of the window, YYYY-MM-DD. Pass from alone and to becomes from plus 7 days; pass to alone and from becomes today.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 1,
  "x-apiosk-capability-id": "eodhd.calendar_earnings",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "fundamentals_data_feed",
    "corporate_events_calendar_and_news_feed"
  ],
  "x-apiosk-provider-cost-eur": 0.00005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": true,
  "description": "Envelope around the earnings list.",
  "properties": {
    "description": {
      "description": "Human-readable description of the feed.",
      "type": [
        "string",
        "null"
      ]
    },
    "earnings": {
      "description": "One record per company and fiscal period.",
      "items": {
        "additionalProperties": true,
        "description": "A single earnings record.",
        "properties": {
          "actual": {
            "description": "Reported EPS. Null for a report that has not happened yet.",
            "type": [
              "number",
              "null"
            ]
          },
          "before_after_market": {
            "description": "BeforeMarket or AfterMarket, null when the timing is unknown.",
            "type": [
              "string",
              "null"
            ]
          },
          "code": {
            "description": "Ticker in EODHD format.",
            "type": [
              "string",
              "null"
            ]
          },
          "currency": {
            "description": "Reporting currency of the EPS figures.",
            "type": [
              "string",
              "null"
            ]
          },
          "date": {
            "description": "End of the fiscal period the figures belong to.",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "difference": {
            "description": "Actual minus estimate, but 0 rather than null whenever the estimate is missing.",
            "type": [
              "number",
              "null"
            ]
          },
          "estimate": {
            "description": "Consensus EPS estimate, where analysts cover the name.",
            "type": [
              "number",
              "null"
            ]
          },
          "percent": {
            "description": "Surprise in percent against the estimate.",
            "type": [
              "number",
              "null"
            ]
          },
          "report_date": {
            "description": "Day the results are announced. This is the date the window filters on.",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "from": {
      "description": "Start of the window, echoed back. Absent when symbols was passed.",
      "format": "date",
      "type": [
        "string",
        "null"
      ]
    },
    "symbols": {
      "description": "The symbols you asked for, echoed back instead of from and to when symbols was passed.",
      "type": [
        "string",
        "null"
      ]
    },
    "to": {
      "description": "End of the window, echoed back. Absent when symbols was passed.",
      "format": "date",
      "type": [
        "string",
        "null"
      ]
    },
    "type": {
      "description": "Constant label of the feed, Earnings.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "from": "2025-01-01",
  "symbols": "AAPL.US",
  "to": "2025-12-31"
}
Example response
"{\n \"type\": \"Earnings\",\n \"description\": \"Historical and upcoming Earnings\",\n \"symbols\": \"AAPL.US\",\n \"earnings\": [\n  {\n   \"code\": \"AAPL.US\",\n   \"report_date\": \"2025-01-30\",\n   \"date\": \"2024-12-31\",\n   \"before_after_market\": \"AfterMarket\",\n   \"currency\": \"USD\",\n   \"actual\": 2.4,\n   \"estimate\": 2.34,\n   \"difference\": 0.06,\n   \"percent\": 2.5641\n  },\n  {\n   \"code\": \"AAPL.US\",\n   \"report_date\": \"2025-05-01\",\n   \"date\": \"2025-03-31\",\n   \"before_after_market\": \"AfterMarket\",\n   \"currency\": \"USD\",\n   \"actual\": 1.65,\n   \"estimate\": 1.62,\n   \"difference\": 0.03,\n   \"percent\": 1.8519\n  }\n ]\n}"
GET/api/calendar/ipos
$0.03 default
Description

IPO calendar covering filings, expected listings, amendments and priced deals.

Documentation

GET /api/calendar/ipos — IPO calendar covering filings, expected listings, amendments and priced deals.

Returns new listings inside a date window matched on the expected or effective first trading date, from initial filing through pricing. The same listing reappears as it moves through the process, so a code can occur several times in one window with different deal_type values. Coverage is continuous from February 2013 plus an isolated batch of 84 deals in early 2010, and forward visibility is short at roughly three weeks. Records are not sorted by date.

EODHD call weight: 1; required plans: all_in_one, fundamentals_data_feed, corporate_events_calendar_and_news_feed.

This endpoint takes no symbols parameter: passing one is accepted and silently ignored, so you get the date window back rather than the company you asked for. Filter by code on your side. Treat 0 in price_from, price_to, offer_price and shares as 'not known yet' rather than as a real value. Re-read windows you have already stored, because filings get amended and both date and price range can change before the first trade: over the first half of 2025, 93 codes turned up more than once. Records are not sorted, so sort on your side.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "csv",
      "description": "Response format. JSON carries every field.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "default": "today",
      "description": "Start of the window, YYYY-MM-DD, matched against the expected or effective first trading date.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "to": {
      "default": "from + 7 days",
      "description": "End of the window, YYYY-MM-DD.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 1,
  "x-apiosk-capability-id": "eodhd.calendar_ipos",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "fundamentals_data_feed",
    "corporate_events_calendar_and_news_feed"
  ],
  "x-apiosk-provider-cost-eur": 0.00005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": true,
  "description": "Envelope around the IPO list.",
  "properties": {
    "description": {
      "description": "Human-readable description of the feed.",
      "type": [
        "string",
        "null"
      ]
    },
    "from": {
      "description": "Start of the window, echoed back.",
      "format": "date",
      "type": [
        "string",
        "null"
      ]
    },
    "ipos": {
      "description": "One record per deal state.",
      "items": {
        "additionalProperties": true,
        "description": "A single IPO record.",
        "properties": {
          "amended_date": {
            "description": "Most recent amended filing.",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "code": {
            "description": "Ticker in EODHD format.",
            "type": [
              "string",
              "null"
            ]
          },
          "currency": {
            "description": "Offering currency. Can also be an empty string.",
            "type": [
              "string",
              "null"
            ]
          },
          "deal_type": {
            "description": "Where the deal stands. Four values appear: Expected, Priced, Amended and Filed.",
            "type": [
              "string",
              "null"
            ]
          },
          "exchange": {
            "description": "Listing venue, as a name rather than an EODHD exchange code.",
            "type": [
              "string",
              "null"
            ]
          },
          "filing_date": {
            "description": "Initial filing date, where the feed carries it.",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "description": "Company name as filed.",
            "type": [
              "string",
              "null"
            ]
          },
          "offer_price": {
            "description": "Final price. 0 until the deal prices.",
            "type": [
              "number",
              "null"
            ]
          },
          "price_from": {
            "description": "Lower bound of the indicated price range. 0, not null, before a range is set.",
            "type": [
              "number",
              "null"
            ]
          },
          "price_to": {
            "description": "Upper bound of the indicated price range. 0, not null, before a range is set.",
            "type": [
              "number",
              "null"
            ]
          },
          "shares": {
            "description": "Shares offered. 0 when unknown.",
            "type": [
              "number",
              "null"
            ]
          },
          "start_date": {
            "description": "Expected or effective first trading date. This is the field the window filters on.",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "to": {
      "description": "End of the window, echoed back.",
      "format": "date",
      "type": [
        "string",
        "null"
      ]
    },
    "type": {
      "description": "Constant label of the feed, IPOs.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "from": "2025-01-01",
  "to": "2025-01-31"
}
Example response
"{\n \"type\": \"IPOs\",\n \"description\": \"Historical and upcoming IPOs\",\n \"from\": \"2025-01-01\",\n \"to\": \"2025-01-31\",\n \"ipos\": [\n  {\n   \"code\": \"MCW.US\",\n   \"name\": \"Mister Car Wash, Inc. Common Stock\",\n   \"exchange\": \"Nasdaq\",\n   \"currency\": \"USD\",\n   \"start_date\": \"2025-01-02\",\n   \"filing_date\": null,\n   \"amended_date\": null,\n   \"price_from\": 15,\n   \"price_to\": 17,\n   \"offer_price\": 15,\n   \"shares\": 0,\n   \"deal_type\": \"Expected\"\n  }\n ]\n}"
GET/api/calendar/splits
$0.03 default
Description

Split and reverse-split calendar by effective date, expressed as an old-to-new share ratio.

Documentation

GET /api/calendar/splits — Split and reverse-split calendar by effective date, expressed as an old-to-new share ratio.

Returns splits and reverse splits inside a date window matched on the effective split date, as a share count before and after. Announced splits run well ahead of today: in August 2026 the calendar already held effective dates into February 2027. History is continuous from February 2013 plus 134 records in the first quarter of 2010. Pass symbols to narrow the window to specific tickers.

EODHD call weight: 1; required plans: all_in_one, fundamentals_data_feed, corporate_events_calendar_and_news_feed.

Read old_shares and new_shares as a ratio in the direction old to new: Tesla in 2020 is 1 to 5, a five-for-one split, while a reverse split arrives the other way round, such as 10 to 1 on the Korean listing 090150.KQ. Reverse splits are common, 36 of 97 events in one August 2026 week, so branch on which number is larger instead of assuming a forward split. Ratios are not always tidy, 1000 to 729 turns up on Taiwanese names, and a record can carry new_shares 0, which will divide by zero if you let it. The ten-year range ceiling and the CSV default apply here too.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "csv",
      "description": "Response format.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "default": "today",
      "description": "Start of the window, YYYY-MM-DD, matched against the effective split date.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbols": {
      "description": "One or more tickers in EODHD format, comma-separated. Narrows the window rather than replacing it, so a symbols-only request returns the next seven days for that ticker, which is normally nothing.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "to": {
      "default": "from + 7 days",
      "description": "End of the window, YYYY-MM-DD.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 1,
  "x-apiosk-capability-id": "eodhd.calendar_splits",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "fundamentals_data_feed",
    "corporate_events_calendar_and_news_feed"
  ],
  "x-apiosk-provider-cost-eur": 0.00005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": true,
  "description": "Envelope around the split list.",
  "properties": {
    "description": {
      "description": "Human-readable description of the feed.",
      "type": [
        "string",
        "null"
      ]
    },
    "from": {
      "description": "Start of the window, echoed back.",
      "format": "date",
      "type": [
        "string",
        "null"
      ]
    },
    "splits": {
      "description": "One record per split event.",
      "items": {
        "additionalProperties": true,
        "description": "A single split record.",
        "properties": {
          "code": {
            "description": "Ticker in EODHD format.",
            "type": [
              "string",
              "null"
            ]
          },
          "new_shares": {
            "description": "Shares held after it.",
            "type": [
              "number",
              "null"
            ]
          },
          "old_shares": {
            "description": "Shares held before the split.",
            "type": [
              "number",
              "null"
            ]
          },
          "optionable": {
            "description": "Y or N, whether options trade on the name.",
            "type": [
              "string",
              "null"
            ]
          },
          "split_date": {
            "description": "Effective date of the split. This is the date the window filters on.",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "symbols": {
      "description": "The symbols you asked for, echoed back when you passed any.",
      "type": [
        "string",
        "null"
      ]
    },
    "to": {
      "description": "End of the window, echoed back.",
      "format": "date",
      "type": [
        "string",
        "null"
      ]
    },
    "type": {
      "description": "Constant label of the feed, Splits.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "from": "2010-01-01",
  "symbols": "TSLA.US",
  "to": "2030-01-01"
}
Example response
"{\n \"type\": \"Splits\",\n \"description\": \"Historical and upcoming splits\",\n \"from\": \"2010-01-01\",\n \"to\": \"2030-01-01\",\n \"symbols\": \"TSLA.US\",\n \"splits\": [\n  {\n   \"code\": \"TSLA.US\",\n   \"split_date\": \"2020-08-31\",\n   \"optionable\": \"N\",\n   \"old_shares\": 1,\n   \"new_shares\": 5\n  },\n  {\n   \"code\": \"TSLA.US\",\n   \"split_date\": \"2022-08-25\",\n   \"optionable\": \"N\",\n   \"old_shares\": 1,\n   \"new_shares\": 3\n  }\n ]\n}"
GET/api/calendar/trends
$0.05 default
Description

Consensus EPS and revenue estimates per fiscal period, with the revision history behind them.

Documentation

GET /api/calendar/trends — Consensus EPS and revenue estimates per fiscal period, with the revision history behind them.

Returns analyst estimates rather than results: EPS and revenue consensus with high, low and analyst count, the same EPS consensus as it stood 7, 30, 60 and 90 days ago, and the count of upward and downward revisions. This is the endpoint for detecting whether the street is walking a number up or down before a report lands. The payload nests one level deeper than the other calendar endpoints: trends is an array of arrays, the n-th inner array holding the records for the n-th ticker in the symbols list. Each inner array is a history rather than a snapshot, about 96 records for a large US name.

EODHD call weight: 1; required plans: all_in_one, fundamentals_data_feed, corporate_events_calendar_and_news_feed.

The brief called this 'earnings trends'; the real path is /api/calendar/trends. symbols is required, unlike every other calendar endpoint. There are no date parameters: passing from and to is accepted and the response is byte-for-byte the same. Every numeric value is a quoted string padded to four decimals, and null appears where a figure is genuinely missing, so a parser must handle both a quoted number and null in the same field. Watch the size: Apple alone is 71 KB of JSON and two large caps 143 KB. Empty inner arrays keep positions aligned with the symbols list.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "csv",
      "description": "Response format. CSV is impractical here because it writes one line per symbol with the whole history on it, an 81 KB row for a single large-cap name.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbols": {
      "description": "One or more tickers in EODHD format, comma-separated. Required here: omitting it returns HTTP 422.",
      "required": true,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "symbols"
  ],
  "type": "object",
  "x-apiosk-call-weight": 1,
  "x-apiosk-capability-id": "eodhd.calendar_earnings_trends",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "fundamentals_data_feed",
    "corporate_events_calendar_and_news_feed"
  ],
  "x-apiosk-provider-cost-eur": 0.00005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": true,
  "description": "Envelope around the trends data.",
  "properties": {
    "description": {
      "description": "Human-readable description of the feed.",
      "type": [
        "string",
        "null"
      ]
    },
    "symbols": {
      "description": "The symbols you asked for, echoed back.",
      "type": [
        "string",
        "null"
      ]
    },
    "trends": {
      "description": "Outer array, one inner array per requested ticker in the order you listed them. A symbol with no analyst coverage keeps its slot as an empty inner array.",
      "items": {
        "description": "History of estimate records for one ticker.",
        "items": {
          "additionalProperties": true,
          "description": "One estimate record for one fiscal period and horizon. Every numeric value arrives as a string padded to four decimals, or null.",
          "properties": {
            "code": {
              "description": "Ticker in EODHD format.",
              "type": [
                "string",
                "null"
              ]
            },
            "date": {
              "description": "Fiscal period end the estimate refers to: quarter end for a quarterly record, year end for an annual one.",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "earningsEstimateAvg": {
              "description": "Consensus EPS.",
              "type": [
                "string",
                "null"
              ]
            },
            "earningsEstimateGrowth": {
              "description": "EPS growth against the comparable prior period, as a ratio.",
              "type": [
                "string",
                "null"
              ]
            },
            "earningsEstimateHigh": {
              "description": "Highest individual EPS estimate.",
              "type": [
                "string",
                "null"
              ]
            },
            "earningsEstimateLow": {
              "description": "Lowest individual EPS estimate.",
              "type": [
                "string",
                "null"
              ]
            },
            "earningsEstimateNumberOfAnalysts": {
              "description": "How many analysts stand behind the EPS consensus.",
              "type": [
                "string",
                "null"
              ]
            },
            "earningsEstimateYearAgoEps": {
              "description": "EPS actually delivered in the comparable prior period.",
              "type": [
                "string",
                "null"
              ]
            },
            "epsRevisionsDownLast30days": {
              "description": "Number of analysts who moved their EPS estimate down in the last 30 days.",
              "type": [
                "string",
                "null"
              ]
            },
            "epsRevisionsUpLast30days": {
              "description": "Number of analysts who moved their EPS estimate up in the last 30 days.",
              "type": [
                "string",
                "null"
              ]
            },
            "epsRevisionsUpLast7days": {
              "description": "Number of analysts who moved their EPS estimate up in the last 7 days.",
              "type": [
                "string",
                "null"
              ]
            },
            "epsTrend30daysAgo": {
              "description": "The same EPS consensus as it stood 30 days ago.",
              "type": [
                "string",
                "null"
              ]
            },
            "epsTrend60daysAgo": {
              "description": "The same EPS consensus as it stood 60 days ago.",
              "type": [
                "string",
                "null"
              ]
            },
            "epsTrend7daysAgo": {
              "description": "The same EPS consensus as it stood 7 days ago.",
              "type": [
                "string",
                "null"
              ]
            },
            "epsTrend90daysAgo": {
              "description": "The same EPS consensus as it stood 90 days ago.",
              "type": [
                "string",
                "null"
              ]
            },
            "epsTrendCurrent": {
              "description": "The EPS consensus as it stands now.",
              "type": [
                "string",
                "null"
              ]
            },
            "growth": {
              "description": "Growth against the comparable prior period, as a ratio rather than a percentage.",
              "type": [
                "string",
                "null"
              ]
            },
            "period": {
              "description": "Which horizon this record was: 0q current quarter, +1q next quarter, 0y current fiscal year, +1y next fiscal year.",
              "type": [
                "string",
                "null"
              ]
            },
            "revenueEstimateAvg": {
              "description": "Consensus revenue in the reporting currency.",
              "type": [
                "string",
                "null"
              ]
            },
            "revenueEstimateGrowth": {
              "description": "Revenue growth against the comparable prior period, as a ratio.",
              "type": [
                "string",
                "null"
              ]
            },
            "revenueEstimateHigh": {
              "description": "Highest individual revenue estimate.",
              "type": [
                "string",
                "null"
              ]
            },
            "revenueEstimateLow": {
              "description": "Lowest individual revenue estimate.",
              "type": [
                "string",
                "null"
              ]
            },
            "revenueEstimateNumberOfAnalysts": {
              "description": "Analyst count behind the revenue consensus.",
              "type": [
                "string",
                "null"
              ]
            },
            "revenueEstimateYearAgoEps": {
              "description": "Revenue in the comparable prior period. Frequently null.",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "type": "array"
    },
    "type": {
      "description": "Constant label of the feed, Trends.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "symbols": "AAPL.US"
}
Example response
"{\n \"type\": \"Trends\",\n \"description\": \"Historical and upcoming earning trends\",\n \"symbols\": \"AAPL.US\",\n \"trends\": [\n  [\n   {\n    \"code\": \"AAPL.US\",\n    \"date\": \"2027-09-30\",\n    \"period\": \"+1y\",\n    \"growth\": \"0.0804\",\n    \"earningsEstimateAvg\": \"9.5347\",\n    \"earningsEstimateLow\": \"8.2400\",\n    \"earningsEstimateHigh\": \"10.6700\",\n    \"earningsEstimateYearAgoEps\": \"8.8027\",\n    \"earningsEstimateNumberOfAnalysts\": \"40.0000\",\n    \"earningsEstimateGrowth\": \"0.0832\",\n    \"revenueEstimateAvg\": \"523204888660.00\",\n    \"revenueEstimateYearAgoEps\": null,\n    \"revenueEstimateNumberOfAnalysts\": \"40.00\",\n    \"epsTrendCurrent\": \"9.5347\",\n    \"epsTrend30daysAgo\": \"9.6928\",\n    \"epsRevisionsUpLast30days\": \"8.0000\",\n    \"epsRevisionsDownLast30days\": \"19.0000\"\n   }\n  ]\n ]\n}"
GET/api/div/{symbol}
$0.02 default
Description

Full history of dividend payments for one instrument with ex-date, key dates and per share amounts.

Documentation

GET /api/div/{symbol} — Full history of dividend payments for one instrument with ex-date, key dates and per share amounts.

Returns every recorded dividend for a single ticker as a chronological array keyed on the ex-dividend date. For major NYSE and NASDAQ tickers the JSON output also carries the declaration, record and payment dates, the payment frequency, the unadjusted amount and the currency. The value field is adjusted for later splits while unadjustedValue is the amount actually paid at the time. The free plan is limited to about one year of history while paid plans cover more than 30 years.

EODHD call weight: 1; required plans: all_in_one, eod, eod_intraday, free.

The path is /api/div/, not /api/dividends/. The documentation page describes the fields in prose but does not print a JSON example; the exact key names above were confirmed against the documented DEMO token for AAPL.US. Only date and value are guaranteed: outside major NYSE and NASDAQ tickers the documentation states the extra date fields, unadjustedValue and currency may be absent, and they are documented as JSON only. Note that value is split adjusted, so do not sum it against historical unadjusted prices. No pagination.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.02 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The documentation states the server-side default is csv, so always send fmt=json for machine parsing.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "description": "Start date of the requested range, inclusive, in YYYY-MM-DD format.",
      "format": "date",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Ticker with exchange suffix in TICKER.EXCHANGE form.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "to": {
      "description": "End date of the requested range, inclusive, in YYYY-MM-DD format.",
      "format": "date",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 1,
  "x-apiosk-capability-id": "eodhd.historical_dividends",
  "x-apiosk-free-plan": true,
  "x-apiosk-plans": [
    "all_in_one",
    "eod",
    "eod_intraday",
    "free"
  ],
  "x-apiosk-provider-cost-eur": 0.00005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.02
}
Response schema
{
  "description": "Chronologically ordered list of dividend events.",
  "items": {
    "properties": {
      "currency": {
        "description": "Currency the dividend is denominated in.",
        "type": "string"
      },
      "date": {
        "description": "Ex-dividend date in YYYY-MM-DD format.",
        "format": "date",
        "type": "string"
      },
      "declarationDate": {
        "description": "Date the dividend was declared. Documented for major US tickers in JSON output only.",
        "format": "date",
        "type": "string"
      },
      "paymentDate": {
        "description": "Date the dividend is paid. Documented for major US tickers in JSON output only.",
        "format": "date",
        "type": "string"
      },
      "period": {
        "description": "Payment frequency such as Quarterly, Semiannual, Annual or Monthly.",
        "type": "string"
      },
      "recordDate": {
        "description": "Record date of the dividend. Documented for major US tickers in JSON output only.",
        "format": "date",
        "type": "string"
      },
      "unadjustedValue": {
        "description": "Dividend per share as actually paid, before split adjustment.",
        "type": "number"
      },
      "value": {
        "description": "Dividend per share adjusted for subsequent splits.",
        "type": "number"
      }
    },
    "required": [
      "date",
      "value"
    ],
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "fmt": "json",
  "from": "2000-01-01",
  "symbol": "AAPL.US",
  "to": "2025-12-31"
}
Example response
"[{\"date\":\"2020-02-07\",\"declarationDate\":\"2020-01-28\",\"recordDate\":\"2020-02-10\",\"paymentDate\":\"2020-02-13\",\"period\":\"Quarterly\",\"value\":0.1925,\"unadjustedValue\":0.77,\"currency\":\"USD\"}]"
GET/api/economic-events
$0.02 default
Description

Return the macroeconomic events calendar with actual, previous and estimated values.

Documentation

GET /api/economic-events — Return the macroeconomic events calendar with actual, previous and estimated values.

Returns a calendar of macroeconomic events and releases such as GDP Growth Rate, Nonfarm Payrolls or House Price Index, with the actual reported value, the previous value, the consensus estimate and the change against the previous value. Filter by date range, country, comparison basis and event type, and page with limit and offset. Good for building an economic calendar, for event driven backtests and for surprise (actual minus estimate) signals.

EODHD call weight: 1; required plans: all_in_one, fundamentals_data_feed.

Call weight is only 1 API call per request, the cheapest endpoint in this group and ten times cheaper than the Macro Indicators API on the same plans. Note that country here is a 2 letter ISO 3166 code (US), while /api/macro-indicator takes a 3 letter code (USA). Both limit and offset are capped at 1000, so a single date range cannot be paged beyond offset 1000; narrow the from and to window instead. The demo token works on this endpoint. The documentation does not state how far back the calendar goes, whether future scheduled events are included, the unit of each value, or the list of valid type values, and there is no importance or impact field.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.02 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "comparison": {
      "description": "Comparison type: mom (month over month), qoq (quarter over quarter) or yoy (year over year).",
      "enum": [
        "mom",
        "qoq",
        "yoy"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "country": {
      "description": "Country code in ISO 3166 format, 2 characters, for example US, GB, JP.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Response format.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "description": "Start date in YYYY-MM-DD format.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "limit": {
      "default": 50,
      "description": "Number of results. Values 0 to 1000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "offset": {
      "default": 0,
      "description": "Pagination offset. Values 0 to 1000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "to": {
      "description": "End date in YYYY-MM-DD format.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "type": {
      "description": "Event type filter, URL encoded, for example type=House%20Price%20Index.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 1,
  "x-apiosk-capability-id": "eodhd.economic_events",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "fundamentals_data_feed"
  ],
  "x-apiosk-provider-cost-eur": 0.00005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.02
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Array of economic event objects.",
  "items": {
    "description": "One economic event or data release.",
    "properties": {
      "actual": {
        "description": "Actual reported value.",
        "type": [
          "number",
          "null"
        ]
      },
      "change": {
        "description": "Change from previous value.",
        "type": [
          "number",
          "null"
        ]
      },
      "change_percentage": {
        "description": "Percentage change from previous value.",
        "type": [
          "number",
          "null"
        ]
      },
      "comparison": {
        "description": "Comparison type: mom, qoq, yoy, or null if not applicable.",
        "enum": [
          "mom",
          "qoq",
          "yoy",
          null
        ],
        "type": [
          "string",
          "null"
        ]
      },
      "country": {
        "description": "Country code in ISO 3166 format, for example US or JP.",
        "type": "string"
      },
      "date": {
        "description": "Date and time of the event in YYYY-MM-DD HH:MM:SS format. Not ISO 8601 and carries no timezone offset.",
        "type": "string"
      },
      "estimate": {
        "description": "Estimated (forecast) value.",
        "type": [
          "number",
          "null"
        ]
      },
      "period": {
        "description": "Period associated with the event, for example Q4, Jan or May, or null if not applicable.",
        "type": [
          "string",
          "null"
        ]
      },
      "previous": {
        "description": "Previous value for the same event.",
        "type": [
          "number",
          "null"
        ]
      },
      "type": {
        "description": "Type of economic event, for example GDP Growth Rate or Nonfarm Payrolls.",
        "type": "string"
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "comparison": "yoy",
  "country": "US",
  "fmt": "json",
  "from": "2025-03-01",
  "limit": 50,
  "offset": 0,
  "to": "2025-03-07",
  "type": "House Price Index"
}
Example response
"[{\"type\": \"Capital Expenditure\", \"comparison\": \"yoy\", \"period\": \"Q4\", \"country\": \"JP\", \"date\": \"2025-03-03 23:50:00\", \"actual\": -0.2, \"previous\": 8.1, \"estimate\": 4.9, \"change\": -8.3, \"change_percentage\": -102.469}, {\"type\": \"Jobs/applications ratio\", \"comparison\": null, \"period\": \"Jan\", \"country\": \"JP\", \"date\": \"2025-03-03 23:30:00\", \"actual\": 1.26, \"previous\": 1.25, \"estimate\": 1.25, \"change\": 0.01, \"change_percentage\": 0.8}]"
GET/api/eod-bulk-last-day/{exchange}
$0.13 default
Description

One day of end-of-day prices, splits or dividends for every ticker on an exchange in a single request.

Documentation

GET /api/eod-bulk-last-day/{exchange} — One day of end-of-day prices, splits or dividends for every ticker on an exchange in a single request.

Returns a whole exchange snapshot for one trading day, which is the efficient way to refresh a large universe instead of looping per ticker. The type parameter selects prices, splits or dividends, and each dataset requires the matching per-ticker entitlement. If the requested date is not a trading day the API returns the prior trading day. Setting filter=extended adds company name, market capitalisation and technical fields, but those technical fields are computed for the last 30 days only and older dates return zeros.

EODHD call weight: 100; required plans: all_in_one, eod, eod_intraday.

The path name says eod-bulk-last-day but the same path serves splits and dividends through type; there is no separate bulk splits or bulk dividends path. A whole exchange request is a flat 100 API calls regardless of how many rows come back, and adding symbols makes it 100 plus 1 per ticker, so never use symbols for a small list when the per-ticker EOD endpoint costs 1. The prev_close, change and change_p fields are documented as JSON only and are absent from CSV output. It returns one day only; there is no date range. The server default fmt is csv.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.13 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "date": {
      "description": "Trading day to return in YYYY-MM-DD format. Defaults to the last trading day; a non-trading date falls back to the prior trading day.",
      "format": "date",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "exchange": {
      "description": "Exchange code such as US, XETRA or WAR. For the United States the venue codes NYSE, NASDAQ, BATS and AMEX are also accepted.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "filter": {
      "description": "Set to extended to add company name, instrument type, market capitalisation, beta and moving average or volume technical fields to the eod dataset.",
      "enum": [
        "extended"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. The documentation states the server-side default is csv, so always send fmt=json for machine parsing.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbols": {
      "description": "Comma separated ticker codes to restrict the response to. Using it changes billing to 100 plus 1 call per ticker.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "type": {
      "default": "eod",
      "description": "Which dataset to return for the day.",
      "enum": [
        "eod",
        "splits",
        "dividends"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "exchange"
  ],
  "type": "object",
  "x-apiosk-call-weight": 100,
  "x-apiosk-capability-id": "eodhd.bulk_eod_last_day",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "eod",
    "eod_intraday"
  ],
  "x-apiosk-provider-cost-eur": 0.005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.125
}
Response schema
{
  "description": "One record per ticker for the requested day. The property set depends on the type parameter.",
  "items": {
    "additionalProperties": true,
    "properties": {
      "Beta": {
        "description": "Beta coefficient. Only when filter=extended.",
        "type": "number"
      },
      "MarketCapitalization": {
        "description": "Market capitalisation. Only when filter=extended.",
        "type": "number"
      },
      "adjusted_close": {
        "description": "Close adjusted for splits and dividends. eod dataset only.",
        "type": "number"
      },
      "avgvol_14d": {
        "description": "14 day average volume. Only when filter=extended and only for the last 30 days.",
        "type": "number"
      },
      "avgvol_200d": {
        "description": "200 day average volume. Only when filter=extended and only for the last 30 days.",
        "type": "number"
      },
      "avgvol_50d": {
        "description": "50 day average volume. Only when filter=extended and only for the last 30 days.",
        "type": "number"
      },
      "change": {
        "description": "Absolute change against the previous close. eod dataset, JSON output only.",
        "type": "number"
      },
      "change_p": {
        "description": "Percentage change against the previous close. eod dataset, JSON output only.",
        "type": "number"
      },
      "close": {
        "description": "Closing price. eod dataset only.",
        "type": "number"
      },
      "code": {
        "description": "Ticker code without exchange suffix. Present in all three datasets.",
        "type": "string"
      },
      "currency": {
        "description": "Currency the dividend is denominated in. dividends dataset only.",
        "type": "string"
      },
      "date": {
        "description": "Trading day for eod, event date for splits, ex-dividend date for dividends.",
        "format": "date",
        "type": "string"
      },
      "declarationDate": {
        "description": "Date the dividend was declared. dividends dataset only.",
        "format": "date",
        "type": "string"
      },
      "dividend": {
        "description": "Dividend amount per share. dividends dataset only.",
        "type": "string"
      },
      "ema_200d": {
        "description": "200 day exponential moving average. Only when filter=extended and only for the last 30 days.",
        "type": "number"
      },
      "ema_50d": {
        "description": "50 day exponential moving average. Only when filter=extended and only for the last 30 days.",
        "type": "number"
      },
      "exchange": {
        "description": "Exchange designation. Present in the splits and dividends datasets.",
        "type": "string"
      },
      "exchange_short_name": {
        "description": "Exchange designation. Present in the eod dataset.",
        "type": "string"
      },
      "hi_250d": {
        "description": "250 day high. Only when filter=extended and only for the last 30 days.",
        "type": "number"
      },
      "high": {
        "description": "Highest price of the session. eod dataset only.",
        "type": "number"
      },
      "lo_250d": {
        "description": "250 day low. Only when filter=extended and only for the last 30 days.",
        "type": "number"
      },
      "low": {
        "description": "Lowest price of the session. eod dataset only.",
        "type": "number"
      },
      "name": {
        "description": "Company name. Only when filter=extended.",
        "type": "string"
      },
      "open": {
        "description": "Opening price. eod dataset only.",
        "type": "number"
      },
      "paymentDate": {
        "description": "Payment date of the dividend. dividends dataset only.",
        "format": "date",
        "type": "string"
      },
      "period": {
        "description": "Dividend frequency such as Quarterly or Semiannual. dividends dataset only.",
        "type": "string"
      },
      "prev_close": {
        "description": "Previous session close. eod dataset, JSON output only.",
        "type": "number"
      },
      "recordDate": {
        "description": "Record date of the dividend. dividends dataset only.",
        "format": "date",
        "type": "string"
      },
      "split": {
        "description": "Split ratio expressed as new shares/old shares. splits dataset only.",
        "type": "string"
      },
      "type": {
        "description": "Instrument type. Only when filter=extended.",
        "type": "string"
      },
      "unadjustedValue": {
        "description": "Dividend amount before adjustment. dividends dataset only.",
        "type": "string"
      },
      "volume": {
        "description": "Shares traded during the session. eod dataset only.",
        "type": "integer"
      }
    },
    "required": [
      "code",
      "date"
    ],
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "date": "2026-08-18",
  "exchange": "US",
  "filter": "extended",
  "fmt": "json",
  "symbols": "MSFT,AAPL",
  "type": "eod"
}
Example response
"[{\"code\":\"MSFT\",\"exchange_short_name\":\"US\",\"date\":\"2026-08-18\",\"open\":481.54,\"high\":484.27,\"low\":477.15,\"close\":481.63,\"adjusted_close\":481.63,\"volume\":24059700,\"prev_close\":480.35,\"change\":1.28,\"change_p\":0.2665}]"
GET/api/eod/{symbol}
$0.02 default
Description

Daily, weekly or monthly open, high, low, close, adjusted close and volume for one instrument.

Documentation

GET /api/eod/{symbol} — Daily, weekly or monthly open, high, low, close, adjusted close and volume for one instrument.

Returns the full end-of-day price history for a single ticker in TICKER.EXCHANGE form, covering stocks, ETFs, funds, indices, forex and cryptocurrencies. Over 30 years of history is available for many instruments. The open, high, low and close values are raw and unadjusted; only adjusted_close carries both split and dividend adjustments, while volume is adjusted for splits. Weekly and monthly periods aggregate the volume over the bar.

EODHD call weight: 1; required plans: eod, eod_intraday, all_in_one, free.

One API call per request no matter how long the price history is, so ask for the widest range you need in a single call. There is no pagination. The free plan can call it but only for the past year of history and with 20 API calls per day. Using filter changes the response body from an array to a single scalar value, which breaks the array schema above. The default fmt on the server is csv, so fmt=json must be sent explicitly.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.02 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "filter": {
      "description": "Return a single bare value from the most recent bar instead of the full series.",
      "enum": [
        "last_date",
        "last_open",
        "last_high",
        "last_low",
        "last_close",
        "last_volume"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. The documentation states the server-side default is csv, so always send fmt=json for machine parsing.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "description": "Start date of the requested range, inclusive, in YYYY-MM-DD format.",
      "format": "date",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "order": {
      "default": "a",
      "description": "Sort order of the returned series by date: a for ascending, d for descending.",
      "enum": [
        "a",
        "d"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "period": {
      "default": "d",
      "description": "Bar aggregation period: d for daily, w for weekly, m for monthly.",
      "enum": [
        "d",
        "w",
        "m"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Ticker with exchange suffix in TICKER.EXCHANGE form.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "to": {
      "description": "End date of the requested range, inclusive, in YYYY-MM-DD format.",
      "format": "date",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 1,
  "x-apiosk-capability-id": "eodhd.eod_historical",
  "x-apiosk-free-plan": true,
  "x-apiosk-plans": [
    "eod",
    "eod_intraday",
    "all_in_one",
    "free"
  ],
  "x-apiosk-provider-cost-eur": 0.00005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.02
}
Response schema
{
  "description": "Chronologically ordered list of price bars.",
  "items": {
    "properties": {
      "adjusted_close": {
        "description": "Closing price adjusted for splits and dividends.",
        "type": "number"
      },
      "close": {
        "description": "Closing price of the period, unadjusted.",
        "type": "number"
      },
      "date": {
        "description": "Trading date of the bar in YYYY-MM-DD format.",
        "format": "date",
        "type": "string"
      },
      "high": {
        "description": "Highest price of the period, unadjusted.",
        "type": "number"
      },
      "low": {
        "description": "Lowest price of the period, unadjusted.",
        "type": "number"
      },
      "open": {
        "description": "Opening price of the period, unadjusted.",
        "type": "number"
      },
      "volume": {
        "description": "Traded volume over the period, adjusted for splits.",
        "type": "integer"
      }
    },
    "required": [
      "date",
      "open",
      "high",
      "low",
      "close",
      "adjusted_close",
      "volume"
    ],
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "filter": "last_close",
  "fmt": "json",
  "from": "2024-01-01",
  "order": "a",
  "period": "d",
  "symbol": "AAPL.US",
  "to": "2024-12-31"
}
Example response
"[{\"date\":\"2024-01-02\",\"open\":187.15,\"high\":188.44,\"low\":183.89,\"close\":185.64,\"adjusted_close\":183.404,\"volume\":82488700},{\"date\":\"2024-01-03\",\"open\":184.22,\"high\":185.88,\"low\":183.43,\"close\":184.25,\"adjusted_close\":182.0308,\"volume\":58414500}]"
GET/api/exchange-details/{exchange}
$0.05 default
Description

Trading hours, working days, holiday calendar and ticker counts for one exchange.

Documentation

GET /api/exchange-details/{exchange} — Trading hours, working days, holiday calendar and ticker counts for one exchange.

Returns the operating profile of a single exchange: its timezone, regular session open and close in both local and UTC time, the working days of the week, whether the market is currently open, and a holiday calendar over the requested window. The from and to parameters default to six months back and six months ahead. Use it to decide whether a market is trading before requesting live prices, and to skip non-trading days when paging historical data.

EODHD call weight: 5; required plans: all_in_one, eod_intraday.

This is the v1 legacy path and it remains supported, but a v2 exists at /api/v2/exchange-details/{exchange} which wraps the payload in a data object, keys ExchangeHolidays by date instead of by index, drops the Date field from each holiday entry, adds PreMarketOpen, PreMarketClose, AfterHoursOpen and AfterHoursClose to TradingHours, and adds an EarlyClose type with an EarlyClose time. Calling /api/v2/exchange-details without a code lists the available exchanges. Costs 5 API calls per request, and unlike the other two exchange endpoints it is not in the Free plan and not in the EOD All World plan. ExchangeHolidays is an object keyed by index string, not an array.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "exchange": {
      "description": "Exchange code as returned in the Code field of the exchanges list.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. The documentation states the server-side default is csv, so always send fmt=json for machine parsing.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "description": "Start of the holiday calendar window in YYYY-MM-DD format. Defaults to six months before today.",
      "format": "date",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "to": {
      "description": "End of the holiday calendar window in YYYY-MM-DD format. Defaults to six months after today.",
      "format": "date",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "exchange"
  ],
  "type": "object",
  "x-apiosk-call-weight": 5,
  "x-apiosk-capability-id": "eodhd.exchange_details",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "eod_intraday"
  ],
  "x-apiosk-provider-cost-eur": 0.00025,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "description": "Operating profile of one exchange, v1 response shape.",
  "properties": {
    "ActiveTickers": {
      "description": "Number of currently active tickers on the exchange.",
      "type": "integer"
    },
    "Code": {
      "description": "Exchange code used across the EODHD APIs.",
      "type": "string"
    },
    "Country": {
      "description": "Country of operation.",
      "type": "string"
    },
    "Currency": {
      "description": "Default trading currency.",
      "type": "string"
    },
    "ExchangeHolidays": {
      "additionalProperties": {
        "description": "One holiday entry.",
        "properties": {
          "Date": {
            "description": "Date of the holiday in YYYY-MM-DD format.",
            "format": "date",
            "type": "string"
          },
          "Holiday": {
            "description": "Name of the holiday.",
            "type": "string"
          },
          "Type": {
            "description": "Holiday type, for example official.",
            "type": "string"
          }
        },
        "required": [
          "Holiday",
          "Date",
          "Type"
        ],
        "type": "object"
      },
      "description": "Holiday calendar keyed by sequential numeric index string in the v1 response.",
      "type": "object"
    },
    "Name": {
      "description": "Full name of the exchange.",
      "type": "string"
    },
    "OperatingMIC": {
      "description": "Comma separated ISO 10383 operating MIC codes.",
      "type": [
        "string",
        "null"
      ]
    },
    "Timezone": {
      "description": "IANA timezone name of the exchange, for example America/New_York.",
      "type": "string"
    },
    "TradingHours": {
      "description": "Regular session times and working days.",
      "properties": {
        "Close": {
          "description": "Regular session close in exchange local time, HH:MM:SS.",
          "type": "string"
        },
        "CloseUTC": {
          "description": "Regular session close in UTC, HH:MM:SS.",
          "type": "string"
        },
        "Open": {
          "description": "Regular session open in exchange local time, HH:MM:SS.",
          "type": "string"
        },
        "OpenUTC": {
          "description": "Regular session open in UTC, HH:MM:SS.",
          "type": "string"
        },
        "WorkingDays": {
          "description": "Comma separated list of trading weekdays, for example Mon,Tue,Wed,Thu,Fri.",
          "type": "string"
        }
      },
      "required": [
        "Open",
        "Close",
        "WorkingDays"
      ],
      "type": "object"
    },
    "UpdatedTickers": {
      "description": "Number of tickers updated in the latest data refresh.",
      "type": "integer"
    },
    "isOpen": {
      "description": "Whether the exchange is currently in its regular trading session.",
      "type": "boolean"
    }
  },
  "required": [
    "Name",
    "Code",
    "Country",
    "Currency",
    "Timezone",
    "TradingHours",
    "ExchangeHolidays"
  ],
  "type": "object"
}
Example request
{
  "exchange": "US",
  "fmt": "json",
  "from": "2026-01-01",
  "to": "2026-12-31"
}
Example response
"{\"Name\":\"USA Stocks\",\"Code\":\"US\",\"OperatingMIC\":\"XNAS, XNYS, OTCM, XCBO\",\"Country\":\"USA\",\"Currency\":\"USD\",\"Timezone\":\"America/New_York\",\"isOpen\":true,\"TradingHours\":{\"Open\":\"09:30:00\",\"Close\":\"16:00:00\",\"OpenUTC\":\"13:30:00\",\"CloseUTC\":\"20:00:00\",\"WorkingDays\":\"Mon,Tue,Wed,Thu,Fri\"},\"ActiveTickers\":52334,\"UpdatedTickers\":0,\"ExchangeHolidays\":{\"0\":{\"Holiday\":\"New Year's Day\",\"Date\":\"2026-01-01\",\"Type\":\"official\"}}}"
GET/api/exchange-symbol-list/{exchange}
$0.02 default
Description

All tradable tickers on one exchange with name, type, currency and ISIN.

Documentation

GET /api/exchange-symbol-list/{exchange} — All tradable tickers on one exchange with name, type, currency and ISIN.

Returns the full instrument universe of a single exchange, which is the way to enumerate every symbol before requesting prices. Each row gives the bare ticker code, the instrument name, the specific venue, the trading currency, the instrument type and the ISIN where available. The delisted parameter switches the response to historical delisted tickers, and type narrows the list to a single instrument class. The Code field is the bare symbol without the exchange suffix, so build TICKER.EXCHANGE yourself.

EODHD call weight: 1; required plans: all_in_one, eod, eod_intraday, fundamentals, free.

This path has no trailing slash, unlike exchanges-list. Requesting US returns tens of thousands of rows in one uncompressed response with no pagination, so stream or write to disk rather than buffering. The Exchange field in each row can be a narrower venue such as NYSE or NASDAQ even when the request was for US. Only 1 API call per request even for a full exchange. The server default fmt is csv.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.02 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "delisted": {
      "default": 0,
      "description": "Set to 1 to return delisted tickers instead of the active universe.",
      "enum": [
        0,
        1
      ],
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "exchange": {
      "description": "Exchange code as returned in the Code field of the exchanges list, for example US, LSE or WAR.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. The documentation states the server-side default is csv, so always send fmt=json for machine parsing.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbols": {
      "description": "Comma separated ticker codes to check the existence and metadata of, instead of returning the whole exchange.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "type": {
      "description": "Restrict the list to a single instrument class.",
      "enum": [
        "common_stock",
        "preferred_stock",
        "stock",
        "etf",
        "fund"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "exchange"
  ],
  "type": "object",
  "x-apiosk-call-weight": 1,
  "x-apiosk-capability-id": "eodhd.exchange_symbol_list",
  "x-apiosk-free-plan": true,
  "x-apiosk-plans": [
    "all_in_one",
    "eod",
    "eod_intraday",
    "fundamentals",
    "free"
  ],
  "x-apiosk-provider-cost-eur": 0.00005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.02
}
Response schema
{
  "description": "List of instruments on the exchange.",
  "items": {
    "properties": {
      "Code": {
        "description": "Ticker symbol without the exchange suffix.",
        "type": "string"
      },
      "Country": {
        "description": "Country of listing.",
        "type": "string"
      },
      "Currency": {
        "description": "Trading currency.",
        "type": "string"
      },
      "Exchange": {
        "description": "Specific venue code, which may be narrower than the requested exchange code.",
        "type": "string"
      },
      "Isin": {
        "description": "ISIN identifier where available, otherwise null.",
        "type": [
          "string",
          "null"
        ]
      },
      "Name": {
        "description": "Company or instrument name.",
        "type": "string"
      },
      "Type": {
        "description": "Instrument type such as Common Stock, ETF or FUND.",
        "type": "string"
      }
    },
    "required": [
      "Code",
      "Name",
      "Country",
      "Exchange",
      "Currency",
      "Type"
    ],
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "delisted": 1,
  "exchange": "WAR",
  "fmt": "json",
  "symbols": "AAPL,MSFT",
  "type": "etf"
}
Example response
"[{\"Code\":\"CDR\",\"Name\":\"CD PROJEKT SA\",\"Country\":\"Poland\",\"Exchange\":\"WAR\",\"Currency\":\"PLN\",\"Type\":\"Common Stock\",\"Isin\":\"PLOPTTC00011\"}]"
GET/api/exchanges-list/
$0.01 default
Description

List of all exchanges supported by EODHD with codes, MICs, country and currency.

Documentation

GET /api/exchanges-list/ — List of all exchanges supported by EODHD with codes, MICs, country and currency.

Returns every exchange EODHD supports, including the Code value that must be used as the exchange suffix on tickers and as the path parameter on other exchange endpoints. Each entry carries the full name, ISO 10383 operating MIC codes, country and default trading currency. The list also contains five virtual exchanges, CC for crypto, FOREX, MONEY, GBOND and EUFUND. This is the discovery entry point for building a valid ticker.

EODHD call weight: 1; required plans: all_in_one, eod, eod_intraday, fundamentals, free.

This path keeps a trailing slash, unlike the other exchange endpoints. Field names use PascalCase here while the price endpoints use lowercase, so do not assume one casing convention across the API. The documentation states 70 exchanges as of August 2026 plus five virtual exchanges. Note that Code US is a single aggregated feed covering NYSE, NASDAQ and OTC rather than one venue. The DEMO token cannot call this endpoint and returns Forbidden.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.01 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The documentation states the server-side default is csv, so always send fmt=json for machine parsing.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 1,
  "x-apiosk-capability-id": "eodhd.exchanges_list",
  "x-apiosk-free-plan": true,
  "x-apiosk-plans": [
    "all_in_one",
    "eod",
    "eod_intraday",
    "fundamentals",
    "free"
  ],
  "x-apiosk-provider-cost-eur": 0.00005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.015
}
Response schema
{
  "description": "List of supported exchanges.",
  "items": {
    "properties": {
      "Code": {
        "description": "Exchange code used across the EODHD APIs, both as a ticker suffix and as a path parameter.",
        "type": "string"
      },
      "Country": {
        "description": "Country of operation, or the literal Unknown.",
        "type": "string"
      },
      "CountryISO2": {
        "description": "ISO 3166-1 alpha-2 country code.",
        "type": "string"
      },
      "CountryISO3": {
        "description": "ISO 3166-1 alpha-3 country code.",
        "type": "string"
      },
      "Currency": {
        "description": "Default trading currency of the exchange.",
        "type": "string"
      },
      "Name": {
        "description": "Full name of the exchange.",
        "type": "string"
      },
      "OperatingMIC": {
        "description": "Comma separated ISO 10383 operating MIC codes, or null when not applicable.",
        "type": [
          "string",
          "null"
        ]
      }
    },
    "required": [
      "Name",
      "Code",
      "Country",
      "Currency"
    ],
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "fmt": "json"
}
Example response
"[{\"Name\":\"USA Stocks\",\"Code\":\"US\",\"OperatingMIC\":\"XNAS, XNYS, OTCM, XCBO\",\"Country\":\"USA\",\"Currency\":\"USD\",\"CountryISO2\":\"US\",\"CountryISO3\":\"USA\"}]"
GET/api/fundamentals/{symbol}
$0.05 default
Description

Unversioned legacy path of the Fundamental Data API, kept for backward compatibility.

Documentation

GET /api/fundamentals/{symbol} — Unversioned legacy path of the Fundamental Data API, kept for backward compatibility.

Same endpoint and same parameters as the v1.1 fundamentals path, served without the version prefix. It is documented as staying available for backward compatibility with existing integrations. Use it only when an existing client hardcodes the old URL; new integrations should call the v1.1 path because it fixes the missing Q4 rows in the earnings trend. All of the documentation examples for index constituents still use this path.

EODHD call weight: 10; required plans: all_in_one, fundamentals_data_feed.

Identical behaviour to /api/v1.1/fundamentals/{symbol} except that Earnings::Trend keeps the original flat date-keyed layout in which a quarterly and an annual estimate sharing the same date could collide and silently drop Q4. The documentation gives no separate example response for this path.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "filter": {
      "description": "Return only one section or a single field instead of the full object. Nest layers with :: and pass several comma-separated filters at once. Section and field names are the response keys, for example General, General::Code, Financials::Balance_Sheet::quarterly, or General::Code,General,Earnings.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. The fundamentals feed is JSON only because of the complex data structure, so json is the only useful value.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "description": "Start date (YYYY-MM-DD) for historical index snapshots, used with historical=1.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "historical": {
      "description": "Set to 1 to include point-in-time index membership snapshots (HistoricalComponents). Indices only; combine with from and to.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Ticker in TICKER.EXCHANGE format, for example AAPL.US. Also accepts index tickers such as GSPC.INDX and mutual fund ISINs.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "to": {
      "description": "End date (YYYY-MM-DD) for historical index snapshots, used with historical=1.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.fundamentals_stock_legacy_path",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "fundamentals_data_feed"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": true,
  "description": "Full fundamentals object for a common stock or equity ticker. Sections are omitted when the issuer does not report them.",
  "properties": {
    "Earnings": {
      "additionalProperties": true,
      "description": "Reported earnings, analyst trend and annual earnings.",
      "properties": {
        "Annual": {
          "additionalProperties": true,
          "description": "Annual earnings keyed by date. Each entry has date and epsActual.",
          "type": "object"
        },
        "History": {
          "additionalProperties": true,
          "description": "Reported earnings keyed by fiscal period end date (YYYY-MM-DD). Each entry has reportDate, date, beforeAfterMarket, currency, epsActual, epsEstimate, epsDifference and surprisePercent.",
          "type": "object"
        },
        "Trend": {
          "additionalProperties": true,
          "description": "Analyst estimates by period. In v1.1 this block is split into Quarterly and Annual sections instead of one flat date-keyed list, and each quarterly entry carries a human-readable quarter field (Q1, Q2, Q3, Q4). Entries include growth, earningsEstimateAvg, earningsEstimateLow, earningsEstimateHigh, revenueEstimateAvg, the EPS trend values and the EPS revision counts.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "Financials": {
      "additionalProperties": true,
      "description": "Full financial statements.",
      "properties": {
        "Balance_Sheet": {
          "additionalProperties": true,
          "description": "Balance sheet.",
          "properties": {
            "currency_symbol": {
              "description": "Reporting currency of the statement.",
              "type": [
                "string",
                "null"
              ]
            },
            "quarterly": {
              "additionalProperties": true,
              "description": "Quarterly reports keyed by period end date (YYYY-MM-DD). Same entry shape as yearly.",
              "type": "object"
            },
            "yearly": {
              "additionalProperties": true,
              "description": "Yearly reports keyed by period end date (YYYY-MM-DD). Each report carries its own date and filing_date plus the line items, for example totalAssets, totalLiab, totalStockholderEquity, cash, netDebt, longTermDebt, inventory and retainedEarnings. Numeric line items are delivered as strings.",
              "type": "object"
            }
          },
          "type": "object"
        },
        "Cash_Flow": {
          "additionalProperties": true,
          "description": "Cash flow statement.",
          "properties": {
            "currency_symbol": {
              "description": "Reporting currency of the statement.",
              "type": [
                "string",
                "null"
              ]
            },
            "quarterly": {
              "additionalProperties": true,
              "description": "Quarterly reports keyed by period end date (YYYY-MM-DD). Same entry shape as yearly.",
              "type": "object"
            },
            "yearly": {
              "additionalProperties": true,
              "description": "Yearly reports keyed by period end date (YYYY-MM-DD). Each report carries its own date and filing_date plus the line items, for example totalCashFromOperatingActivities, capitalExpenditures, freeCashFlow, dividendsPaid, netIncome and changeInCash. Numeric line items are delivered as strings.",
              "type": "object"
            }
          },
          "type": "object"
        },
        "Income_Statement": {
          "additionalProperties": true,
          "description": "Income statement.",
          "properties": {
            "currency_symbol": {
              "description": "Reporting currency of the statement.",
              "type": [
                "string",
                "null"
              ]
            },
            "quarterly": {
              "additionalProperties": true,
              "description": "Quarterly reports keyed by period end date (YYYY-MM-DD). Same entry shape as yearly.",
              "type": "object"
            },
            "yearly": {
              "additionalProperties": true,
              "description": "Yearly reports keyed by period end date (YYYY-MM-DD). Each report carries its own date and filing_date plus the line items, for example totalRevenue, costOfRevenue, grossProfit, operatingIncome, ebit, ebitda, netIncome and researchDevelopment. Numeric line items are delivered as strings.",
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "General": {
      "additionalProperties": true,
      "description": "Company profile block.",
      "properties": {
        "Address": {
          "description": "The company address as a single string.",
          "type": [
            "string",
            "null"
          ]
        },
        "AddressData": {
          "additionalProperties": true,
          "description": "The address split into Street, City, State, Country and ZIP.",
          "type": "object"
        },
        "CIK": {
          "description": "Central Index Key assigned by the SEC, US companies.",
          "type": [
            "string",
            "null"
          ]
        },
        "CUSIP": {
          "description": "CUSIP identifier, mainly for US companies.",
          "type": [
            "string",
            "null"
          ]
        },
        "Code": {
          "description": "The ticker code of the company.",
          "type": [
            "string",
            "null"
          ]
        },
        "CountryISO": {
          "description": "ISO country code.",
          "type": [
            "string",
            "null"
          ]
        },
        "CountryName": {
          "description": "Country where the company is registered.",
          "type": [
            "string",
            "null"
          ]
        },
        "CurrencyCode": {
          "description": "Currency code of the listing.",
          "type": [
            "string",
            "null"
          ]
        },
        "CurrencyName": {
          "description": "Full name of the listing currency.",
          "type": [
            "string",
            "null"
          ]
        },
        "CurrencySymbol": {
          "description": "Symbol of the listing currency.",
          "type": [
            "string",
            "null"
          ]
        },
        "Description": {
          "description": "A textual description of the company.",
          "type": [
            "string",
            "null"
          ]
        },
        "EmployerIdNumber": {
          "description": "Employer Identification Number (EIN), US companies.",
          "type": [
            "string",
            "null"
          ]
        },
        "Exchange": {
          "description": "The exchange the ticker is listed on.",
          "type": [
            "string",
            "null"
          ]
        },
        "ExchangeMarket": {
          "description": "Extra market label that may appear on non-US equities only.",
          "type": [
            "string",
            "null"
          ]
        },
        "FiscalYearEnd": {
          "description": "Month the fiscal year ends.",
          "type": [
            "string",
            "null"
          ]
        },
        "FullTimeEmployees": {
          "description": "Number of full-time employees.",
          "type": [
            "integer",
            "null"
          ]
        },
        "GicGroup": {
          "description": "GICS industry group classification.",
          "type": [
            "string",
            "null"
          ]
        },
        "GicIndustry": {
          "description": "GICS industry classification.",
          "type": [
            "string",
            "null"
          ]
        },
        "GicSector": {
          "description": "GICS sector classification.",
          "type": [
            "string",
            "null"
          ]
        },
        "GicSubIndustry": {
          "description": "GICS sub-industry classification.",
          "type": [
            "string",
            "null"
          ]
        },
        "HomeCategory": {
          "description": "Home category of the ticker, for example Domestic or ADR.",
          "type": [
            "string",
            "null"
          ]
        },
        "IPODate": {
          "description": "Date of the initial public offering.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "ISIN": {
          "description": "International Securities Identification Number.",
          "type": [
            "string",
            "null"
          ]
        },
        "Industry": {
          "description": "The industry of the company.",
          "type": [
            "string",
            "null"
          ]
        },
        "InternationalDomestic": {
          "description": "International or domestic classification.",
          "type": [
            "string",
            "null"
          ]
        },
        "IsDelisted": {
          "description": "Whether the ticker has been delisted.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "LEI": {
          "description": "Legal Entity Identifier.",
          "type": [
            "string",
            "null"
          ]
        },
        "Listings": {
          "additionalProperties": true,
          "description": "Other exchange listings for the ticker, keyed by index, each entry with Code, Exchange and Name.",
          "type": "object"
        },
        "LogoURL": {
          "description": "Path to the company logo image.",
          "type": [
            "string",
            "null"
          ]
        },
        "Name": {
          "description": "The company name.",
          "type": [
            "string",
            "null"
          ]
        },
        "Officers": {
          "additionalProperties": true,
          "description": "Company executives, keyed by index, each entry with Name, Title and YearBorn.",
          "type": "object"
        },
        "OpenFigi": {
          "description": "The OpenFIGI identifier.",
          "type": [
            "string",
            "null"
          ]
        },
        "Phone": {
          "description": "Company phone number.",
          "type": [
            "string",
            "null"
          ]
        },
        "PrimaryTicker": {
          "description": "The primary ticker for the company.",
          "type": [
            "string",
            "null"
          ]
        },
        "Sector": {
          "description": "The sector of the company.",
          "type": [
            "string",
            "null"
          ]
        },
        "Type": {
          "description": "The instrument type, for example Common Stock.",
          "type": [
            "string",
            "null"
          ]
        },
        "UpdatedAt": {
          "description": "Date the record was last updated.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "WebURL": {
          "description": "Company website URL.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "Highlights": {
      "additionalProperties": true,
      "description": "Key metrics and analyst estimates.",
      "properties": {
        "BookValue": {
          "description": "Book value per share.",
          "type": [
            "number",
            "null"
          ]
        },
        "DilutedEpsTTM": {
          "description": "Diluted EPS over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "DividendShare": {
          "description": "Dividend per share.",
          "type": [
            "number",
            "null"
          ]
        },
        "DividendYield": {
          "description": "Dividend yield.",
          "type": [
            "number",
            "null"
          ]
        },
        "EBITDA": {
          "description": "Earnings before interest, taxes, depreciation and amortization.",
          "type": [
            "number",
            "null"
          ]
        },
        "EPSEstimateCurrentQuarter": {
          "description": "Estimated EPS for the current quarter.",
          "type": [
            "number",
            "null"
          ]
        },
        "EPSEstimateCurrentYear": {
          "description": "Estimated EPS for the current year.",
          "type": [
            "number",
            "null"
          ]
        },
        "EPSEstimateNextQuarter": {
          "description": "Estimated EPS for the next quarter.",
          "type": [
            "number",
            "null"
          ]
        },
        "EPSEstimateNextYear": {
          "description": "Estimated EPS for the next year.",
          "type": [
            "number",
            "null"
          ]
        },
        "EarningsShare": {
          "description": "Earnings per share (EPS).",
          "type": [
            "number",
            "null"
          ]
        },
        "GrossProfitTTM": {
          "description": "Gross profit over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "MarketCapitalization": {
          "description": "Market capitalization.",
          "type": [
            "number",
            "null"
          ]
        },
        "MarketCapitalizationMln": {
          "description": "Market capitalization in millions.",
          "type": [
            "number",
            "null"
          ]
        },
        "MostRecentQuarter": {
          "description": "Date of the most recent reported quarter.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "OperatingMarginTTM": {
          "description": "Operating margin over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "PEGRatio": {
          "description": "Price/earnings-to-growth ratio.",
          "type": [
            "number",
            "null"
          ]
        },
        "PERatio": {
          "description": "Price-to-earnings ratio.",
          "type": [
            "number",
            "null"
          ]
        },
        "ProfitMargin": {
          "description": "Profit margin.",
          "type": [
            "number",
            "null"
          ]
        },
        "QuarterlyEarningsGrowthYOY": {
          "description": "Quarterly earnings growth year over year.",
          "type": [
            "number",
            "null"
          ]
        },
        "QuarterlyRevenueGrowthYOY": {
          "description": "Quarterly revenue growth year over year.",
          "type": [
            "number",
            "null"
          ]
        },
        "ReturnOnAssetsTTM": {
          "description": "Return on assets over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "ReturnOnEquityTTM": {
          "description": "Return on equity over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "RevenuePerShareTTM": {
          "description": "Revenue per share over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "RevenueTTM": {
          "description": "Revenue over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "WallStreetTargetPrice": {
          "description": "Average analyst target price.",
          "type": [
            "number",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "Holders": {
      "additionalProperties": true,
      "description": "Institutional and fund ownership.",
      "properties": {
        "Funds": {
          "additionalProperties": true,
          "description": "Fund holders keyed by index string. Same entry shape as Institutions: name, date, totalShares, totalAssets, currentShares, change, change_p.",
          "type": "object"
        },
        "Institutions": {
          "additionalProperties": true,
          "description": "Institutional holders keyed by index string (\"0\", \"1\", ...). Each entry has name, date (report date), totalShares (percent of total shares held), totalAssets (percent of the holder assets in this position), currentShares (share count), change and change_p.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "InsiderTransactions": {
      "additionalProperties": true,
      "description": "Insider trading records keyed by index string. Each entry has date (report date), ownerCik, ownerName, transactionDate, transactionCode, transactionAmount (share count), transactionPrice, transactionAcquiredDisposed, postTransactionAmount and secLink (URL of the SEC filing).",
      "type": "object"
    },
    "SharesStats": {
      "additionalProperties": true,
      "description": "Share statistics and ownership percentages.",
      "properties": {
        "PercentInsiders": {
          "description": "Percentage of shares held by insiders.",
          "type": [
            "number",
            "null"
          ]
        },
        "PercentInstitutions": {
          "description": "Percentage of shares held by institutions.",
          "type": [
            "number",
            "null"
          ]
        },
        "SharesFloat": {
          "description": "Shares available for public trading.",
          "type": [
            "number",
            "null"
          ]
        },
        "SharesOutstanding": {
          "description": "Total shares outstanding.",
          "type": [
            "number",
            "null"
          ]
        },
        "SharesShort": {
          "description": "Number of shares sold short.",
          "type": [
            "number",
            "null"
          ]
        },
        "SharesShortPriorMonth": {
          "description": "Shares sold short in the prior month.",
          "type": [
            "number",
            "null"
          ]
        },
        "ShortPercentFloat": {
          "description": "Short interest as a percentage of the float.",
          "type": [
            "number",
            "null"
          ]
        },
        "ShortPercentOutstanding": {
          "description": "Short interest as a percentage of shares outstanding.",
          "type": [
            "number",
            "null"
          ]
        },
        "ShortRatio": {
          "description": "Short interest ratio.",
          "type": [
            "number",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "SplitsDividends": {
      "additionalProperties": true,
      "description": "Dividend and split summary.",
      "properties": {
        "DividendDate": {
          "description": "The dividend payment date.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "ExDividendDate": {
          "description": "The ex-dividend date.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "ForwardAnnualDividendRate": {
          "description": "Forward annual dividend rate.",
          "type": [
            "number",
            "null"
          ]
        },
        "ForwardAnnualDividendYield": {
          "description": "Forward annual dividend yield.",
          "type": [
            "number",
            "null"
          ]
        },
        "LastSplitDate": {
          "description": "The date of the last stock split.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "LastSplitFactor": {
          "description": "The factor of the last stock split, for example 4:1.",
          "type": [
            "string",
            "null"
          ]
        },
        "NumberDividendsByYear": {
          "additionalProperties": true,
          "description": "Count of dividends paid per year, keyed by index, each entry with Year and Count.",
          "type": "object"
        },
        "PayoutRatio": {
          "description": "Dividend payout ratio.",
          "type": [
            "number",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "Technicals": {
      "additionalProperties": true,
      "description": "Technical performance metrics.",
      "properties": {
        "200DayMA": {
          "description": "200-day moving average.",
          "type": [
            "number",
            "null"
          ]
        },
        "50DayMA": {
          "description": "50-day moving average.",
          "type": [
            "number",
            "null"
          ]
        },
        "52WeekHigh": {
          "description": "Highest price over the last 52 weeks.",
          "type": [
            "number",
            "null"
          ]
        },
        "52WeekLow": {
          "description": "Lowest price over the last 52 weeks.",
          "type": [
            "number",
            "null"
          ]
        },
        "Beta": {
          "description": "Measure of stock volatility relative to the market.",
          "type": [
            "number",
            "null"
          ]
        },
        "SharesShort": {
          "description": "Number of shares sold short.",
          "type": [
            "number",
            "null"
          ]
        },
        "SharesShortPriorMonth": {
          "description": "Shares sold short in the prior month.",
          "type": [
            "number",
            "null"
          ]
        },
        "ShortPercent": {
          "description": "Short interest as a percentage.",
          "type": [
            "number",
            "null"
          ]
        },
        "ShortRatio": {
          "description": "Short interest ratio.",
          "type": [
            "number",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "Valuation": {
      "additionalProperties": true,
      "description": "Market valuation ratios.",
      "properties": {
        "EnterpriseValue": {
          "description": "Enterprise value.",
          "type": [
            "number",
            "null"
          ]
        },
        "EnterpriseValueEbitda": {
          "description": "Enterprise value to EBITDA ratio.",
          "type": [
            "number",
            "null"
          ]
        },
        "EnterpriseValueRevenue": {
          "description": "Enterprise value to revenue ratio.",
          "type": [
            "number",
            "null"
          ]
        },
        "ForwardPE": {
          "description": "Forward price-to-earnings ratio.",
          "type": [
            "number",
            "null"
          ]
        },
        "PriceBookMRQ": {
          "description": "Price-to-book ratio for the most recent quarter.",
          "type": [
            "number",
            "null"
          ]
        },
        "PriceSalesTTM": {
          "description": "Price-to-sales ratio over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "TrailingPE": {
          "description": "Trailing price-to-earnings ratio.",
          "type": [
            "number",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "outstandingShares": {
      "additionalProperties": true,
      "description": "Historical shares outstanding.",
      "properties": {
        "annual": {
          "additionalProperties": true,
          "description": "Yearly history keyed by index string. Each entry has date (period label), dateFormatted (period end date, YYYY-MM-DD), sharesMln (shares in millions, delivered as a string) and shares (integer share count).",
          "type": "object"
        },
        "quarterly": {
          "additionalProperties": true,
          "description": "Quarterly history keyed by index string. Same entry shape as annual: date, dateFormatted, sharesMln, shares.",
          "type": "object"
        }
      },
      "type": "object"
    }
  },
  "type": "object"
}
Example request
{
  "filter": "Financials::Balance_Sheet::quarterly",
  "fmt": "json",
  "from": "2010-01-01",
  "historical": 1,
  "symbol": "AAPL.US",
  "to": "2010-12-31"
}
GET/api/historical-market-cap/{symbol}
$0.05 default
Description

Time series of historical market capitalisation in US dollars for one instrument.

Documentation

GET /api/historical-market-cap/{symbol} — Time series of historical market capitalisation in US dollars for one instrument.

Returns a dated series of market capitalisation values in US dollars for a single ticker, which is useful for size factor work, index weighting and valuation ratios over time. Coverage is all NYSE and NASDAQ listed companies sampled weekly from 2021-07-09, plus .CC cryptocurrency tickers sampled daily from late 2022 for most assets. The response is a JSON object keyed by sequential index rather than an array, and each entry holds a date and a value.

EODHD call weight: 10; required plans: all_in_one, fundamentals.

The response is an object keyed by index string, not an array, so iterate the values rather than indexing positionally. Each request costs 10 API calls, the most expensive endpoint in this group. Equity data is weekly, not daily, and starts only at 2021-07-09, so it cannot be used for long horizon backtests. Values are always in US dollars regardless of the listing currency. Sits on the Fundamentals entitlement, so an EOD only plan cannot call it.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The documentation states the server-side default is csv, so always send fmt=json for machine parsing.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "description": "Start date of the requested range, inclusive, in YYYY-MM-DD format.",
      "format": "date",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Ticker with exchange suffix in TICKER.EXCHANGE form. Also accepts .CC crypto tickers.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "to": {
      "description": "End date of the requested range, inclusive, in YYYY-MM-DD format.",
      "format": "date",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.historical_market_cap",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "fundamentals"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "additionalProperties": {
    "description": "One market capitalisation observation.",
    "properties": {
      "date": {
        "description": "Observation date in YYYY-MM-DD format.",
        "format": "date",
        "type": "string"
      },
      "value": {
        "description": "Market capitalisation on that date, in US dollars.",
        "type": "integer"
      }
    },
    "required": [
      "date",
      "value"
    ],
    "type": "object"
  },
  "description": "Object whose keys are sequential numeric indices as strings, each mapping to one observation.",
  "type": "object"
}
Example request
{
  "fmt": "json",
  "from": "2024-01-01",
  "symbol": "AAPL.US",
  "to": "2024-12-31"
}
Example response
"{\"0\":{\"date\":\"2026-07-07\",\"value\":4556663954100},\"1\":{\"date\":\"2026-07-09\",\"value\":4638216299400},\"2\":{\"date\":\"2026-07-10\",\"value\":4625015380200}}"
GET/api/insider-transactions
$0.02 default
Description

Obsolete flat-schema insider transactions feed, optionally filtered by ticker and date.

Documentation

GET /api/insider-transactions — Obsolete flat-schema insider transactions feed, optionally filtered by ticker and date.

The original insider transactions endpoint, kept only for backward compatibility with existing integrations. It returns a flat list of transactions and, unlike the Form 4 endpoint, it can be queried across all symbols at once and accepts from, to and limit. It exposes only two transaction codes, P for a purchase and S for a sale, so option exercises, grants and gifts are not distinguishable here. New integrations should use the SEC Form 4 endpoint instead.

EODHD call weight: 10; required plans: all_in_one, fundamentals_data_feed.

Explicitly marked obsolete in the documentation. The page shows no example response and no explicit response field table for this endpoint, so the schema is taken from the identically shaped InsiderTransactions section of the Fundamental Data API. A ticker identifier field on each row is not documented anywhere, so none is modelled even though the endpoint can return all symbols at once. Only P and S codes appear here, against the 20 codes the Form 4 endpoint exposes.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.02 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "code": {
      "description": "Ticker, for example AAPL or AAPL.US. By default all symbols are returned.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. The documentation states that json is supported.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "description": "Start date, YYYY-MM-DD. Default: one year ago.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "limit": {
      "default": 100,
      "description": "Number of entries per result, 1 to 1000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "to": {
      "description": "End date, YYYY-MM-DD. Default: current date.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.insider_transactions_legacy",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "fundamentals_data_feed"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.02
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Flat list of insider transactions. The documentation for this endpoint states only that it returns the same flat schema as before and shows no response example; the field list below is the InsiderTransactions schema documented in the Fundamental Data API, which is the same flat schema.",
  "items": {
    "additionalProperties": true,
    "description": "One insider transaction row.",
    "properties": {
      "date": {
        "description": "Report date of the transaction.",
        "format": "date",
        "type": [
          "string",
          "null"
        ]
      },
      "ownerCik": {
        "description": "Central Index Key of the owner.",
        "type": [
          "string",
          "null"
        ]
      },
      "ownerName": {
        "description": "Name of the owner.",
        "type": [
          "string",
          "null"
        ]
      },
      "postTransactionAmount": {
        "description": "Shares held after the transaction.",
        "type": [
          "number",
          "null"
        ]
      },
      "secLink": {
        "description": "Link to the SEC filing.",
        "type": [
          "string",
          "null"
        ]
      },
      "transactionAcquiredDisposed": {
        "description": "Whether shares were acquired or disposed.",
        "type": [
          "string",
          "null"
        ]
      },
      "transactionAmount": {
        "description": "Number of shares in the transaction.",
        "type": [
          "number",
          "null"
        ]
      },
      "transactionCode": {
        "description": "The transaction code. This endpoint exposes only P for a purchase and S for a sale.",
        "type": [
          "string",
          "null"
        ]
      },
      "transactionDate": {
        "description": "Date of the transaction.",
        "format": "date",
        "type": [
          "string",
          "null"
        ]
      },
      "transactionPrice": {
        "description": "Price per share in the transaction.",
        "type": [
          "number",
          "null"
        ]
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "code": "AAPL.US",
  "fmt": "json",
  "from": "2025-01-01",
  "limit": 100,
  "to": "2025-12-31"
}
GET/api/intraday/{symbol}
$0.05 default
Description

Historical intraday OHLCV bars at 1 minute, 5 minute or 1 hour resolution for one instrument.

Documentation

GET /api/intraday/{symbol} — Historical intraday OHLCV bars at 1 minute, 5 minute or 1 hour resolution for one instrument.

Returns historical intraday price bars for a single ticker with UTC timestamps. One minute US equity bars go back to 2004, while five minute and one hour bars start in October 2020; forex and crypto one minute bars go back to 2009. Each request is capped by interval: 120 days for 1m, 600 days for 5m and 7200 days for 1h, so long histories must be paged by moving the from and to window. Intraday data is delayed and finalised roughly two to three hours after the market close.

EODHD call weight: 5; required plans: eod_intraday, all_in_one.

Costs 5 API calls per request, five times the EOD endpoint. from and to are Unix timestamps here, which differs from every other endpoint in this group. Respect the per-interval maximum window of 120 / 600 / 7200 days and page the window yourself; there is no cursor. Bars are not adjusted for splits or dividends and there is no adjusted_close field. With split-dt=1 the datetime field is replaced by separate date and time fields; the docs do not print their exact key names, so verify before relying on them. The server default fmt is csv.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The documentation states the server-side default is csv, so always send fmt=json for machine parsing.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "description": "Start of the requested window as a Unix timestamp in seconds, UTC. Note this is a Unix timestamp, not a YYYY-MM-DD date as on the EOD endpoint.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "interval": {
      "default": "5m",
      "description": "Bar interval. 1m is one minute, 5m is five minutes, 1h is one hour.",
      "enum": [
        "1m",
        "5m",
        "1h"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "split-dt": {
      "default": 0,
      "description": "Set to 1 to return separate date and time fields instead of a single combined datetime field.",
      "enum": [
        0,
        1
      ],
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Ticker with exchange suffix in TICKER.EXCHANGE form.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "to": {
      "description": "End of the requested window as a Unix timestamp in seconds, UTC.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 5,
  "x-apiosk-capability-id": "eodhd.intraday_historical",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "eod_intraday",
    "all_in_one"
  ],
  "x-apiosk-provider-cost-eur": 0.00025,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "description": "Chronologically ordered list of intraday bars.",
  "items": {
    "properties": {
      "close": {
        "description": "Closing price of the bar.",
        "type": "number"
      },
      "datetime": {
        "description": "Bar start time as a UTC string in YYYY-MM-DD HH:MM:SS format.",
        "format": "date-time",
        "type": "string"
      },
      "gmtoffset": {
        "description": "Offset from UTC in seconds.",
        "type": "integer"
      },
      "high": {
        "description": "Highest price of the bar.",
        "type": "number"
      },
      "low": {
        "description": "Lowest price of the bar.",
        "type": "number"
      },
      "open": {
        "description": "Opening price of the bar.",
        "type": "number"
      },
      "timestamp": {
        "description": "Bar start time as a Unix timestamp in seconds, UTC.",
        "type": "integer"
      },
      "volume": {
        "description": "Traded volume during the bar.",
        "type": "integer"
      }
    },
    "required": [
      "timestamp",
      "gmtoffset",
      "datetime",
      "open",
      "high",
      "low",
      "close",
      "volume"
    ],
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "fmt": "json",
  "from": 1700000000,
  "interval": "5m",
  "split-dt": 1,
  "symbol": "AAPL.US",
  "to": 1700600000
}
Example response
"[{\"timestamp\":1778506200,\"gmtoffset\":0,\"datetime\":\"2026-05-11 13:30:00\",\"open\":291.979003,\"high\":292.700012,\"low\":290.5,\"close\":291.230102,\"volume\":2481823}]"
GET/api/logo-svg/{symbol}
$0.02 default
Description

Return the company logo for a US or Toronto ticker as a scalable SVG image.

Documentation

GET /api/logo-svg/{symbol} — Return the company logo for a US or Toronto ticker as a scalable SVG image.

Returns the company logo in SVG format for a ticker in CODE.EXCHANGE form. SVG is only available for the US and TO (Toronto) exchanges; every other exchange is PNG only through /api/logo/{symbol}. Use it for high resolution displays and print. The response body is binary image data, not JSON.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. Sold as an extension of the PNG logos product; the SVG extension spec documents both /api/logo/{symbol} and /api/logo-svg/{symbol}. Coverage is limited to US and TO, so fall back to the PNG endpoint for other exchanges. A separate XLSX list of SVG capable tickers is published with the documentation.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.02 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Ticker in {ticker}.{exchange} form, for example AAPL.US. SVG format is only available for the US and TO exchanges.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_logo_svg",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.02
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "contentEncoding": "binary",
  "contentMediaType": "image/svg+xml",
  "description": "Binary SVG image data. Not a JSON body.",
  "type": "string"
}
Example request
{
  "fmt": "json",
  "symbol": "AAPL.US"
}
GET/api/logo/{symbol}
$0.02 default
Description

Return the company logo for a ticker as a 200x200 transparent PNG image.

Documentation

GET /api/logo/{symbol} — Return the company logo for a ticker as a 200x200 transparent PNG image.

Returns the company logo image for a ticker in CODE.EXCHANGE form. The collection holds around 40 000 logos across 60+ exchanges as 200x200 pixel PNG files with transparency. The response body is binary image data, not JSON, so fmt has no effect here. A CSV or XLSX list of all available tickers is published alongside the documentation.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. This endpoint lives at /api/logo/{symbol}, not under /api/mp/, unlike the other marketplace products. The response is an image, so fmt and JSON parsing do not apply and a 404 is returned when no logo exists for the ticker. The docs show a working example with api_token=demo.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.02 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Ticker in {ticker}.{exchange} form, for example AAPL.US. Available exchanges include AS, AT, AU, BA, BK, BR, BSE, CN, CO, CSE, DU, F, HE, HK, HM, IC, IR, IS, JK, JSE, KLSE, KO, KQ, LS, LSE, MC, MCX, MI, MU, MX, NEO, NSE, NZ, OL, PA, RG, SA, SG, SHE, SHG, SN, SR, ST, STU, SW, TA, TO, TSE, TW, TWO, US, V, VI, VS, VX and XETRA.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_logo_png",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.02
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "contentEncoding": "binary",
  "contentMediaType": "image/png",
  "description": "Binary PNG image data, a 200x200 pixel logo with transparency. Not a JSON body.",
  "type": "string"
}
Example request
{
  "fmt": "json",
  "symbol": "AAPL.US"
}
GET/api/macro-indicator/{country}
$0.01 default
Description

Return an annual World Bank macroeconomic indicator time series for one country or aggregate.

Documentation

GET /api/macro-indicator/{country} — Return an annual World Bank macroeconomic indicator time series for one country or aggregate.

Returns the full annual history of a single macroeconomic indicator for one country, ordered from newest to oldest. The data comes from the World Bank World Development Indicators, so all series are annual and most start in 1960. 39 indicator keys are exposed covering national accounts, inflation, trade, government debt, demographics, labour, financial markets and environment. Good for country level screening, macro overlays and long horizon research, but not for high frequency macro releases.

EODHD call weight: 10; required plans: all_in_one, fundamentals_data_feed.

Each request costs 10 API calls, twice the price of a news request, which is high for what is republished World Bank data. Annual frequency only; for quarterly or monthly releases use /api/economic-events instead. An unknown country code returns HTTP 200 with an empty array, not a 404, so validate country codes before calling; an unrecognised indicator does return 404 with the plain text message 'Indicator or Country are Not Found.'. Expect the latest year to be one to two years behind the current calendar year. The documentation flags co2_emissions_tons_per_capita, internet_users_per_hundred and cash_surplus_deficit_percent_gdp as returning values that look out of range, and startup_procedures_register, cash_surplus_deficit_percent_gdp and internet_users_per_hundred as historical only (last updates 2019, 2014 and 2015). There is no parameter to request several indicators or several countries at once.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.01 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "country": {
      "description": "ISO 3166-1 alpha-3 country code, case insensitive (usa and USA are equivalent). World Bank aggregate codes are also accepted: WLD (World), EUU (European Union), EMU (Euro area), OED (OECD members), LCN (Latin America and Caribbean), SSF (Sub-Saharan Africa), EAS (East Asia and Pacific), MEA (Middle East and North Africa).",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "fmt": {
      "default": "json",
      "description": "Response format, json (default) or csv. Note that csv truncates decimal values to integers, so use json when you need full precision.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "indicator": {
      "default": "gdp_current_usd",
      "description": "Indicator key. The documentation lists 39 keys with these human readable meanings: gdp_current_usd (GDP, current US$), gdp_per_capita_usd (GDP per capita, current US$), gdp_growth_annual (GDP growth, annual %), gni_usd (GNI, Atlas method, current US$), gni_per_capita_usd (GNI per capita, Atlas method, current US$), gni_ppp_usd (GNI, PPP, current international $, from 1990), gni_per_capita_ppp_usd (GNI per capita, PPP, from 1990), gross_capital_formation_percent_gdp, agriculture_value_added_percent_gdp, industry_value_added_percent_gdp, services_value_added_percent_gdp, inflation_consumer_prices_annual, consumer_price_index (2010 = 100), inflation_gdp_deflator_annual, real_interest_rate (stale, last update 2021), net_trades_goods_services, exports_of_goods_services_percent_gdp, imports_of_goods_services_percent_gdp, merchandise_trade_percent_gdp, high_technology_exports_percent_total (from 2007), debt_percent_gdp (limited country coverage), revenue_excluding_grants_percent_gdp, cash_surplus_deficit_percent_gdp (historical, last update 2014), total_debt_service_percent_gni (IBRD and IDA borrowers only), population_total, population_growth_annual, net_migration (5 year totals), life_expectancy, fertility_rate, prevalence_hiv_total, unemployment_total_percent, income_share_lowest_twenty, poverty_poverty_lines_percent_population, market_cap_domestic_companies_percent_gdp, mobile_subscriptions_per_hundred, internet_users_per_hundred (historical, last update 2015), startup_procedures_register (discontinued, final data point 2019), co2_emissions_tons_per_capita (stale, last update 2020) and surface_area_km.",
      "enum": [
        "gdp_current_usd",
        "gdp_per_capita_usd",
        "gdp_growth_annual",
        "gni_usd",
        "gni_per_capita_usd",
        "gni_ppp_usd",
        "gni_per_capita_ppp_usd",
        "gross_capital_formation_percent_gdp",
        "agriculture_value_added_percent_gdp",
        "industry_value_added_percent_gdp",
        "services_value_added_percent_gdp",
        "inflation_consumer_prices_annual",
        "consumer_price_index",
        "inflation_gdp_deflator_annual",
        "real_interest_rate",
        "net_trades_goods_services",
        "exports_of_goods_services_percent_gdp",
        "imports_of_goods_services_percent_gdp",
        "merchandise_trade_percent_gdp",
        "high_technology_exports_percent_total",
        "debt_percent_gdp",
        "revenue_excluding_grants_percent_gdp",
        "cash_surplus_deficit_percent_gdp",
        "total_debt_service_percent_gni",
        "population_total",
        "population_growth_annual",
        "net_migration",
        "life_expectancy",
        "fertility_rate",
        "prevalence_hiv_total",
        "unemployment_total_percent",
        "income_share_lowest_twenty",
        "poverty_poverty_lines_percent_population",
        "market_cap_domestic_companies_percent_gdp",
        "mobile_subscriptions_per_hundred",
        "internet_users_per_hundred",
        "startup_procedures_register",
        "co2_emissions_tons_per_capita",
        "surface_area_km"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "country"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.macro_indicator",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "fundamentals_data_feed"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.015
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Array of annual observations, one per year, ordered from newest to oldest. Empty when there is no data.",
  "items": {
    "description": "One annual observation of the requested indicator.",
    "properties": {
      "CountryCode": {
        "description": "ISO 3166-1 alpha-3 country code, always returned in upper case regardless of the case used in the request.",
        "type": "string"
      },
      "CountryName": {
        "description": "Country name in English, as published by the World Bank.",
        "type": "string"
      },
      "Date": {
        "description": "End of period date in YYYY-MM-DD format, always 12-31 for annual data.",
        "format": "date",
        "type": "string"
      },
      "Indicator": {
        "description": "Human readable indicator name, matching the World Bank WDI indicator name verbatim.",
        "type": "string"
      },
      "Period": {
        "description": "Reporting period. Currently always Annual; no quarterly or monthly series are exposed.",
        "type": "string"
      },
      "Value": {
        "description": "Indicator value. Units depend on the indicator and are reflected in the Indicator name (US$, %, count and so on).",
        "type": [
          "number",
          "null"
        ]
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "country": "FRA",
  "fmt": "json",
  "indicator": "inflation_consumer_prices_annual"
}
Example response
"[{\"CountryCode\": \"FRA\", \"CountryName\": \"France\", \"Indicator\": \"Inflation, consumer prices (annual %)\", \"Date\": \"2024-12-31\", \"Period\": \"Annual\", \"Value\": 1.999}, {\"CountryCode\": \"FRA\", \"CountryName\": \"France\", \"Indicator\": \"Inflation, consumer prices (annual %)\", \"Date\": \"2023-12-31\", \"Period\": \"Annual\", \"Value\": 4.9296}]"
GET/api/mp/investverte/companies
$0.01 default
Description

List the companies covered by the InvestVerte ESG dataset.

Documentation

GET /api/mp/investverte/companies — List the companies covered by the InvestVerte ESG dataset.

Returns the full list of companies for which InvestVerte publishes ESG ratings, as symbol and name pairs. Use it to discover valid symbols before calling the company ESG endpoint. The response is a plain array with no pagination parameters documented.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. Symbols here are bare tickers without the .EXCHANGE suffix used elsewhere in EODHD.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.01 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_esg_companies",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.015
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "List of covered companies.",
  "items": {
    "description": "One covered company.",
    "properties": {
      "name": {
        "description": "Company name in English.",
        "type": "string"
      },
      "symbol": {
        "description": "Company ticker symbol, for example AAPL or 000001.SZ.",
        "type": "string"
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "fmt": "json"
}
Example response
"[{\"symbol\": \"AAPL\", \"name\": \"Apple Inc.\"}, {\"symbol\": \"MSFT\", \"name\": \"Microsoft Corporation\"}]"
GET/api/mp/investverte/countries
$0.01 default
Description

List the countries covered by the InvestVerte ESG dataset.

Documentation

GET /api/mp/investverte/countries — List the countries covered by the InvestVerte ESG dataset.

Returns the list of countries for which aggregated ESG ratings are available, as two letter country code and English description pairs. Use it to discover valid symbols for the country ESG endpoint. No parameters other than authentication are documented.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.01 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_esg_countries",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.015
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "List of covered countries.",
  "items": {
    "description": "One covered country.",
    "properties": {
      "country_code": {
        "description": "Two letter country code, for example US or HK.",
        "type": "string"
      },
      "country_descr": {
        "description": "Country name in English.",
        "type": "string"
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "fmt": "json"
}
Example response
"[{\"country_code\": \"US\", \"country_descr\": \"United States of America\"}, {\"country_code\": \"HK\", \"country_descr\": \"Hong Kong\"}]"
GET/api/mp/investverte/country/{symbol}
$0.03 default
Description

Return aggregated ESG scores for one country, by year and reporting frequency.

Documentation

GET /api/mp/investverte/country/{symbol} — Return aggregated ESG scores for one country, by year and reporting frequency.

Returns the mean and median ESG score for all covered companies in a country, split by year and reporting frequency (full year and quarters). Use it as a benchmark against which individual company ESG scores can be compared. Scores come from the AI model by default; pass model=legacy for the previous dataset.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. The documentation does not state the numeric range of the mean and median scores; the examples sit in a 0 to 100 style band. Omitting year and frequency returns the available history.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "frequency": {
      "description": "Frequency of the data reporting.",
      "enum": [
        "FY",
        "Q1",
        "Q2",
        "Q3",
        "Q4"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "model": {
      "default": "ai",
      "description": "Scoring model to use. ai returns the AI based scores (default), legacy returns the previous dataset.",
      "enum": [
        "ai",
        "legacy"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Country symbol, the two letter country code from the countries endpoint.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "year": {
      "description": "Year of the data.",
      "required": false,
      "type": "number",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_esg_country",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Aggregated country ESG observations.",
  "items": {
    "description": "One country ESG observation for a year and frequency.",
    "properties": {
      "frequency": {
        "description": "Reporting frequency of the observation: FY, Q1, Q2, Q3 or Q4.",
        "type": "string"
      },
      "mean": {
        "description": "Mean ESG score across the covered companies in the country.",
        "type": "number"
      },
      "median": {
        "description": "Median ESG score across the covered companies in the country.",
        "type": "number"
      },
      "name": {
        "description": "Country name in English.",
        "type": "string"
      },
      "symbol": {
        "description": "Country symbol, for example US.",
        "type": "string"
      },
      "year": {
        "description": "Year of the observation.",
        "type": "number"
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "fmt": "json",
  "frequency": "FY",
  "model": "ai",
  "symbol": "US",
  "year": 2014
}
Example response
"[{\"symbol\": \"US\", \"name\": \"United States of America\", \"mean\": 63.23235093094508, \"median\": 64.24, \"year\": 2014, \"frequency\": \"FY\"}, {\"symbol\": \"US\", \"name\": \"United States of America\", \"mean\": 64.18487623762375, \"median\": 64.2, \"year\": 2014, \"frequency\": \"Q1\"}]"
GET/api/mp/investverte/esg/{symbol}
$0.03 default
Description

AI-derived environmental, social, governance and total ESG scores for one company, by year and reporting frequency.

Documentation

GET /api/mp/investverte/esg/{symbol} — AI-derived environmental, social, governance and total ESG scores for one company, by year and reporting frequency.

Returns an array of ESG score records for a company, each with separate E, S and G scores plus an aggregate esg score, tagged with the year and the reporting frequency FY, Q1, Q2, Q3 or Q4. Scores come from an AI and deep learning framework that completes missing datapoints from peer patterns at country, sector and sub-sector level; the previous dataset is still reachable with model=legacy. Sibling paths under the same base cover countries (/country/{symbol}), sectors (/sector/{symbol}) and the available lists (/companies, /countries, /sectors). This is a Marketplace product from Investverte, not part of the core Fundamental Data API.

EODHD call weight: 10; required plans: marketplace_investverte_esg_data.

The current Fundamental Data API documentation no longer lists an ESGScores section in the single-ticker response, so ESG now lives here as a separately priced Marketplace subscription rather than inside fundamentals. Priced at 29.99 per month at the time of writing. Limits are specific to this product: 100,000 API calls per 24 hours, 1,000 requests per minute, and one request costs 10 API calls; the 24-hour period is counted differently from the main EODHD plans. The symbol here is a plain company symbol such as AAPL, not the TICKER.EXCHANGE format used everywhere else in EODHD. No fmt parameter is documented; it is included above only to satisfy the uniform parameter contract.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The published OpenAPI specification for this Marketplace product declares JSON responses only and does not document an fmt parameter.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "frequency": {
      "description": "Frequency of the data reporting.",
      "enum": [
        "FY",
        "Q1",
        "Q2",
        "Q3",
        "Q4"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "model": {
      "default": "ai",
      "description": "Which scoring model to use. Endpoints return the AI model by default; pass legacy for the previous dataset.",
      "enum": [
        "ai",
        "legacy"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Company symbol as listed by the /companies endpoint, for example AAPL.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "year": {
      "description": "Year of the data.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.esg_company_scores",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_investverte_esg_data"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "ESG score records for the requested company.",
  "items": {
    "additionalProperties": true,
    "description": "One ESG score record for a given year and frequency.",
    "properties": {
      "e": {
        "description": "Environmental score.",
        "type": [
          "number",
          "null"
        ]
      },
      "esg": {
        "description": "Aggregate ESG score.",
        "type": [
          "number",
          "null"
        ]
      },
      "frequency": {
        "description": "Reporting frequency of the record: FY, Q1, Q2, Q3 or Q4.",
        "type": [
          "string",
          "null"
        ]
      },
      "g": {
        "description": "Governance score.",
        "type": [
          "number",
          "null"
        ]
      },
      "s": {
        "description": "Social score.",
        "type": [
          "number",
          "null"
        ]
      },
      "year": {
        "description": "Year the record refers to.",
        "type": [
          "number",
          "null"
        ]
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "fmt": "json",
  "frequency": "FY",
  "model": "ai",
  "symbol": "AAPL",
  "year": 2014
}
Example response
"[\n {\n  \"e\": 62.61,\n  \"s\": 68.68,\n  \"g\": 64.65,\n  \"esg\": 65.45,\n  \"year\": 2014,\n  \"frequency\": \"FY\"\n },\n {\n  \"e\": 63.01,\n  \"s\": 68.36,\n  \"g\": 64.59,\n  \"esg\": 65.47,\n  \"year\": 2014,\n  \"frequency\": \"Q1\"\n }\n]"
GET/api/mp/investverte/sector/{symbol}
$0.03 default
Description

Return an ESG score time series for one sector and its parent industries.

Documentation

GET /api/mp/investverte/sector/{symbol} — Return an ESG score time series for one sector and its parent industries.

Returns ESG score series for a sector, keyed by industry name, together with a parallel years array that labels each position in those series. The years labels combine year and frequency, for example 2014-FY or 2014-Q1. Use it to benchmark company scores against their sector over time.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. This is the only ESG endpoint that returns a column oriented shape, so join industry arrays to years by index. Sector names contain spaces and ampersands and must be URL encoded.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "model": {
      "default": "ai",
      "description": "Scoring model to use. ai returns the AI based scores (default), legacy returns the previous dataset.",
      "enum": [
        "ai",
        "legacy"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Sector name from the sectors endpoint.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_esg_sector",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Sector ESG series with aligned period labels.",
  "properties": {
    "find": {
      "description": "Whether the requested sector was found.",
      "type": "boolean"
    },
    "industry": {
      "additionalProperties": {
        "description": "ESG scores for that industry over the periods in years.",
        "items": {
          "description": "ESG score for one period, or null when unavailable.",
          "type": [
            "number",
            "null"
          ]
        },
        "type": "array"
      },
      "description": "ESG score series keyed by industry name. Each array is positionally aligned with the years array.",
      "type": "object"
    },
    "years": {
      "description": "Period labels aligned with each industry series.",
      "items": {
        "description": "Period label combining year and frequency, for example 2014-FY.",
        "type": "string"
      },
      "type": "array"
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "model": "ai",
  "symbol": "Airlines"
}
Example response
"{\"find\": true, \"industry\": {\"Airlines\": [77.46, 77.46, 77.46], \"Transportation\": [null, null, null]}, \"years\": [\"2014-FY\", \"2014-Q1\", \"2014-Q2\"]}"
GET/api/mp/investverte/sectors
$0.01 default
Description

List the sectors covered by the InvestVerte ESG dataset.

Documentation

GET /api/mp/investverte/sectors — List the sectors covered by the InvestVerte ESG dataset.

Returns the list of sector names for which aggregated ESG data is available, for example Aerospace & Defense or Airlines. Use it to discover valid symbols for the sector ESG endpoint. No parameters other than authentication are documented.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.01 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_esg_sectors",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.015
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "List of covered sectors.",
  "items": {
    "description": "One covered sector.",
    "properties": {
      "sector": {
        "description": "Sector name in English.",
        "type": "string"
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "fmt": "json"
}
Example response
"[{\"sector\": \"Aerospace & Defense\"}, {\"sector\": \"Airlines\"}]"
GET/api/mp/praams/analyse/bond/{isin}
$0.05 default
Description

Return PRAAMS risk and return analytics for one bond, looked up by ISIN.

Documentation

GET /api/mp/praams/analyse/bond/{isin} — Return PRAAMS risk and return analytics for one bond, looked up by ISIN.

Returns the bond equivalent of the equity analysis: PRAAMS Ratio, return and risk scores, valuation, performance, market view, profitability, growth momentum and coupon blocks, plus descriptions and executive summaries. Bonds are always addressed by ISIN. Use it to screen credit risk and yield alongside equities in one framework.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. PRAAMS response bodies are wrapped in a standard envelope with success, message, errors and item (or items for collections), and the detailed payload schemas live in the shared component file https://eodhd.com/vendor/marketplace/praams/components.yaml rather than in the endpoint specification. Error codes are non standard: 415 for a wrong token, 420 for a cancelled operation and 430 for data not found. Note that the ticker or ISIN is appended as a path segment after the literal ticker or isin segment. The bond payload replaces the equity analystView and dividend blocks with marketView and coupon. No example response is published in the specification.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "isin": {
      "description": "The ISIN of the bond to retrieve. Demo ISINs: US7593518852 and US91282CJN20.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "isin"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_praams_analyse_bond",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "PRAAMS response envelope.",
  "properties": {
    "errors": {
      "description": "List of errors, or null when the request succeeded.",
      "items": {
        "description": "One error entry.",
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "item": {
      "description": "The main bond analysis payload.",
      "properties": {
        "asset": {
          "description": "Basic asset information such as identifiers, name and market data.",
          "type": "object"
        },
        "coupon": {
          "description": "Coupon information for the bond.",
          "type": "object"
        },
        "description": {
          "description": "Textual descriptions and executive summaries of the asset.",
          "type": "object"
        },
        "growthMomentum": {
          "description": "Growth and momentum metrics.",
          "type": "object"
        },
        "keyFactors": {
          "description": "Key factors driving the risk and return assessment.",
          "type": "object"
        },
        "marketView": {
          "description": "Market view metrics for the bond.",
          "type": "object"
        },
        "performance": {
          "description": "Historical performance metrics.",
          "type": "object"
        },
        "profile": {
          "description": "Company profile information.",
          "type": "object"
        },
        "profitability": {
          "description": "Profitability metrics, margins and return on invested capital versus WACC.",
          "type": "object"
        },
        "scores": {
          "description": "Risk and return scores, including the summarising PRAAMS Ratio, the total return score and the total risk score.",
          "type": "object"
        },
        "valuation": {
          "description": "Valuation multiples and related metrics.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "message": {
      "description": "Human readable status or error message.",
      "type": [
        "string",
        "null"
      ]
    },
    "success": {
      "description": "Whether the request succeeded.",
      "type": "boolean"
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "isin": "US7593518852"
}
GET/api/mp/praams/analyse/equity/isin/{isin}
$0.05 default
Description

Return PRAAMS risk and return analytics for one equity, looked up by ISIN.

Documentation

GET /api/mp/praams/analyse/equity/isin/{isin} — Return PRAAMS risk and return analytics for one equity, looked up by ISIN.

Same equity analysis payload as the ticker variant, addressed by ISIN instead of ticker. Useful when your security master is ISIN based or when a company is listed under several tickers. Returns the PRAAMS Ratio, return and risk scores and the supporting valuation, profitability, growth, dividend and analyst blocks.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. PRAAMS response bodies are wrapped in a standard envelope with success, message, errors and item (or items for collections), and the detailed payload schemas live in the shared component file https://eodhd.com/vendor/marketplace/praams/components.yaml rather than in the endpoint specification. Error codes are non standard: 415 for a wrong token, 420 for a cancelled operation and 430 for data not found. Note that the ticker or ISIN is appended as a path segment after the literal ticker or isin segment. No example response is published in the specification, only a schema reference.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "isin": {
      "description": "The unique ISIN of the asset to retrieve. Demo ISINs: US0378331005, US88160R1014 and US0231351067.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "isin"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_praams_analyse_equity_isin",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "PRAAMS response envelope.",
  "properties": {
    "errors": {
      "description": "List of errors, or null when the request succeeded.",
      "items": {
        "description": "One error entry.",
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "item": {
      "description": "The main equity analysis payload.",
      "properties": {
        "analystView": {
          "description": "Analyst consensus view and price targets.",
          "type": "object"
        },
        "asset": {
          "description": "Basic asset information such as identifiers, name and market data.",
          "type": "object"
        },
        "description": {
          "description": "Textual descriptions and executive summaries of the asset.",
          "type": "object"
        },
        "dividend": {
          "description": "Dividend metrics.",
          "type": "object"
        },
        "growthMomentum": {
          "description": "Growth and momentum metrics.",
          "type": "object"
        },
        "keyFactors": {
          "description": "Key factors driving the risk and return assessment.",
          "type": "object"
        },
        "performance": {
          "description": "Historical performance metrics.",
          "type": "object"
        },
        "profile": {
          "description": "Company profile information.",
          "type": "object"
        },
        "profitability": {
          "description": "Profitability metrics, margins and return on invested capital versus WACC.",
          "type": "object"
        },
        "scores": {
          "description": "Risk and return scores, including the summarising PRAAMS Ratio, the total return score and the total risk score.",
          "type": "object"
        },
        "valuation": {
          "description": "Valuation multiples and related metrics.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "message": {
      "description": "Human readable status or error message.",
      "type": [
        "string",
        "null"
      ]
    },
    "success": {
      "description": "Whether the request succeeded.",
      "type": "boolean"
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "isin": "US0378331005"
}
GET/api/mp/praams/analyse/equity/ticker/{ticker}
$0.05 default
Description

Return PRAAMS risk and return analytics for one equity, looked up by ticker.

Documentation

GET /api/mp/praams/analyse/equity/ticker/{ticker} — Return PRAAMS risk and return analytics for one equity, looked up by ticker.

Returns a full risk and return analysis for a stock, summarising more than 470 metrics into the PRAAMS Ratio plus separate total return and total risk scores. The payload also carries valuation multiples, profitability, growth, dividend, analyst view, default risk, volatility and stress testing and liquidity blocks, with descriptions and executive summaries. Coverage is 120 000+ global equities and bonds.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. PRAAMS response bodies are wrapped in a standard envelope with success, message, errors and item (or items for collections), and the detailed payload schemas live in the shared component file https://eodhd.com/vendor/marketplace/praams/components.yaml rather than in the endpoint specification. Error codes are non standard: 415 for a wrong token, 420 for a cancelled operation and 430 for data not found. Note that the ticker or ISIN is appended as a path segment after the literal ticker or isin segment. No example response is published in the specification, only a schema reference. The specification declares ticker as a path parameter without placing it in the path template; the cURL sample shows it appended after the ticker segment.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "ticker": {
      "description": "The unique ticker symbol of the asset to retrieve. Demo tickers: AAPL, TSLA and AMZN.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "ticker"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_praams_analyse_equity_ticker",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "PRAAMS response envelope.",
  "properties": {
    "errors": {
      "description": "List of errors, or null when the request succeeded.",
      "items": {
        "description": "One error entry.",
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "item": {
      "description": "The main equity analysis payload.",
      "properties": {
        "analystView": {
          "description": "Analyst consensus view and price targets.",
          "type": "object"
        },
        "asset": {
          "description": "Basic asset information such as identifiers, name and market data.",
          "type": "object"
        },
        "description": {
          "description": "Textual descriptions and executive summaries of the asset.",
          "type": "object"
        },
        "dividend": {
          "description": "Dividend metrics.",
          "type": "object"
        },
        "growthMomentum": {
          "description": "Growth and momentum metrics.",
          "type": "object"
        },
        "keyFactors": {
          "description": "Key factors driving the risk and return assessment.",
          "type": "object"
        },
        "performance": {
          "description": "Historical performance metrics.",
          "type": "object"
        },
        "profile": {
          "description": "Company profile information.",
          "type": "object"
        },
        "profitability": {
          "description": "Profitability metrics, margins and return on invested capital versus WACC.",
          "type": "object"
        },
        "scores": {
          "description": "Risk and return scores, including the summarising PRAAMS Ratio, the total return score and the total risk score.",
          "type": "object"
        },
        "valuation": {
          "description": "Valuation multiples and related metrics.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "message": {
      "description": "Human readable status or error message.",
      "type": [
        "string",
        "null"
      ]
    },
    "success": {
      "description": "Whether the request succeeded.",
      "type": "boolean"
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "ticker": "AAPL"
}
GET/api/mp/praams/bank/balance_sheet/isin/{isin}
$0.05 default
Description

Return standardised bank balance sheet data for one bank, looked up by isin.

Documentation

GET /api/mp/praams/bank/balance_sheet/isin/{isin} — Return standardised bank balance sheet data for one bank, looked up by isin.

Returns balance sheet line items for a bank in a standardised, bank specific format that generic company fundamentals do not provide, with annual and quarterly periods in the same collection. Bank specific derived measures such as net interest income, core revenue, income before provision and tax and interest earning assets are computed for you. Good for cross border bank comparison and credit analysis.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. PRAAMS response bodies are wrapped in a standard envelope with success, message, errors and item (or items for collections), and the detailed payload schemas live in the shared component file https://eodhd.com/vendor/marketplace/praams/components.yaml rather than in the endpoint specification. Error codes are non standard: 415 for a wrong token, 420 for a cancelled operation and 430 for data not found. Note that the ticker or ISIN is appended as a path segment after the literal ticker or isin segment. This endpoint returns a collection envelope with items rather than a single item. Values are typed as double in the specification but no currency or scaling unit is documented, so confirm units before comparing banks. No example response is published.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "isin": {
      "description": "The ISIN of the bank. Demo ISINs: US46625H1005, US0605051046 and US9497461015.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "isin"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_praams_bank_balance_isin",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "PRAAMS response envelope.",
  "properties": {
    "errors": {
      "description": "List of errors, or null when the request succeeded.",
      "items": {
        "description": "One error entry.",
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "items": {
      "description": "Collection of returned records.",
      "items": {
        "description": "One reporting period of standardised bank balance sheet data.",
        "properties": {
          "cashAndEquivalents": {
            "description": "The value of cash and cash equivalents held by the bank.",
            "type": "number"
          },
          "date": {
            "description": "The date corresponding to the financial data record.",
            "format": "date-time",
            "type": "string"
          },
          "deposits": {
            "description": "The total amount of deposits held by the bank.",
            "type": "number"
          },
          "depositsWithBanksNet": {
            "description": "The net deposits held with other banking institutions.",
            "type": "number"
          },
          "derivativeAssets": {
            "description": "The value of derivative assets held by the bank.",
            "type": "number"
          },
          "derivativeProductLiabilities": {
            "description": "The liabilities associated with derivative financial products.",
            "type": "number"
          },
          "interestBearingLiabilities": {
            "description": "The total amount of liabilities that incur interest obligations.",
            "type": "number"
          },
          "interestEarningAssets": {
            "description": "The total value of assets that generate interest income.",
            "type": "number"
          },
          "investmentPortfolio": {
            "description": "The aggregated value of the investment portfolio.",
            "type": "number"
          },
          "isQuarter": {
            "description": "Indicates whether the financial data corresponds to a quarter.",
            "type": "boolean"
          },
          "loanProvisions": {
            "description": "The loan provisions, the allowances for potential loan losses.",
            "type": "number"
          },
          "loansGross": {
            "description": "The gross value of loans reported in the balance sheet.",
            "type": "number"
          },
          "longTermDebt": {
            "description": "The long-term debt value reported on the balance sheet.",
            "type": "number"
          },
          "longTermInvestments": {
            "description": "The total value of long-term investments held by the bank.",
            "type": "number"
          },
          "netLoan": {
            "description": "The net loan amount on the balance sheet.",
            "type": "number"
          },
          "otherAssets": {
            "description": "The calculated value of other assets on the balance sheet.",
            "type": "number"
          },
          "otherLiabilities": {
            "description": "The calculated value of other liabilities.",
            "type": "number"
          },
          "payables": {
            "description": "The amount of outstanding payables for the financial entity.",
            "type": "number"
          },
          "period": {
            "description": "The financial reporting period represented in the balance sheet.",
            "type": "string"
          },
          "receivables": {
            "description": "The receivables recorded on the balance sheet.",
            "type": "number"
          },
          "securitiesRepoAssets": {
            "description": "The value of securities held under repurchase agreements.",
            "type": "number"
          },
          "securitiesRepoEquity": {
            "description": "The value of securities sold under repurchase agreements.",
            "type": "number"
          },
          "securityLiabilities": {
            "description": "The total value of liabilities related to securities.",
            "type": "number"
          },
          "shortTermDebt": {
            "description": "The short-term debt amount reported on the balance sheet.",
            "type": "number"
          },
          "totalAssets": {
            "description": "The total value of all assets reported on the balance sheet.",
            "type": "number"
          },
          "totalEquity": {
            "description": "The total equity of the bank as reported in the balance sheet.",
            "type": "number"
          },
          "totalEquityAndLiabilities": {
            "description": "The total amount of equity and liabilities.",
            "type": "number"
          },
          "tradingLiabilities": {
            "description": "The value of liabilities arising from trading activities.",
            "type": "number"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "message": {
      "description": "Human readable status or error message.",
      "type": [
        "string",
        "null"
      ]
    },
    "success": {
      "description": "Whether the request succeeded.",
      "type": "boolean"
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "isin": "US46625H1005"
}
GET/api/mp/praams/bank/balance_sheet/ticker/{ticker}
$0.05 default
Description

Return standardised bank balance sheet data for one bank, looked up by ticker.

Documentation

GET /api/mp/praams/bank/balance_sheet/ticker/{ticker} — Return standardised bank balance sheet data for one bank, looked up by ticker.

Returns balance sheet line items for a bank in a standardised, bank specific format that generic company fundamentals do not provide, with annual and quarterly periods in the same collection. Bank specific derived measures such as net interest income, core revenue, income before provision and tax and interest earning assets are computed for you. Good for cross border bank comparison and credit analysis.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. PRAAMS response bodies are wrapped in a standard envelope with success, message, errors and item (or items for collections), and the detailed payload schemas live in the shared component file https://eodhd.com/vendor/marketplace/praams/components.yaml rather than in the endpoint specification. Error codes are non standard: 415 for a wrong token, 420 for a cancelled operation and 430 for data not found. Note that the ticker or ISIN is appended as a path segment after the literal ticker or isin segment. This endpoint returns a collection envelope with items rather than a single item. Values are typed as double in the specification but no currency or scaling unit is documented, so confirm units before comparing banks. No example response is published.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "ticker": {
      "description": "The ticker symbol for the bank. Demo tickers: JPM, BAC and WFC.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "ticker"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_praams_bank_balance_ticker",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "PRAAMS response envelope.",
  "properties": {
    "errors": {
      "description": "List of errors, or null when the request succeeded.",
      "items": {
        "description": "One error entry.",
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "items": {
      "description": "Collection of returned records.",
      "items": {
        "description": "One reporting period of standardised bank balance sheet data.",
        "properties": {
          "cashAndEquivalents": {
            "description": "The value of cash and cash equivalents held by the bank.",
            "type": "number"
          },
          "date": {
            "description": "The date corresponding to the financial data record.",
            "format": "date-time",
            "type": "string"
          },
          "deposits": {
            "description": "The total amount of deposits held by the bank.",
            "type": "number"
          },
          "depositsWithBanksNet": {
            "description": "The net deposits held with other banking institutions.",
            "type": "number"
          },
          "derivativeAssets": {
            "description": "The value of derivative assets held by the bank.",
            "type": "number"
          },
          "derivativeProductLiabilities": {
            "description": "The liabilities associated with derivative financial products.",
            "type": "number"
          },
          "interestBearingLiabilities": {
            "description": "The total amount of liabilities that incur interest obligations.",
            "type": "number"
          },
          "interestEarningAssets": {
            "description": "The total value of assets that generate interest income.",
            "type": "number"
          },
          "investmentPortfolio": {
            "description": "The aggregated value of the investment portfolio.",
            "type": "number"
          },
          "isQuarter": {
            "description": "Indicates whether the financial data corresponds to a quarter.",
            "type": "boolean"
          },
          "loanProvisions": {
            "description": "The loan provisions, the allowances for potential loan losses.",
            "type": "number"
          },
          "loansGross": {
            "description": "The gross value of loans reported in the balance sheet.",
            "type": "number"
          },
          "longTermDebt": {
            "description": "The long-term debt value reported on the balance sheet.",
            "type": "number"
          },
          "longTermInvestments": {
            "description": "The total value of long-term investments held by the bank.",
            "type": "number"
          },
          "netLoan": {
            "description": "The net loan amount on the balance sheet.",
            "type": "number"
          },
          "otherAssets": {
            "description": "The calculated value of other assets on the balance sheet.",
            "type": "number"
          },
          "otherLiabilities": {
            "description": "The calculated value of other liabilities.",
            "type": "number"
          },
          "payables": {
            "description": "The amount of outstanding payables for the financial entity.",
            "type": "number"
          },
          "period": {
            "description": "The financial reporting period represented in the balance sheet.",
            "type": "string"
          },
          "receivables": {
            "description": "The receivables recorded on the balance sheet.",
            "type": "number"
          },
          "securitiesRepoAssets": {
            "description": "The value of securities held under repurchase agreements.",
            "type": "number"
          },
          "securitiesRepoEquity": {
            "description": "The value of securities sold under repurchase agreements.",
            "type": "number"
          },
          "securityLiabilities": {
            "description": "The total value of liabilities related to securities.",
            "type": "number"
          },
          "shortTermDebt": {
            "description": "The short-term debt amount reported on the balance sheet.",
            "type": "number"
          },
          "totalAssets": {
            "description": "The total value of all assets reported on the balance sheet.",
            "type": "number"
          },
          "totalEquity": {
            "description": "The total equity of the bank as reported in the balance sheet.",
            "type": "number"
          },
          "totalEquityAndLiabilities": {
            "description": "The total amount of equity and liabilities.",
            "type": "number"
          },
          "tradingLiabilities": {
            "description": "The value of liabilities arising from trading activities.",
            "type": "number"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "message": {
      "description": "Human readable status or error message.",
      "type": [
        "string",
        "null"
      ]
    },
    "success": {
      "description": "Whether the request succeeded.",
      "type": "boolean"
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "ticker": "JPM"
}
GET/api/mp/praams/bank/income_statement/isin/{isin}
$0.05 default
Description

Return standardised bank income statement data for one bank, looked up by isin.

Documentation

GET /api/mp/praams/bank/income_statement/isin/{isin} — Return standardised bank income statement data for one bank, looked up by isin.

Returns income statement line items for a bank in a standardised, bank specific format that generic company fundamentals do not provide, with annual and quarterly periods in the same collection. Bank specific derived measures such as net interest income, core revenue, income before provision and tax and interest earning assets are computed for you. Good for cross border bank comparison and credit analysis.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. PRAAMS response bodies are wrapped in a standard envelope with success, message, errors and item (or items for collections), and the detailed payload schemas live in the shared component file https://eodhd.com/vendor/marketplace/praams/components.yaml rather than in the endpoint specification. Error codes are non standard: 415 for a wrong token, 420 for a cancelled operation and 430 for data not found. Note that the ticker or ISIN is appended as a path segment after the literal ticker or isin segment. This endpoint returns a collection envelope with items rather than a single item. Values are typed as double in the specification but no currency or scaling unit is documented, so confirm units before comparing banks. No example response is published.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "isin": {
      "description": "The ISIN of the bank. Demo ISINs: US46625H1005 (JPMorgan Chase & Co), US0605051046 (Bank of America Corporation) and US9497461015 (Wells Fargo & Company).",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "isin"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_praams_bank_income_isin",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "PRAAMS response envelope.",
  "properties": {
    "errors": {
      "description": "List of errors, or null when the request succeeded.",
      "items": {
        "description": "One error entry.",
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "items": {
      "description": "Collection of returned records.",
      "items": {
        "description": "One reporting period of standardised bank income statement data.",
        "properties": {
          "coreRevenue": {
            "description": "The core revenue, the sum of net interest income and net fee and commission.",
            "type": "number"
          },
          "creditLossesProvision": {
            "description": "The provision amount for credit losses in the income statement.",
            "type": "number"
          },
          "date": {
            "description": "The date associated with the income statement data.",
            "format": "date-time",
            "type": "string"
          },
          "dps": {
            "description": "Dividend per share.",
            "type": "number"
          },
          "ibpt": {
            "description": "Income before provision and tax.",
            "type": "number"
          },
          "incomeTaxExpense": {
            "description": "The income tax expense associated with the income statement data.",
            "type": "number"
          },
          "interestExpense": {
            "description": "The interest expense associated with the income statement data.",
            "type": "number"
          },
          "interestIncome": {
            "description": "The interest income reported in the income statement.",
            "type": "number"
          },
          "isQuarter": {
            "description": "Indicates whether the financial data represents quarterly reporting.",
            "type": "boolean"
          },
          "netFeeAndCommission": {
            "description": "The net fee and commission value derived from financial operations.",
            "type": "number"
          },
          "netInterestIncome": {
            "description": "The net interest income for the bank.",
            "type": "number"
          },
          "netProfit": {
            "description": "The net profit value for the financial statement.",
            "type": "number"
          },
          "nonInterestExpenses": {
            "description": "The total non-interest expenses for the financial period.",
            "type": "number"
          },
          "nonRecurringIncome": {
            "description": "The calculated value of non-recurring income.",
            "type": "number"
          },
          "operatingExpenses": {
            "description": "The operating expenses derived from the financial data.",
            "type": "number"
          },
          "otherCashPayments": {
            "description": "The value representing cash payments categorised as other.",
            "type": "number"
          },
          "paymentsOnBehalfEmployee": {
            "description": "The payments made on behalf of employees.",
            "type": "number"
          },
          "period": {
            "description": "The period associated with the financial data reporting.",
            "type": "string"
          },
          "preTaxProfit": {
            "description": "The pre-tax profit derived from income tax expense and net profit.",
            "type": "number"
          },
          "provisioning": {
            "description": "The total provisioning amount in relation to credit loss provisions.",
            "type": "number"
          },
          "ribpt": {
            "description": "Revenue after subtracting operating expenses from core revenue.",
            "type": "number"
          },
          "specialIncomeCharges": {
            "description": "The amount associated with special income charges.",
            "type": "number"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "message": {
      "description": "Human readable status or error message.",
      "type": [
        "string",
        "null"
      ]
    },
    "success": {
      "description": "Whether the request succeeded.",
      "type": "boolean"
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "isin": "US46625H1005"
}
GET/api/mp/praams/bank/income_statement/ticker/{ticker}
$0.05 default
Description

Return standardised bank income statement data for one bank, looked up by ticker.

Documentation

GET /api/mp/praams/bank/income_statement/ticker/{ticker} — Return standardised bank income statement data for one bank, looked up by ticker.

Returns income statement line items for a bank in a standardised, bank specific format that generic company fundamentals do not provide, with annual and quarterly periods in the same collection. Bank specific derived measures such as net interest income, core revenue, income before provision and tax and interest earning assets are computed for you. Good for cross border bank comparison and credit analysis.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. PRAAMS response bodies are wrapped in a standard envelope with success, message, errors and item (or items for collections), and the detailed payload schemas live in the shared component file https://eodhd.com/vendor/marketplace/praams/components.yaml rather than in the endpoint specification. Error codes are non standard: 415 for a wrong token, 420 for a cancelled operation and 430 for data not found. Note that the ticker or ISIN is appended as a path segment after the literal ticker or isin segment. This endpoint returns a collection envelope with items rather than a single item. Values are typed as double in the specification but no currency or scaling unit is documented, so confirm units before comparing banks. No example response is published.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "ticker": {
      "description": "The ticker symbol for the bank. Demo tickers: JPM (JPMorgan Chase & Co), BAC (Bank of America Corporation) and WFC (Wells Fargo & Company).",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "ticker"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_praams_bank_income_ticker",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "PRAAMS response envelope.",
  "properties": {
    "errors": {
      "description": "List of errors, or null when the request succeeded.",
      "items": {
        "description": "One error entry.",
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "items": {
      "description": "Collection of returned records.",
      "items": {
        "description": "One reporting period of standardised bank income statement data.",
        "properties": {
          "coreRevenue": {
            "description": "The core revenue, the sum of net interest income and net fee and commission.",
            "type": "number"
          },
          "creditLossesProvision": {
            "description": "The provision amount for credit losses in the income statement.",
            "type": "number"
          },
          "date": {
            "description": "The date associated with the income statement data.",
            "format": "date-time",
            "type": "string"
          },
          "dps": {
            "description": "Dividend per share.",
            "type": "number"
          },
          "ibpt": {
            "description": "Income before provision and tax.",
            "type": "number"
          },
          "incomeTaxExpense": {
            "description": "The income tax expense associated with the income statement data.",
            "type": "number"
          },
          "interestExpense": {
            "description": "The interest expense associated with the income statement data.",
            "type": "number"
          },
          "interestIncome": {
            "description": "The interest income reported in the income statement.",
            "type": "number"
          },
          "isQuarter": {
            "description": "Indicates whether the financial data represents quarterly reporting.",
            "type": "boolean"
          },
          "netFeeAndCommission": {
            "description": "The net fee and commission value derived from financial operations.",
            "type": "number"
          },
          "netInterestIncome": {
            "description": "The net interest income for the bank.",
            "type": "number"
          },
          "netProfit": {
            "description": "The net profit value for the financial statement.",
            "type": "number"
          },
          "nonInterestExpenses": {
            "description": "The total non-interest expenses for the financial period.",
            "type": "number"
          },
          "nonRecurringIncome": {
            "description": "The calculated value of non-recurring income.",
            "type": "number"
          },
          "operatingExpenses": {
            "description": "The operating expenses derived from the financial data.",
            "type": "number"
          },
          "otherCashPayments": {
            "description": "The value representing cash payments categorised as other.",
            "type": "number"
          },
          "paymentsOnBehalfEmployee": {
            "description": "The payments made on behalf of employees.",
            "type": "number"
          },
          "period": {
            "description": "The period associated with the financial data reporting.",
            "type": "string"
          },
          "preTaxProfit": {
            "description": "The pre-tax profit derived from income tax expense and net profit.",
            "type": "number"
          },
          "provisioning": {
            "description": "The total provisioning amount in relation to credit loss provisions.",
            "type": "number"
          },
          "ribpt": {
            "description": "Revenue after subtracting operating expenses from core revenue.",
            "type": "number"
          },
          "specialIncomeCharges": {
            "description": "The amount associated with special income charges.",
            "type": "number"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "message": {
      "description": "Human readable status or error message.",
      "type": [
        "string",
        "null"
      ]
    },
    "success": {
      "description": "Whether the request succeeded.",
      "type": "boolean"
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "ticker": "JPM"
}
POST/api/mp/praams/explore/bond
$0.05 default
Description

Screen bonds by region, country, sector and risk and return score ranges.

Documentation

POST /api/mp/praams/explore/bond — Screen bonds by region, country, sector and risk and return score ranges.

Screens the PRAAMS universe of 120 000+ instruments and returns an ordered list of peers matching the filter object sent in the request body. Filters are expressed as score ranges (minimum and maximum) on dimensions such as solvency, liquidity, performance, growth momentum, dividends or yield, combined with region, country and sector identifiers. Paging is done with the skip and take query parameters while the filter itself travels in the body.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. PRAAMS response bodies are wrapped in a standard envelope with success, message, errors and item (or items for collections), and the detailed payload schemas live in the shared component file https://eodhd.com/vendor/marketplace/praams/components.yaml rather than in the endpoint specification. Error codes are non standard: 415 for a wrong token, 420 for a cancelled operation and 430 for data not found. Note that the ticker or ISIN is appended as a path segment after the literal ticker or isin segment. This is the only POST endpoint in this group: the filter object (schema BondsPeersRequest) is sent as a JSON request body with Content-Type application/json, and only skip and take are query parameters. The specification does not enumerate the valid country, region and sector identifier numbers, and no example response is published. fmt is not meaningful here since the response is always JSON.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "skip": {
      "description": "The number of records to skip.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "take": {
      "description": "The number of records to retrieve.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_praams_explore_bond",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "PRAAMS screener response envelope.",
  "properties": {
    "item": {
      "description": "The screener result set.",
      "properties": {
        "peers": {
          "description": "Collection of matching peer records, each carrying valuation, performance, profitability, growth momentum, country risk, liquidity, stress test, volatility, solvency, analyst view and dividend blocks plus riskWatch and returnWatch labels.",
          "items": {
            "description": "One matching instrument.",
            "type": "object"
          },
          "type": "array"
        },
        "totalCount": {
          "description": "Total number of items matching the filter, used for pagination.",
          "type": "integer"
        }
      },
      "type": "object"
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "skip": 1,
  "take": 1
}
POST/api/mp/praams/explore/equity
$0.05 default
Description

Screen equities by region, country, sector and risk and return score ranges.

Documentation

POST /api/mp/praams/explore/equity — Screen equities by region, country, sector and risk and return score ranges.

Screens the PRAAMS universe of 120 000+ instruments and returns an ordered list of peers matching the filter object sent in the request body. Filters are expressed as score ranges (minimum and maximum) on dimensions such as solvency, liquidity, performance, growth momentum, dividends or yield, combined with region, country and sector identifiers. Paging is done with the skip and take query parameters while the filter itself travels in the body.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. PRAAMS response bodies are wrapped in a standard envelope with success, message, errors and item (or items for collections), and the detailed payload schemas live in the shared component file https://eodhd.com/vendor/marketplace/praams/components.yaml rather than in the endpoint specification. Error codes are non standard: 415 for a wrong token, 420 for a cancelled operation and 430 for data not found. Note that the ticker or ISIN is appended as a path segment after the literal ticker or isin segment. This is the only POST endpoint in this group: the filter object (schema StocksPeersRequest) is sent as a JSON request body with Content-Type application/json, and only skip and take are query parameters. The specification does not enumerate the valid country, region and sector identifier numbers, and no example response is published. fmt is not meaningful here since the response is always JSON.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "skip": {
      "description": "The number of records to skip.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "take": {
      "description": "The number of records to retrieve.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_praams_explore_equity",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "PRAAMS screener response envelope.",
  "properties": {
    "item": {
      "description": "The screener result set.",
      "properties": {
        "peers": {
          "description": "Collection of matching peer records, each carrying valuation, performance, profitability, growth momentum, country risk, liquidity, stress test, volatility, solvency, analyst view and dividend blocks plus riskWatch and returnWatch labels.",
          "items": {
            "description": "One matching instrument.",
            "type": "object"
          },
          "type": "array"
        },
        "totalCount": {
          "description": "Total number of items matching the filter, used for pagination.",
          "type": "integer"
        }
      },
      "type": "object"
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "skip": 1,
  "take": 1
}
GET/api/mp/praams/reports/bond/{isin}
$0.03 default
Description

Generate and download a multi page PDF bond research report.

Documentation

GET /api/mp/praams/reports/bond/{isin} — Generate and download a multi page PDF bond research report.

Generates a multi page PDF research report for a single bond, built on six return factors and six risk factors, and returns it as a file download. Set isFull to choose between the full and the partial report. The response body is a PDF document rather than JSON, so this endpoint is for delivering research to people, not for machine parsing.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. PRAAMS response bodies are wrapped in a standard envelope with success, message, errors and item (or items for collections), and the detailed payload schemas live in the shared component file https://eodhd.com/vendor/marketplace/praams/components.yaml rather than in the endpoint specification. Error codes are non standard: 415 for a wrong token, 420 for a cancelled operation and 430 for data not found. Note that the ticker or ISIN is appended as a path segment after the literal ticker or isin segment. The email query parameter is required, which is unusual for a read only data API; the report generation flow sends notifications to that address. The response is a PDF, so fmt does not apply. Report generation takes time, so treat this as a slow endpoint.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "email": {
      "description": "The email address to which notifications or confirmations may be sent.",
      "required": true,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "isFull": {
      "description": "Whether the full report or a partial report is required.",
      "required": false,
      "type": "boolean",
      "x-parameter-location": "query"
    },
    "isin": {
      "description": "The ISIN of the bond for which the Bond report is requested.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "isin",
    "email"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_praams_reports_bond",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "contentEncoding": "binary",
  "contentMediaType": "application/pdf",
  "description": "Binary PDF document containing the generated research report. Not a JSON body.",
  "type": "string"
}
Example request
{
  "email": "user@example.com",
  "fmt": "json",
  "isin": "US59018YTM39"
}
GET/api/mp/praams/reports/equity/isin/{isin}
$0.03 default
Description

Generate and download a multi page PDF equity research report.

Documentation

GET /api/mp/praams/reports/equity/isin/{isin} — Generate and download a multi page PDF equity research report.

Generates a multi page PDF research report for a single equity, built on six return factors and six risk factors, and returns it as a file download. Set isFull to choose between the full and the partial report. The response body is a PDF document rather than JSON, so this endpoint is for delivering research to people, not for machine parsing.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. PRAAMS response bodies are wrapped in a standard envelope with success, message, errors and item (or items for collections), and the detailed payload schemas live in the shared component file https://eodhd.com/vendor/marketplace/praams/components.yaml rather than in the endpoint specification. Error codes are non standard: 415 for a wrong token, 420 for a cancelled operation and 430 for data not found. Note that the ticker or ISIN is appended as a path segment after the literal ticker or isin segment. The email query parameter is required, which is unusual for a read only data API; the report generation flow sends notifications to that address. The response is a PDF, so fmt does not apply. Report generation takes time, so treat this as a slow endpoint.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "email": {
      "description": "The email address to which notifications or confirmations may be sent.",
      "required": true,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "isFull": {
      "description": "Whether the full report or a partial report is required.",
      "required": false,
      "type": "boolean",
      "x-parameter-location": "query"
    },
    "isin": {
      "description": "The ISIN of the asset for which the Equity report is requested. Demo ISINs: US0378331005, US88160R1014 and US0231351067.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "isin",
    "email"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_praams_reports_equity_isin",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "contentEncoding": "binary",
  "contentMediaType": "application/pdf",
  "description": "Binary PDF document containing the generated research report. Not a JSON body.",
  "type": "string"
}
Example request
{
  "email": "user@example.com",
  "fmt": "json",
  "isin": "US0378331005"
}
GET/api/mp/praams/reports/equity/ticker/{ticker}
$0.03 default
Description

Generate and download a multi page PDF equity research report.

Documentation

GET /api/mp/praams/reports/equity/ticker/{ticker} — Generate and download a multi page PDF equity research report.

Generates a multi page PDF research report for a single equity, built on six return factors and six risk factors, and returns it as a file download. Set isFull to choose between the full and the partial report. The response body is a PDF document rather than JSON, so this endpoint is for delivering research to people, not for machine parsing.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. PRAAMS response bodies are wrapped in a standard envelope with success, message, errors and item (or items for collections), and the detailed payload schemas live in the shared component file https://eodhd.com/vendor/marketplace/praams/components.yaml rather than in the endpoint specification. Error codes are non standard: 415 for a wrong token, 420 for a cancelled operation and 430 for data not found. Note that the ticker or ISIN is appended as a path segment after the literal ticker or isin segment. The email query parameter is required, which is unusual for a read only data API; the report generation flow sends notifications to that address. The response is a PDF, so fmt does not apply. Report generation takes time, so treat this as a slow endpoint.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "email": {
      "description": "The email address to which notifications or confirmations may be sent.",
      "required": true,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "isFull": {
      "description": "Whether the full report or a partial report is required.",
      "required": false,
      "type": "boolean",
      "x-parameter-location": "query"
    },
    "ticker": {
      "description": "The unique ticker symbol of the asset for which the Equity report is requested. Demo tickers: AAPL, TSLA and AMZN.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "ticker",
    "email"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_praams_reports_equity_ticker",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "contentEncoding": "binary",
  "contentMediaType": "application/pdf",
  "description": "Binary PDF document containing the generated research report. Not a JSON body.",
  "type": "string"
}
Example request
{
  "email": "user@example.com",
  "fmt": "json",
  "ticker": "AAPL"
}
GET/api/mp/tradinghours/markets
$0.03 default
Description

List all trading venues available to your tier with their FinID and MIC.

Documentation

GET /api/mp/tradinghours/markets — List all trading venues available to your tier with their FinID and MIC.

Returns every market covered by the requested access tier, each with the TradingHours FinID that uniquely identifies one distinct trading schedule, the exchange and market names, the segment MIC and the asset type. Start here to resolve a FinID before calling the details or status endpoints. A MIC can be used in place of a FinID and the system will pick the closest matching schedule.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. Sold in three tiers that share the same paths: G20+ Markets (core, 24 markets), Global Equities (extended, 148 equity markets) and Global Equities & Derivatives (all, 900+ markets). Your token is limited to the tier you bought, and group=allowed returns exactly what your subscription covers. The specification declares the response as a bare array while the example shows the same rows wrapped in a data object, so handle both shapes. MICs alone are usually not granular enough to identify a distinct trading schedule, which is why FinIDs exist.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "group": {
      "default": "all",
      "description": "Which group of markets to show. core is the G20+ tier, extended is Global Equities, all is Global Equities and Derivatives, and allowed restricts the result to what your subscription covers.",
      "enum": [
        "core",
        "extended",
        "all",
        "allowed"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_tradinghours_markets",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "List of markets.",
  "items": {
    "description": "One market or trading schedule.",
    "properties": {
      "asset_type": {
        "description": "Asset type traded, for example Securities, or null.",
        "type": [
          "string",
          "null"
        ]
      },
      "exchange": {
        "description": "Exchange name in English.",
        "type": "string"
      },
      "fin_id": {
        "description": "TradingHours FinID, the unique identifier of one distinct trading schedule, for example AE.ADX.",
        "type": "string"
      },
      "group": {
        "description": "Access tier this market belongs to, for example Core or Extended.",
        "type": "string"
      },
      "market": {
        "description": "Market or trading venue name in English.",
        "type": "string"
      },
      "mic": {
        "description": "ISO 10383 segment MIC of the market, for example XADS.",
        "type": "string"
      },
      "products": {
        "description": "Products or securities traded on this schedule, or null.",
        "type": [
          "string",
          "null"
        ]
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "fmt": "json",
  "group": "allowed"
}
Example response
"[{\"fin_id\": \"AE.ADX\", \"exchange\": \"Abu Dhabi Securities Exchange\", \"market\": \"Abu Dhabi Securities Exchange (ADX)\", \"products\": null, \"mic\": \"XADS\", \"asset_type\": \"Securities\", \"group\": \"Extended\"}]"
GET/api/mp/tradinghours/markets/details
$0.03 default
Description

Return static details for one or more markets identified by FinID.

Documentation

GET /api/mp/tradinghours/markets/details — Return static details for one or more markets identified by FinID.

Returns descriptive metadata for a market: country code, exchange and market names, MIC and extended MIC, acronym, asset type, a free text memo, the IANA timezone, the weekend definition and a permanent closure date if any. Use it together with the status endpoint to render human readable market information.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. Sold in three tiers that share the same paths: G20+ Markets (core, 24 markets), Global Equities (extended, 148 equity markets) and Global Equities & Derivatives (all, 900+ markets). Your token is limited to the tier you bought, and group=allowed returns exactly what your subscription covers. fin_id is case insensitive in the documented example (us.nyse in the request, US.NYSE in the response). The parameter accepts several markets in one call, but the documentation does not state the separator or a maximum count.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fin_id": {
      "description": "Which market or markets to show data for, by FinID. A MIC is also accepted and resolves to the closest matching FinID.",
      "required": true,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "fin_id"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_tradinghours_details",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Market detail records.",
  "items": {
    "description": "Static details of one market.",
    "properties": {
      "acronym": {
        "description": "Common acronym of the exchange, for example JPX.",
        "type": "string"
      },
      "asset_type": {
        "description": "Asset type traded, or null.",
        "type": [
          "string",
          "null"
        ]
      },
      "country_code": {
        "description": "Two letter country code of the market, for example JP.",
        "type": "string"
      },
      "exchange": {
        "description": "Exchange name in English.",
        "type": "string"
      },
      "fin_id": {
        "description": "TradingHours FinID of the market, for example JP.JPX.",
        "type": "string"
      },
      "market": {
        "description": "Market or trading venue name in English.",
        "type": "string"
      },
      "memo": {
        "description": "Free text note about the coverage of this schedule.",
        "type": "string"
      },
      "mic": {
        "description": "ISO 10383 MIC of the market.",
        "type": "string"
      },
      "mic_extended": {
        "description": "Extended MIC of the market.",
        "type": "string"
      },
      "permanently_closed": {
        "description": "Date on which the market permanently closed, or null if it is still operating.",
        "format": "date",
        "type": [
          "string",
          "null"
        ]
      },
      "products": {
        "description": "Products or securities traded on this schedule, or null.",
        "type": [
          "string",
          "null"
        ]
      },
      "timezone": {
        "description": "IANA timezone of the market, for example Asia/Tokyo.",
        "type": "string"
      },
      "weekend_definition": {
        "description": "Which days count as the weekend for this market, for example Sat-Sun.",
        "type": "string"
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "fin_id": "us.nyse",
  "fmt": "json"
}
Example response
"[{\"fin_id\": \"US.NYSE\", \"country_code\": \"US\", \"exchange\": \"New York Stock Exchange\", \"market\": \"Canonical\", \"products\": null, \"mic\": \"XNYS\", \"mic_extended\": \"XNYS\", \"acronym\": \"NYSE\", \"asset_type\": null, \"memo\": \"Canonical\", \"permanently_closed\": null, \"timezone\": \"America/New_York\", \"weekend_definition\": \"Sat-Sun\"}]"
GET/api/mp/tradinghours/markets/lookup
$0.02 default
Description

Search markets by exchange name, market name, security description, MIC or country.

Documentation

GET /api/mp/tradinghours/markets/lookup — Search markets by exchange name, market name, security description, MIC or country.

Free text search across market attributes, returning the same market rows as the list endpoint. Use it when you know an exchange or country by name but not its FinID. More than 900 distinct trading schedules are tracked in total, because most exchanges run several schedules for equities, bonds and futures.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. Sold in three tiers that share the same paths: G20+ Markets (core, 24 markets), Global Equities (extended, 148 equity markets) and Global Equities & Derivatives (all, 900+ markets). Your token is limited to the tier you bought, and group=allowed returns exactly what your subscription covers. q is documented as optional, so an empty query behaves like the list endpoint. No pagination parameters are documented.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.02 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "group": {
      "default": "all",
      "description": "Which group of markets to show. core is the G20+ tier, extended is Global Equities, all is Global Equities and Derivatives, and allowed restricts the result to what your subscription covers.",
      "enum": [
        "core",
        "extended",
        "all",
        "allowed"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "q": {
      "description": "Free form search field, matched against exchange name, market name, security description, MIC and country.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_tradinghours_lookup",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.02
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "List of matching markets.",
  "items": {
    "description": "One matching market or trading schedule.",
    "properties": {
      "asset_type": {
        "description": "Asset type traded, for example Securities, or null.",
        "type": [
          "string",
          "null"
        ]
      },
      "exchange": {
        "description": "Exchange name in English.",
        "type": "string"
      },
      "fin_id": {
        "description": "TradingHours FinID, the unique identifier of one distinct trading schedule, for example AE.ADX.",
        "type": "string"
      },
      "group": {
        "description": "Access tier this market belongs to, for example Core or Extended.",
        "type": "string"
      },
      "market": {
        "description": "Market or trading venue name in English.",
        "type": "string"
      },
      "mic": {
        "description": "ISO 10383 segment MIC of the market, for example XADS.",
        "type": "string"
      },
      "products": {
        "description": "Products or securities traded on this schedule, or null.",
        "type": [
          "string",
          "null"
        ]
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "fmt": "json",
  "group": "allowed",
  "q": "hong kong"
}
Example response
"[{\"fin_id\": \"AE.ADX\", \"exchange\": \"Abu Dhabi Securities Exchange\", \"market\": \"Abu Dhabi Securities Exchange (ADX)\", \"products\": null, \"mic\": \"XADS\", \"asset_type\": \"Securities\", \"group\": \"Extended\"}]"
GET/api/mp/tradinghours/markets/status
$0.05 default
Description

Return the real time open or closed status of one or more markets with the next bell time.

Documentation

GET /api/mp/tradinghours/markets/status — Return the real time open or closed status of one or more markets with the next bell time.

Returns the live status of a market: whether it is open or closed, the current trading phase such as a pre or post trading session, the reason when a holiday or irregular schedule applies, the time until which the status is guaranteed and the time of the next opening or closing bell. Good for dashboards, countdowns and for gating trading algorithms. Results are safe to cache until the until timestamp.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. Sold in three tiers that share the same paths: G20+ Markets (core, 24 markets), Global Equities (extended, 148 equity markets) and Global Equities & Derivatives (all, 900+ markets). Your token is limited to the tier you bought, and group=allowed returns exactly what your subscription covers. until is not always the same as next_bell: during a post trading session until marks the end of that session while next_bell is the following official open. The API accounts for scheduled holidays and half days but not for circuit breakers or halts. The time query parameter used by TradingHours directly is not available here; contact tradinghours.com for that. Cache until the until timestamp to stay within the rate limits.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fin_id": {
      "description": "Which market or markets to show data for, by FinID. A MIC is also accepted and resolves to the closest matching FinID.",
      "required": true,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "fin_id"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_tradinghours_status",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Envelope holding market status keyed by FinID.",
  "properties": {
    "data": {
      "additionalProperties": {
        "description": "Live status of one market.",
        "properties": {
          "exchange": {
            "description": "Exchange name in English.",
            "type": "string"
          },
          "fin_id": {
            "description": "TradingHours FinID of the market.",
            "type": "string"
          },
          "market": {
            "description": "Market or trading venue name in English.",
            "type": "string"
          },
          "next_bell": {
            "description": "Timestamp of the next official market open or close bell.",
            "format": "date-time",
            "type": "string"
          },
          "products": {
            "description": "Products or securities traded on this schedule, or null.",
            "type": [
              "string",
              "null"
            ]
          },
          "reason": {
            "description": "Explanation of an irregular status, for example a market holiday or partial session, or null.",
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "description": "Current status of the market, for example Open or Closed.",
            "type": "string"
          },
          "timezone": {
            "description": "IANA timezone of the market.",
            "type": "string"
          },
          "until": {
            "description": "Timestamp until which the current status will not change. Safe to cache the result until this time.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "description": "Market status objects keyed by FinID, for example US.NYSE.",
      "type": "object"
    }
  },
  "type": "object"
}
Example request
{
  "fin_id": "us.nyse",
  "fmt": "json"
}
Example response
"{\"data\": {\"US.NYSE\": {\"fin_id\": \"US.NYSE\", \"exchange\": \"New York Stock Exchange\", \"market\": \"Canonical\", \"products\": null, \"timezone\": \"America/New_York\", \"status\": \"Open\", \"reason\": \"Market Holiday - Primary Trading Session (Partial)\", \"until\": \"2020-11-27T12:45:00-05:00\", \"next_bell\": \"2020-11-27T13:00:00-05:00\"}}}"
GET/api/mp/unicornbay/options/contracts
$0.05 default
Description

List US stock option contracts with quotes, Greeks and open interest, filtered by underlying, expiration, strike and type.

Documentation

GET /api/mp/unicornbay/options/contracts — List US stock option contracts with quotes, Greeks and open interest, filtered by underlying, expiration, strike and type.

Returns a paginated list of US listed option contracts together with their latest end-of-day snapshot: OHLC, bid and ask with sizes, volume, open interest, implied volatility, the theoretical price and the Greeks delta, gamma, theta, vega and rho. Use it to build an option chain for an underlying symbol, to locate a specific contract, or to scan strikes and expirations. Results are filtered with filter[...] parameters, sorted by expiration date or strike, and paged with page[offset] and page[limit] up to a maximum offset of 10000 and 1000 rows per page. This is a separate EODHD Marketplace subscription and is not part of the standard EODHD plans.

EODHD call weight: 10; required plans: marketplace_us_stock_options_subscription.

There is no compact mode on this endpoint; compact is documented only for /options/eod. Sold as a separate EODHD Marketplace subscription from Unicorn Data Services, not included in any standard EODHD plan. Listed price is 29.99 USD per month for the first three months and 39.99 USD per month afterwards. Limits: 100000 API calls per 24 hours, 1000 API requests per minute, and 1 API request equals 10 API calls. The 24 hour window is counted differently for Marketplace products than for the main EODHD plans. The api_token value 'demo' works for AAPL only. Coverage is US listed options on over 6000 top traded underlying symbols with roughly two years of history, and null is returned where a value is unavailable. The predecessor endpoint GET /api/options/{symbol} is deprecated: it still resolves but responds with 'Forbidden. You have no access to Options Data Feed.', its documentation page has been removed, and https://eodhd.com/financial-apis/options-data-api now redirects to the Marketplace product page. The OpenAPI document declares server /api/mp/unicornbay, so the live base path is https://eodhd.com/api/mp/unicornbay/options/... . Note that the 'next' links inside responses are rendered without the /api prefix as https://eodhd.com/mp/unicornbay/options/... , so prefer rebuilding the URL from page[offset] and page[limit]. The spec does not document an fmt parameter for the Marketplace options endpoints; responses are JSON.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fields[options-contracts]": {
      "description": "Comma separated list of attribute names to include in the response, which shrinks the payload.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[contract]": {
      "description": "Filter options contracts by specific contract name or identifier.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[exp_date_eq]": {
      "description": "Filter options contracts that expire on the exact given date (format YYYY-MM-DD).",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[exp_date_from]": {
      "description": "Filter options contracts with expiration dates from the specified date onwards (format YYYY-MM-DD).",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[exp_date_to]": {
      "description": "Filter options contracts with expiration dates up to the specified date (format YYYY-MM-DD).",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[strike_eq]": {
      "description": "Filter options contracts by an exact strike price.",
      "required": false,
      "type": "number",
      "x-parameter-location": "query"
    },
    "filter[strike_from]": {
      "description": "Filter options contracts with strike prices from the specified value onwards.",
      "required": false,
      "type": "number",
      "x-parameter-location": "query"
    },
    "filter[strike_to]": {
      "description": "Filter options contracts with strike prices up to the specified value.",
      "required": false,
      "type": "number",
      "x-parameter-location": "query"
    },
    "filter[tradetime_eq]": {
      "description": "Filter options contracts with a trade time on the exact given date (format YYYY-MM-DD). Added in the March 2025 update.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[tradetime_from]": {
      "description": "Filter options contracts with a trade time from the specified date onwards (format YYYY-MM-DD).",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[tradetime_to]": {
      "description": "Filter options contracts with a trade time up to the specified date (format YYYY-MM-DD).",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[type]": {
      "description": "Filter options contracts by type.",
      "enum": [
        "put",
        "call"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[underlying_symbol]": {
      "description": "Filter options contracts based on the underlying asset's symbol (for example 'AAPL' for Apple).",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Output format. The Marketplace options specification does not document this parameter; the endpoint returns JSON.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "page[limit]": {
      "default": 1000,
      "description": "Maximum number of results to return per page. Default and maximum value is 1000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "page[offset]": {
      "default": 0,
      "description": "Offset for pagination, specifying the starting point of the results. Maximum is 10000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "sort": {
      "description": "Sorting order of the results. A leading minus sign reverses the direction.",
      "enum": [
        "exp_date",
        "strike",
        "-exp_date",
        "-strike"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.options_contracts",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_us_stock_options_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "JSON:API style envelope with meta, data and links.",
  "properties": {
    "data": {
      "description": "List of returned resources.",
      "items": {
        "description": "One resource object.",
        "properties": {
          "attributes": {
            "description": "The option contract data fields.",
            "properties": {
              "ask": {
                "description": "Current ask price.",
                "type": "number"
              },
              "ask_date": {
                "description": "Timestamp of the ask price.",
                "format": "date-time",
                "type": "string"
              },
              "ask_size": {
                "description": "Size of the ask.",
                "type": "number"
              },
              "bid": {
                "description": "Current bid price.",
                "type": "number"
              },
              "bid_date": {
                "description": "Timestamp of the bid price.",
                "format": "date-time",
                "type": "string"
              },
              "bid_size": {
                "description": "Size of the bid.",
                "type": "integer"
              },
              "change": {
                "description": "Price change versus the previous close.",
                "type": "number"
              },
              "contract": {
                "description": "Contract identifier (OCC style option symbol).",
                "type": "string"
              },
              "currency": {
                "description": "Currency of the contract.",
                "type": "string"
              },
              "delta": {
                "description": "Delta of the contract, the sensitivity of price to the underlying price.",
                "type": "number"
              },
              "dte": {
                "description": "Days to expiration.",
                "type": "integer"
              },
              "exchange": {
                "description": "Exchange where the contract is traded.",
                "type": "string"
              },
              "exp_date": {
                "description": "Expiration date of the contract.",
                "format": "date",
                "type": "string"
              },
              "expiration_type": {
                "description": "Expiration type of the contract (for example monthly, weekly).",
                "type": "string"
              },
              "gamma": {
                "description": "Gamma of the contract, the rate of change of delta.",
                "type": "number"
              },
              "high": {
                "description": "Highest price.",
                "type": "number"
              },
              "last": {
                "description": "Last traded price.",
                "type": "number"
              },
              "last_size": {
                "description": "Size of the last trade.",
                "type": "number"
              },
              "low": {
                "description": "Lowest price.",
                "type": "number"
              },
              "midpoint": {
                "description": "Midpoint between bid and ask.",
                "type": "number"
              },
              "moneyness": {
                "description": "Moneyness of the option, a measure of how far in or out of the money it is.",
                "type": "number"
              },
              "open": {
                "description": "Opening price.",
                "type": "number"
              },
              "open_interest": {
                "description": "Open interest in the contract.",
                "type": "number"
              },
              "open_interest_change": {
                "description": "Change in open interest.",
                "type": "number"
              },
              "open_interest_pctchange": {
                "description": "Percentage change in open interest.",
                "type": "number"
              },
              "pctchange": {
                "description": "Percentage change in price.",
                "type": "number"
              },
              "previous": {
                "description": "Previous close price.",
                "type": "number"
              },
              "previous_date": {
                "description": "Date of the previous close price.",
                "format": "date",
                "type": "string"
              },
              "rho": {
                "description": "Rho of the contract, the sensitivity to interest rates.",
                "type": "number"
              },
              "strike": {
                "description": "Strike price of the contract.",
                "type": "number"
              },
              "theoretical": {
                "description": "Theoretical price of the contract.",
                "type": "number"
              },
              "theta": {
                "description": "Theta of the contract, the time decay per day.",
                "type": "number"
              },
              "tradetime": {
                "description": "Date of the last recorded market activity for this contract, which is not always an actual trade.",
                "format": "date",
                "type": "string"
              },
              "type": {
                "description": "Contract type (call or put).",
                "type": "string"
              },
              "underlying_symbol": {
                "description": "Symbol of the underlying asset.",
                "type": "string"
              },
              "vega": {
                "description": "Vega of the contract, the sensitivity to implied volatility.",
                "type": "number"
              },
              "vol_oi_ratio": {
                "description": "Ratio of volume to open interest.",
                "type": "number"
              },
              "volatility": {
                "description": "Implied volatility of the contract.",
                "type": "number"
              },
              "volatility_change": {
                "description": "Change in implied volatility.",
                "type": "number"
              },
              "volatility_pctchange": {
                "description": "Percentage change in implied volatility.",
                "type": "number"
              },
              "volume": {
                "description": "Trading volume.",
                "type": "number"
              },
              "volume_change": {
                "description": "Change in trading volume.",
                "type": "number"
              },
              "volume_pctchange": {
                "description": "Percentage change in trading volume.",
                "type": "number"
              }
            },
            "type": "object"
          },
          "id": {
            "description": "Unique identifier of the resource.",
            "type": "string"
          },
          "type": {
            "description": "Resource type, always 'options-contracts' for this endpoint.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "links": {
      "description": "Pagination links.",
      "properties": {
        "next": {
          "description": "URL for the next page of results, or null when there are no more pages.",
          "examples": [
            "https://eodhd.com/mp/unicornbay/options/contracts?filter[underlying_symbol]=AAPL&sort=-exp_date&page[limit]=1&page[offset]=1"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "meta": {
      "description": "Metadata about the current page of results.",
      "properties": {
        "fields": {
          "description": "List of attribute names present in the response.",
          "items": {
            "description": "Attribute name.",
            "type": "string"
          },
          "type": "array"
        },
        "limit": {
          "description": "Maximum number of records per page.",
          "type": "integer"
        },
        "offset": {
          "description": "Offset of the first returned record.",
          "type": "integer"
        },
        "total": {
          "description": "Total number of records available for the query.",
          "type": "integer"
        }
      },
      "type": "object"
    }
  },
  "required": [
    "meta",
    "data",
    "links"
  ],
  "type": "object"
}
Example request
{
  "fields[options-contracts]": "contract,exp_date,strike",
  "filter[contract]": "AAPL270115P00450000",
  "filter[exp_date_eq]": "2025-03-19",
  "filter[exp_date_from]": "2025-01-01",
  "filter[exp_date_to]": "2025-06-01",
  "filter[strike_eq]": 125.0,
  "filter[strike_from]": 120.0,
  "filter[strike_to]": 130.0,
  "filter[tradetime_eq]": "2025-03-19",
  "filter[tradetime_from]": "2025-01-01",
  "filter[tradetime_to]": "2025-06-01",
  "filter[type]": "call",
  "filter[underlying_symbol]": "AAPL",
  "fmt": "json",
  "page[limit]": 50,
  "page[offset]": 10,
  "sort": "exp_date"
}
Example response
"{\"meta\": {\"offset\": 0, \"limit\": 1, \"total\": 10552, \"fields\": [\"contract\", \"underlying_symbol\", \"exp_date\", \"type\", \"strike\"]}, \"data\": [{\"id\": \"AAPL270115C00450000\", \"type\": \"options-contracts\", \"attributes\": {\"contract\": \"AAPL270115C00450000\", \"underlying_symbol\": \"AAPL\", \"exp_date\": \"2027-01-15\", \"expiration_type\": \"monthly\", \"type\": \"call\", \"strike\": 450, \"exchange\": \"NASDAQ\", \"currency\": \"USD\", \"open\": 1.17, \"high\": 1.2, \"low\": 1.04, \"last\": 1.06, \"bid\": 1.05, \"ask\": 1.15, \"volume\": 692, \"open_interest\": 11638, \"volatility\": 0.2343, \"delta\": 0.040051, \"gamma\": 0.001174, \"theta\": -0.005183, \"vega\": 0.269504, \"rho\": 0.155196, \"tradetime\": \"2025-01-24\", \"dte\": 720, \"midpoint\": 1.1}}], \"links\": {\"next\": \"https://eodhd.com/mp/unicornbay/options/contracts?filter[underlying_symbol]=AAPL&sort=-exp_date&page[limit]=1&page[offset]=1\"}}"
GET/api/mp/unicornbay/options/eod
$0.05 default
Description

Return the end-of-day history of quotes, volume, open interest and Greeks for US stock option contracts.

Documentation

GET /api/mp/unicornbay/options/eod — Return the end-of-day history of quotes, volume, open interest and Greeks for US stock option contracts.

Returns all available end-of-day trade and bid/ask records for option contracts, one record per contract per day, with the same 43 attribute fields as the contracts endpoint. Use it for backtesting, implied volatility time series, open interest history and daily Greek evolution over the roughly two year history. It supports the same filter[...], sort, page[offset] and page[limit] parameters plus compact=1, which drops the field names and returns each row as a positional array to cut bandwidth. This is a separate EODHD Marketplace subscription and is not part of the standard EODHD plans.

EODHD call weight: 10; required plans: marketplace_us_stock_options_subscription.

In compact mode the response_schema above does not apply to data: each element is an array of scalar values ordered exactly as meta.fields, for example ["AAPL270115P00450000",0,0,0,224,"2025-01-24 20:59:59"]. The tradetime field is the date of the last recorded market activity and is not always an executed trade: a real trade is indicated by volume greater than zero together with a non zero last price, otherwise tradetime reflects the last bid/ask or open interest update. Sold as a separate EODHD Marketplace subscription from Unicorn Data Services, not included in any standard EODHD plan. Listed price is 29.99 USD per month for the first three months and 39.99 USD per month afterwards. Limits: 100000 API calls per 24 hours, 1000 API requests per minute, and 1 API request equals 10 API calls. The 24 hour window is counted differently for Marketplace products than for the main EODHD plans. The api_token value 'demo' works for AAPL only. Coverage is US listed options on over 6000 top traded underlying symbols with roughly two years of history, and null is returned where a value is unavailable. The predecessor endpoint GET /api/options/{symbol} is deprecated: it still resolves but responds with 'Forbidden. You have no access to Options Data Feed.', its documentation page has been removed, and https://eodhd.com/financial-apis/options-data-api now redirects to the Marketplace product page. The OpenAPI document declares server /api/mp/unicornbay, so the live base path is https://eodhd.com/api/mp/unicornbay/options/... . Note that the 'next' links inside responses are rendered without the /api prefix as https://eodhd.com/mp/unicornbay/options/... , so prefer rebuilding the URL from page[offset] and page[limit]. The spec does not document an fmt parameter for the Marketplace options endpoints; responses are JSON.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "compact": {
      "default": false,
      "description": "Enables compact mode. With compact=1 each element of data is a positional array of values in the order given by meta.fields instead of an object with attributes.",
      "required": false,
      "type": "boolean",
      "x-parameter-location": "query"
    },
    "fields[options-eod]": {
      "description": "Comma separated list of attribute names to include in the response, which shrinks the payload.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[contract]": {
      "description": "Filter options contracts by specific contract name or identifier.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[exp_date_eq]": {
      "description": "Filter options contracts that expire on the exact given date (format YYYY-MM-DD).",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[exp_date_from]": {
      "description": "Filter options contracts with expiration dates from the specified date onwards (format YYYY-MM-DD).",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[exp_date_to]": {
      "description": "Filter options contracts with expiration dates up to the specified date (format YYYY-MM-DD).",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[strike_eq]": {
      "description": "Filter options contracts by an exact strike price.",
      "required": false,
      "type": "number",
      "x-parameter-location": "query"
    },
    "filter[strike_from]": {
      "description": "Filter options contracts with strike prices from the specified value onwards.",
      "required": false,
      "type": "number",
      "x-parameter-location": "query"
    },
    "filter[strike_to]": {
      "description": "Filter options contracts with strike prices up to the specified value.",
      "required": false,
      "type": "number",
      "x-parameter-location": "query"
    },
    "filter[tradetime_eq]": {
      "description": "Filter options contracts with a trade time on the exact given date (format YYYY-MM-DD). Added in the March 2025 update.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[tradetime_from]": {
      "description": "Filter options contracts with a trade time from the specified date onwards (format YYYY-MM-DD).",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[tradetime_to]": {
      "description": "Filter options contracts with a trade time up to the specified date (format YYYY-MM-DD).",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[type]": {
      "description": "Filter options contracts by type.",
      "enum": [
        "put",
        "call"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[underlying_symbol]": {
      "description": "Filter options contracts based on the underlying asset's symbol (for example 'AAPL' for Apple).",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Output format. The Marketplace options specification does not document this parameter; the endpoint returns JSON.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "page[limit]": {
      "default": 1000,
      "description": "Maximum number of results to return per page. Default and maximum value is 1000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "page[offset]": {
      "default": 0,
      "description": "Offset for pagination, specifying the starting point of the results. Maximum is 10000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "sort": {
      "description": "Sorting order of the results. A leading minus sign reverses the direction.",
      "enum": [
        "exp_date",
        "strike",
        "-exp_date",
        "-strike"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.options_eod",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_us_stock_options_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "JSON:API style envelope with meta, data and links.",
  "properties": {
    "data": {
      "description": "List of returned resources.",
      "items": {
        "description": "One resource object.",
        "properties": {
          "attributes": {
            "description": "The option contract data fields.",
            "properties": {
              "ask": {
                "description": "Current ask price.",
                "type": "number"
              },
              "ask_date": {
                "description": "Timestamp of the ask price.",
                "format": "date-time",
                "type": "string"
              },
              "ask_size": {
                "description": "Size of the ask.",
                "type": "number"
              },
              "bid": {
                "description": "Current bid price.",
                "type": "number"
              },
              "bid_date": {
                "description": "Timestamp of the bid price.",
                "format": "date-time",
                "type": "string"
              },
              "bid_size": {
                "description": "Size of the bid.",
                "type": "integer"
              },
              "change": {
                "description": "Price change versus the previous close.",
                "type": "number"
              },
              "contract": {
                "description": "Contract identifier (OCC style option symbol).",
                "type": "string"
              },
              "currency": {
                "description": "Currency of the contract.",
                "type": "string"
              },
              "delta": {
                "description": "Delta of the contract, the sensitivity of price to the underlying price.",
                "type": "number"
              },
              "dte": {
                "description": "Days to expiration.",
                "type": "integer"
              },
              "exchange": {
                "description": "Exchange where the contract is traded.",
                "type": "string"
              },
              "exp_date": {
                "description": "Expiration date of the contract.",
                "format": "date",
                "type": "string"
              },
              "expiration_type": {
                "description": "Expiration type of the contract (for example monthly, weekly).",
                "type": "string"
              },
              "gamma": {
                "description": "Gamma of the contract, the rate of change of delta.",
                "type": "number"
              },
              "high": {
                "description": "Highest price.",
                "type": "number"
              },
              "last": {
                "description": "Last traded price.",
                "type": "number"
              },
              "last_size": {
                "description": "Size of the last trade.",
                "type": "number"
              },
              "low": {
                "description": "Lowest price.",
                "type": "number"
              },
              "midpoint": {
                "description": "Midpoint between bid and ask.",
                "type": "number"
              },
              "moneyness": {
                "description": "Moneyness of the option, a measure of how far in or out of the money it is.",
                "type": "number"
              },
              "open": {
                "description": "Opening price.",
                "type": "number"
              },
              "open_interest": {
                "description": "Open interest in the contract.",
                "type": "number"
              },
              "open_interest_change": {
                "description": "Change in open interest.",
                "type": "number"
              },
              "open_interest_pctchange": {
                "description": "Percentage change in open interest.",
                "type": "number"
              },
              "pctchange": {
                "description": "Percentage change in price.",
                "type": "number"
              },
              "previous": {
                "description": "Previous close price.",
                "type": "number"
              },
              "previous_date": {
                "description": "Date of the previous close price.",
                "format": "date",
                "type": "string"
              },
              "rho": {
                "description": "Rho of the contract, the sensitivity to interest rates.",
                "type": "number"
              },
              "strike": {
                "description": "Strike price of the contract.",
                "type": "number"
              },
              "theoretical": {
                "description": "Theoretical price of the contract.",
                "type": "number"
              },
              "theta": {
                "description": "Theta of the contract, the time decay per day.",
                "type": "number"
              },
              "tradetime": {
                "description": "Date of the last recorded market activity for this contract, which is not always an actual trade.",
                "format": "date",
                "type": "string"
              },
              "type": {
                "description": "Contract type (call or put).",
                "type": "string"
              },
              "underlying_symbol": {
                "description": "Symbol of the underlying asset.",
                "type": "string"
              },
              "vega": {
                "description": "Vega of the contract, the sensitivity to implied volatility.",
                "type": "number"
              },
              "vol_oi_ratio": {
                "description": "Ratio of volume to open interest.",
                "type": "number"
              },
              "volatility": {
                "description": "Implied volatility of the contract.",
                "type": "number"
              },
              "volatility_change": {
                "description": "Change in implied volatility.",
                "type": "number"
              },
              "volatility_pctchange": {
                "description": "Percentage change in implied volatility.",
                "type": "number"
              },
              "volume": {
                "description": "Trading volume.",
                "type": "number"
              },
              "volume_change": {
                "description": "Change in trading volume.",
                "type": "number"
              },
              "volume_pctchange": {
                "description": "Percentage change in trading volume.",
                "type": "number"
              }
            },
            "type": "object"
          },
          "id": {
            "description": "Unique identifier of the resource.",
            "type": "string"
          },
          "type": {
            "description": "Resource type, always 'options-eod' for this endpoint.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "links": {
      "description": "Pagination links.",
      "properties": {
        "next": {
          "description": "URL for the next page of results, or null when there are no more pages.",
          "examples": [
            "https://eodhd.com/mp/unicornbay/options/eod?filter[underlying_symbol]=AAPL&sort=-exp_date&page[limit]=1&page[offset]=1&compact=0"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "meta": {
      "description": "Metadata about the current page of results.",
      "properties": {
        "fields": {
          "description": "List of attribute names present in the response.",
          "items": {
            "description": "Attribute name.",
            "type": "string"
          },
          "type": "array"
        },
        "limit": {
          "description": "Maximum number of records per page.",
          "type": "integer"
        },
        "offset": {
          "description": "Offset of the first returned record.",
          "type": "integer"
        },
        "total": {
          "description": "Total number of records available for the query.",
          "type": "integer"
        }
      },
      "type": "object"
    }
  },
  "required": [
    "meta",
    "data",
    "links"
  ],
  "type": "object"
}
Example request
{
  "compact": 1,
  "fields[options-eod]": "contract,exp_date,strike",
  "filter[contract]": "AAPL270115P00450000",
  "filter[exp_date_eq]": "2025-03-19",
  "filter[exp_date_from]": "2025-01-01",
  "filter[exp_date_to]": "2025-06-01",
  "filter[strike_eq]": 125.0,
  "filter[strike_from]": 120.0,
  "filter[strike_to]": 130.0,
  "filter[tradetime_eq]": "2025-03-19",
  "filter[tradetime_from]": "2025-01-01",
  "filter[tradetime_to]": "2025-06-01",
  "filter[type]": "call",
  "filter[underlying_symbol]": "AAPL",
  "fmt": "json",
  "page[limit]": 50,
  "page[offset]": 10,
  "sort": "exp_date"
}
Example response
"{\"meta\": {\"offset\": 0, \"limit\": 1, \"total\": 724056, \"fields\": [\"contract\", \"underlying_symbol\", \"exp_date\"]}, \"data\": [{\"id\": \"AAPL270115P00450000-2025-01-24\", \"type\": \"options-eod\", \"attributes\": {\"contract\": \"AAPL270115P00450000\", \"underlying_symbol\": \"AAPL\", \"exp_date\": \"2027-01-15\", \"expiration_type\": \"monthly\", \"type\": \"put\", \"strike\": 450, \"exchange\": \"NASDAQ\", \"currency\": \"USD\", \"open\": 0, \"high\": 0, \"low\": 0, \"last\": 224, \"last_size\": 0, \"previous\": 0, \"previous_date\": null, \"bid\": 225.2, \"bid_date\": \"2025-01-24 20:59:59\", \"bid_size\": 15, \"ask\": 229.05, \"ask_date\": \"2025-01-24 20:59:59\", \"ask_size\": 7, \"moneyness\": 1.02, \"volume\": 0, \"open_interest\": 0, \"volatility\": 0.4711, \"theoretical\": 229.05, \"delta\": -0.891269, \"gamma\": 0.00123, \"theta\": -0.007702, \"vega\": 0.452044, \"rho\": -0.999999, \"tradetime\": \"2025-01-22\", \"vol_oi_ratio\": 0, \"dte\": 720, \"midpoint\": 227.13}}], \"links\": {\"next\": \"https://eodhd.com/mp/unicornbay/options/eod?filter[underlying_symbol]=AAPL&sort=-exp_date&page[limit]=1&page[offset]=1&compact=0\"}}"
GET/api/mp/unicornbay/options/underlying-symbols
$0.03 default
Description

List every US stock ticker for which option contracts are available in the options dataset.

Documentation

GET /api/mp/unicornbay/options/underlying-symbols — List every US stock ticker for which option contracts are available in the options dataset.

Returns the full list of underlying stock symbols covered by the US Stock Options Data API, as a flat array of ticker strings inside a meta/data/links envelope. Use it to discover the supported universe before querying contracts or end-of-day option data, or to validate a ticker. The live response currently reports roughly 6900 symbols and takes no filter or pagination parameters. This is a separate EODHD Marketplace subscription and is not part of the standard EODHD plans.

EODHD call weight: 10; required plans: marketplace_us_stock_options_subscription.

The documented example shows meta.total of 3, but a live call with the demo token returned meta.total of 6947, matching the advertised coverage of over 6000 top traded symbols. The docs also link a CSV list of covered tickers from the product page. Sold as a separate EODHD Marketplace subscription from Unicorn Data Services, not included in any standard EODHD plan. Listed price is 29.99 USD per month for the first three months and 39.99 USD per month afterwards. Limits: 100000 API calls per 24 hours, 1000 API requests per minute, and 1 API request equals 10 API calls. The 24 hour window is counted differently for Marketplace products than for the main EODHD plans. The api_token value 'demo' works for AAPL only. Coverage is US listed options on over 6000 top traded underlying symbols with roughly two years of history, and null is returned where a value is unavailable. The predecessor endpoint GET /api/options/{symbol} is deprecated: it still resolves but responds with 'Forbidden. You have no access to Options Data Feed.', its documentation page has been removed, and https://eodhd.com/financial-apis/options-data-api now redirects to the Marketplace product page. The OpenAPI document declares server /api/mp/unicornbay, so the live base path is https://eodhd.com/api/mp/unicornbay/options/... . Note that the 'next' links inside responses are rendered without the /api prefix as https://eodhd.com/mp/unicornbay/options/... , so prefer rebuilding the URL from page[offset] and page[limit]. The spec does not document an fmt parameter for the Marketplace options endpoints; responses are JSON.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Output format. The Marketplace options specification does not document this parameter; the endpoint returns JSON.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.options_underlying_symbols",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_us_stock_options_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Envelope containing the list of supported underlying symbols.",
  "properties": {
    "data": {
      "description": "The list of supported underlying stock tickers.",
      "items": {
        "description": "An underlying stock ticker, for example AAPL.",
        "type": "string"
      },
      "type": "array"
    },
    "links": {
      "description": "Navigation links for paginated responses.",
      "properties": {
        "next": {
          "description": "The URL for the next page of results, or null if there are no more pages.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "meta": {
      "description": "Metadata about the response.",
      "properties": {
        "compact": {
          "description": "Indicates whether the response is in compact format.",
          "type": "boolean"
        },
        "fields": {
          "description": "A list of fields included in the response.",
          "items": {
            "description": "Field name, in practice 'underlying_symbol'.",
            "type": "string"
          },
          "type": "array"
        },
        "total": {
          "description": "The total number of items available.",
          "type": "integer"
        }
      },
      "type": "object"
    }
  },
  "required": [
    "meta",
    "data",
    "links"
  ],
  "type": "object"
}
Example request
{
  "fmt": "json"
}
Example response
"{\"meta\": {\"total\": 3, \"fields\": [\"underlying_symbol\"], \"compact\": true}, \"data\": [\"AAPL\", \"MSFT\", \"NVDA\"], \"links\": {\"next\": null}}"
GET/api/mp/unicornbay/spglobal/comp/{symbol}
$0.05 default
Description

Return current and historical constituents of one S&P or Dow Jones index.

Documentation

GET /api/mp/unicornbay/spglobal/comp/{symbol} — Return current and historical constituents of one S&P or Dow Jones index.

Returns the current component list of an index plus, for about 30 major S&P and Dow Jones indices, 2 to 12 years of historical membership changes with the start and end date of every addition and removal. Each historical record is flagged with IsActiveNow (still in the index) and IsDelisted (still traded at all). This is the dataset to use for survivorship bias free index backtests.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. Components and HistoricalTickerComponents are objects keyed by stringified integers, not arrays, so iterate over values rather than indexing. The constituent count for a date can differ by a few names from the index headline size because multiple share classes count as separate listings and corporate actions create transitional periods; the S&P 500 typically returns 500 to 505. For minor indices data completeness varies and historical changes may be absent.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Index symbol, as returned by the list endpoint.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_spglobal_components",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Index fundamentals with current components and historical membership records.",
  "properties": {
    "Components": {
      "additionalProperties": {
        "description": "One current component.",
        "properties": {
          "Code": {
            "description": "Component ticker code, for example NEM.",
            "type": "string"
          },
          "Exchange": {
            "description": "Exchange code of the component, for example US.",
            "type": "string"
          },
          "Industry": {
            "description": "Industry of the component, or null.",
            "type": [
              "string",
              "null"
            ]
          },
          "Name": {
            "description": "Company name in English.",
            "type": "string"
          },
          "Sector": {
            "description": "Sector of the component, or null.",
            "type": [
              "string",
              "null"
            ]
          },
          "Weight": {
            "description": "Weight of the component in the index, or null.",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "description": "Current index components, keyed by a stringified running index such as \"0\", \"1\".",
      "type": "object"
    },
    "General": {
      "description": "Index ticker fundamental data.",
      "properties": {
        "Code": {
          "description": "Index code.",
          "type": "string"
        },
        "CountryISO": {
          "description": "ISO country code, or NA when unknown.",
          "type": "string"
        },
        "CountryName": {
          "description": "Country name, or Unknown for global indices.",
          "type": "string"
        },
        "CurrencyCode": {
          "description": "Currency code, for example USD.",
          "type": "string"
        },
        "CurrencyName": {
          "description": "Currency name in English.",
          "type": "string"
        },
        "CurrencySymbol": {
          "description": "Currency symbol, for example $.",
          "type": "string"
        },
        "Exchange": {
          "description": "Exchange code, INDX.",
          "type": "string"
        },
        "MarketCap": {
          "description": "Market capitalization of the index.",
          "type": "number"
        },
        "Name": {
          "description": "Index name in English.",
          "type": "string"
        },
        "OpenFigi": {
          "description": "OpenFIGI identifier, or null.",
          "type": [
            "string",
            "null"
          ]
        },
        "Type": {
          "description": "Asset type, INDEX.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "HistoricalTickerComponents": {
      "additionalProperties": {
        "description": "One historical membership record.",
        "properties": {
          "Code": {
            "description": "Component ticker code, for example AA.",
            "type": "string"
          },
          "EndDate": {
            "description": "Date of ticker removal from the index.",
            "format": "date",
            "type": "string"
          },
          "IsActiveNow": {
            "description": "1 when the company is still part of the index, 0 otherwise.",
            "enum": [
              0,
              1
            ],
            "type": "number"
          },
          "IsDelisted": {
            "description": "1 when the company is no longer traded at all, 0 otherwise.",
            "enum": [
              0,
              1
            ],
            "type": "number"
          },
          "Name": {
            "description": "Company name in English.",
            "type": "string"
          },
          "StartDate": {
            "description": "Date of ticker addition to the index.",
            "format": "date",
            "type": "string"
          }
        },
        "type": "object"
      },
      "description": "Historical membership records, keyed by a stringified running index such as \"0\", \"1\".",
      "type": "object"
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "symbol": "GSPC.INDX"
}
Example response
"{\"General\": {\"Code\": \"SPSIMM\", \"Type\": \"INDEX\", \"Name\": \"S&P Metals and Mining Select Industry Index\", \"Exchange\": \"INDX\", \"MarketCap\": 9984236890.9408, \"CurrencyCode\": \"USD\", \"CurrencyName\": \"US Dollar\", \"CurrencySymbol\": \"$\", \"CountryName\": \"Unknown\", \"CountryISO\": \"NA\", \"OpenFigi\": null}, \"Components\": {\"0\": {\"Code\": \"NEM\", \"Exchange\": \"US\", \"Name\": \"Newmont Goldcorp Corp\", \"Sector\": null, \"Industry\": null, \"Weight\": 0.0561}}, \"HistoricalTickerComponents\": {\"0\": {\"Code\": \"AA\", \"Name\": \"Alcoa Corp\", \"StartDate\": \"2023-09-18\", \"EndDate\": \"2024-02-02\", \"IsActiveNow\": 1, \"IsDelisted\": 0}}}"
GET/api/mp/unicornbay/spglobal/list
$0.03 default
Description

List 100+ S&P and Dow Jones indices with end of day value, market cap and divisor.

Documentation

GET /api/mp/unicornbay/spglobal/list — List 100+ S&P and Dow Jones indices with end of day value, market cap and divisor.

Returns end of day details for more than 100 global S&P and Dow Jones indices, including the S&P 500, 600, 100, 400 and about 21 key industry indices. Each row carries the index value, market capitalisation, divisor, daily return, dividend and the adjusted variants, plus the current constituent count. Use it to discover the index symbols accepted by the components endpoint.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. DailyReturn is declared as a string in the specification while every other numeric field is a number, so parse it defensively. No filter or pagination parameters are documented.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_spglobal_list",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "List of indices with end of day details.",
  "items": {
    "description": "One index with its end of day details.",
    "properties": {
      "AdjustedConstituents": {
        "description": "Adjusted number of constituents in the index.",
        "type": "number"
      },
      "AdjustedDivisor": {
        "description": "Index divisor, adjusted.",
        "type": "number"
      },
      "AdjustedMarketCap": {
        "description": "Market capitalization, adjusted.",
        "type": "number"
      },
      "Code": {
        "description": "Asset code without the exchange suffix, for example GSPC.",
        "type": "string"
      },
      "Constituents": {
        "description": "Current number of constituents in the index.",
        "type": "number"
      },
      "DailyReturn": {
        "description": "Index daily return value. Typed as string in the specification even though it carries a number, for example -0.0043.",
        "type": "string"
      },
      "Dividend": {
        "description": "Current index dividend.",
        "type": "number"
      },
      "Divisor": {
        "description": "Index divisor.",
        "type": "number"
      },
      "ID": {
        "description": "Unique EODHD index identifier, for example GSPC.INDX.",
        "type": "string"
      },
      "LastUpdate": {
        "description": "Last update date in ISO 8601 format.",
        "format": "date",
        "type": "string"
      },
      "MarketCap": {
        "description": "Market capitalization of the index.",
        "type": "number"
      },
      "Name": {
        "description": "Index name in English.",
        "type": "string"
      },
      "Value": {
        "description": "Index value.",
        "type": "number"
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "fmt": "json"
}
Example response
"[{\"ID\": \"GSPC.INDX\", \"Code\": \"GSPC\", \"Name\": \"S&P 500\", \"Constituents\": 502, \"LastUpdate\": \"2024-01-01\", \"Value\": 21947.6275, \"MarketCap\": 9953830971.3261, \"Divisor\": 453526.5125, \"DailyReturn\": \"-0.0043\", \"Dividend\": 0.9391, \"AdjustedMarketCap\": 9953830971.3261, \"AdjustedDivisor\": 453526.5125, \"AdjustedConstituents\": 502}]"
GET/api/mp/unicornbay/tickdata/ticks
$0.05 default
Description

Return tick by tick trade data for a US stock ticker over a Unix timestamp range.

Documentation

GET /api/mp/unicornbay/tickdata/ticks — Return tick by tick trade data for a US stock ticker over a Unix timestamp range.

Returns individual trade records for a US stock with millisecond timestamps, execution price, share count, market and sub market identifiers and a sequence number. The response is column oriented: each field is a parallel array and the arrays are aligned by index. Intended for market microstructure research, high frequency backtesting and volume profile work.

EODHD call weight: 10; required plans: marketplace_subscription.

Marketplace product with its own subscription, separate from the main EODHD plans. Limits are 100 000 API calls per 24 hours and 1000 requests per minute, and 1 request equals 10 API calls. For marketplace products the 24 hour window starts at the first request rather than at a fixed daily reset. Unusual for EODHD: from and to are Unix timestamps in seconds, while ts in the response is in milliseconds. The response is column oriented rather than a list of objects, so zip the arrays by index. The documentation does not explain the meaning of the mkt, sl and sub_mkt code values, nor how far back the tick history goes.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The marketplace specification documents JSON responses only, so csv is not confirmed for this endpoint.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "description": "Start timestamp as a Unix timestamp in seconds. Defaults to the start of yesterday if not provided.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "limit": {
      "description": "Maximum number of ticks to return, 1 to 10000. If omitted or 0, all ticks in the time range are returned.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "s": {
      "description": "Ticker symbol, maximum 30 characters, for example AAPL, MSFT or GOOGL.",
      "required": true,
      "type": "string",
      "x-parameter-location": "query"
    },
    "to": {
      "description": "End timestamp as a Unix timestamp in seconds. Defaults to the end of yesterday if not provided.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "s"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.mp_tickdata_ticks",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "marketplace_subscription"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Column oriented tick data. All arrays have the same length and are aligned by index.",
  "properties": {
    "mkt": {
      "description": "Market identifiers for each tick.",
      "items": {
        "description": "Market identifier code, for example K or Q.",
        "type": "string"
      },
      "type": "array"
    },
    "price": {
      "description": "Trade execution prices.",
      "items": {
        "description": "Execution price of one tick.",
        "type": "number"
      },
      "type": "array"
    },
    "seq": {
      "description": "Sequence numbers for each tick.",
      "items": {
        "description": "Sequence number of one tick.",
        "type": "integer"
      },
      "type": "array"
    },
    "shares": {
      "description": "Number of shares traded in each tick.",
      "items": {
        "description": "Share count of one tick.",
        "type": "integer"
      },
      "type": "array"
    },
    "sl": {
      "description": "Source or location identifiers.",
      "items": {
        "description": "Source or location identifier of one tick.",
        "type": "string"
      },
      "type": "array"
    },
    "sub_mkt": {
      "description": "Sub market identifiers.",
      "items": {
        "description": "Sub market identifier of one tick, often an empty string.",
        "type": "string"
      },
      "type": "array"
    },
    "ts": {
      "description": "Timestamps in milliseconds (Unix timestamp) for each tick.",
      "items": {
        "description": "Tick timestamp in milliseconds since the Unix epoch.",
        "type": "integer"
      },
      "type": "array"
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "from": 1694077200,
  "limit": 100,
  "s": "AAPL",
  "to": 1694080800
}
Example response
"{\"mkt\": [\"K\", \"Q\", \"Q\"], \"price\": [177.88, 177.95, 177.97], \"seq\": [1434370, 1436393, 1436394], \"shares\": [1, 50, 50], \"sl\": [\"@ TI\", \"@ TI\", \"@ TI\"], \"sub_mkt\": [\"\", \"\", \"\"], \"ts\": [1694077201147, 1694077206102, 1694077206102]}"
GET/api/news
$0.03 default
Description

Return financial news articles for a ticker or topic tag, each with in house sentiment scores.

Documentation

GET /api/news — Return financial news articles for a ticker or topic tag, each with in house sentiment scores.

Returns an array of financial news articles aggregated from major financial news portals, with the full article body, the tickers mentioned and an in house sentiment object. Filter by ticker with s, by topic tag with t, and by publication date with from and to; when both s and t are omitted the endpoint returns the latest general news feed. Use limit and offset to page through results, up to 1000 articles per request. Good for building news feeds, event studies and sentiment driven signals.

EODHD call weight: 5; required plans: standalone_package, all_in_one, eod_historical_data_all_world, eod_intraday_all_world_extended, fundamentals_data_feed, free.

Call weight is 5 API calls per request plus 5 API calls per ticker, so a two ticker request costs 10. The documentation does not state how far back the news archive goes, nor the languages covered, the number of sources, or any deduplication rule, so do not assume a start year. Sentiment sub field ranges are not stated either; only the aggregated /api/sentiments normalized score is documented as running from -1 to 1. The demo token works for AAPL.US, TSLA.US, VTI.US, AMZN.US, BTC-USD.CC and EURUSD.FOREX only. Tags in the response example come back upper cased and hyphenated while the t parameter is documented with lower case spaced values, so normalise before matching. No total count field is returned, so page with offset until fewer than limit articles come back.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "description": "Start date in YYYY-MM-DD format, inclusive.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "limit": {
      "default": 50,
      "description": "Number of articles to return. Range 1 to 1000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "offset": {
      "default": 0,
      "description": "Number of articles to skip, for pagination.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "s": {
      "description": "Ticker code to filter news, for example AAPL.US. Provide s or t; if both are omitted the latest general feed is returned.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "t": {
      "description": "Topic tag to filter news, for example technology. Provide s or t. Besides the standard list of 50 tags the feed adds AI detected tags, so almost any topic can be queried.",
      "enum": [
        "balance sheet",
        "capital employed",
        "class action",
        "company announcement",
        "consensus eps estimate",
        "consensus estimate",
        "credit rating",
        "discounted cash flow",
        "dividend payments",
        "earnings estimate",
        "earnings growth",
        "earnings per share",
        "earnings release",
        "earnings report",
        "earnings results",
        "earnings surprise",
        "estimate revisions",
        "european regulatory news",
        "financial results",
        "fourth quarter",
        "free cash flow",
        "future cash flows",
        "growth rate",
        "initial public offering",
        "insider ownership",
        "insider transactions",
        "institutional investors",
        "institutional ownership",
        "intrinsic value",
        "market research reports",
        "net income",
        "operating income",
        "present value",
        "press releases",
        "price target",
        "quarterly earnings",
        "quarterly results",
        "ratings",
        "research analysis and reports",
        "return on equity",
        "revenue estimates",
        "revenue growth",
        "roce",
        "roe",
        "share price",
        "shareholder rights",
        "shareholder",
        "shares outstanding",
        "split",
        "strong buy",
        "total revenue",
        "zacks investment research",
        "zacks rank"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "to": {
      "description": "End date in YYYY-MM-DD format, inclusive.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 5,
  "x-apiosk-capability-id": "eodhd.financial_news",
  "x-apiosk-free-plan": true,
  "x-apiosk-plans": [
    "standalone_package",
    "all_in_one",
    "eod_historical_data_all_world",
    "eod_intraday_all_world_extended",
    "fundamentals_data_feed",
    "free"
  ],
  "x-apiosk-provider-cost-eur": 0.00025,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Array of news articles, newest first.",
  "items": {
    "description": "One news article with its sentiment scores.",
    "properties": {
      "content": {
        "description": "Full article body as plain text.",
        "type": "string"
      },
      "date": {
        "description": "Publication date and time of the article, ISO 8601 with timezone offset.",
        "format": "date-time",
        "type": "string"
      },
      "link": {
        "description": "Direct URL to the original article on the publisher site.",
        "format": "uri",
        "type": "string"
      },
      "sentiment": {
        "description": "In house sentiment scores for the article.",
        "properties": {
          "neg": {
            "description": "Negative component of the sentiment. The documentation does not state an explicit range; documented example 0.007, and neg, neu and pos behave as proportions that sum to about 1.",
            "type": "number"
          },
          "neu": {
            "description": "Neutral component of the sentiment. The documentation does not state an explicit range; documented example 0.89.",
            "type": "number"
          },
          "polarity": {
            "description": "Overall sentiment polarity of the article. The documentation does not state an explicit range; the documented example value is 0.987.",
            "type": "number"
          },
          "pos": {
            "description": "Positive component of the sentiment. The documentation does not state an explicit range; documented example 0.103.",
            "type": "number"
          }
        },
        "type": "object"
      },
      "symbols": {
        "description": "Ticker symbols mentioned in the article, in EODHD CODE.EXCHANGE form.",
        "items": {
          "description": "One ticker symbol, for example AAPL.US.",
          "type": "string"
        },
        "type": "array"
      },
      "tags": {
        "description": "Topic tags assigned to the article, may be empty. Returned upper cased and hyphenated in the documented example.",
        "items": {
          "description": "One topic tag, for example ARTIFICIAL-INTELLIGENCE.",
          "type": "string"
        },
        "type": "array"
      },
      "title": {
        "description": "Headline of the article.",
        "type": "string"
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "fmt": "json",
  "from": "2026-06-01",
  "limit": 10,
  "offset": 0,
  "s": "AAPL.US",
  "t": "artificial intelligence",
  "to": "2026-06-30"
}
Example response
"[{\"date\": \"2026-07-15T10:37:18+00:00\", \"title\": \"Alibaba shares jump as China clears Apple's Qwen-powered AI system\", \"content\": \"Investing.com -- Shares of Alibaba Group in the U.S. rose around 5% in premarket trading ...\", \"link\": \"https://finance.yahoo.com/technology/ai/articles/alibaba-shares-jump-china-clears-103718143.html\", \"symbols\": [\"2RR.F\", \"9988.HK\", \"AAPL.US\"], \"tags\": [\"ARTIFICIAL-INTELLIGENCE\", \"CHINA-MARKET\", \"REGULATION\", \"TECH\"], \"sentiment\": {\"polarity\": 0.987, \"neg\": 0.007, \"neu\": 0.89, \"pos\": 0.103}}]"
GET/api/news-word-weights
$0.05 default
Description

Return the most relevant words in news about a ticker over a date range, each with a weight.

Documentation

GET /api/news-word-weights — Return the most relevant words in news about a ticker over a date range, each with a weight.

Returns a weighted list of the most relevant words found in news articles about a given ticker over a date range. Each word is scored by frequency and significance across the processed articles, which makes it useful for trend analysis, NLP feature input and thematic clustering. This endpoint uses AI over hundreds or thousands of articles, so responses can be slow; narrow the date range if a request times out.

EODHD call weight: 5; required plans: standalone_package, all_in_one, eod_historical_data_all_world, eod_intraday_all_world_extended, fundamentals_data_feed, free.

This endpoint is documented on the same page as the Financial News API and shares its plan list and its 5 API calls per request plus 5 per ticker weight. It uses JSON:API style bracket parameters (filter[date_from], filter[date_to], page[limit]) rather than the plain from, to and limit used by /api/news, so URL encode the brackets where your client requires it. news_processed can be much smaller than news_found, meaning weights are computed on a sample. There is no page[offset] documented; paginate by following links.next.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "filter[date_from]": {
      "description": "Start date in YYYY-MM-DD format, inclusive.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "filter[date_to]": {
      "description": "End date in YYYY-MM-DD format, inclusive.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Response format.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "page[limit]": {
      "description": "Number of top weighted words to return.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "s": {
      "description": "Ticker to analyze, for example AAPL.US.",
      "required": true,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "s"
  ],
  "type": "object",
  "x-apiosk-call-weight": 5,
  "x-apiosk-capability-id": "eodhd.news_word_weights",
  "x-apiosk-free-plan": true,
  "x-apiosk-plans": [
    "standalone_package",
    "all_in_one",
    "eod_historical_data_all_world",
    "eod_intraday_all_world_extended",
    "fundamentals_data_feed",
    "free"
  ],
  "x-apiosk-provider-cost-eur": 0.00025,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Weighted word list with processing metadata and pagination link.",
  "properties": {
    "data": {
      "additionalProperties": {
        "description": "Weight of this keyword across the processed articles.",
        "type": "number"
      },
      "description": "Keywords with their corresponding weights, as key value pairs.",
      "type": "object"
    },
    "links": {
      "description": "Pagination links.",
      "properties": {
        "next": {
          "description": "URL to the next page of results, or null if there is none.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "meta": {
      "description": "Processing metadata for the request.",
      "properties": {
        "news_found": {
          "description": "Total number of articles matched.",
          "type": "integer"
        },
        "news_processed": {
          "description": "Number of articles actually processed.",
          "type": "integer"
        }
      },
      "type": "object"
    }
  },
  "type": "object"
}
Example request
{
  "filter[date_from]": "2026-06-01",
  "filter[date_to]": "2026-06-15",
  "fmt": "json",
  "page[limit]": 10,
  "s": "AAPL.US"
}
Example response
"{\"data\": {\"stock\": 0.02227, \"apple\": 0.01224, \"companies\": 0.01029, \"year\": 0.0097, \"market\": 0.00945}, \"meta\": {\"news_processed\": 300, \"news_found\": 4126}, \"links\": {\"next\": null}}"
GET/api/real-time/{symbol}
$0.02 default
Description

Latest delayed quote with session open, high, low, close, volume and change for one or more tickers.

Documentation

GET /api/real-time/{symbol} — Latest delayed quote with session open, high, low, close, volume and change for one or more tickers.

Returns the most recent delayed price snapshot for a ticker, and optionally for a batch of extra tickers through the s parameter. Stocks are delayed roughly 15 to 20 minutes and currencies by about one minute. The open, high and low values are session-to-date figures rather than per-minute bars, and close is the latest delayed price. A single ticker returns a JSON object; adding s returns a JSON array with one object per ticker.

EODHD call weight: 1; required plans: all_in_one, eod, eod_intraday, free.

The response kind is conditional: an object for a single ticker, an array when s is present. Billing is 1 API call per ticker, so a batch of 10 tickers costs 10 calls even though it is one HTTP request. This is delayed data, not true real-time; for true real-time use the separate WebSocket product. Fields may return the string NA when a market has not traded. The documented plan list includes the Free plan. The server default fmt is csv.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.02 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "filter": {
      "description": "Return only one field of the quote as a bare value instead of the full object.",
      "enum": [
        "code",
        "timestamp",
        "gmtoffset",
        "open",
        "high",
        "low",
        "close",
        "volume",
        "previousClose",
        "change",
        "change_p"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. The documentation states the server-side default is csv, so always send fmt=json for machine parsing.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "s": {
      "description": "Comma separated list of additional tickers to return alongside the path ticker. The documentation supports roughly 15 to 20 tickers per request. Presence of this parameter switches the response body to an array.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Primary ticker with exchange suffix in TICKER.EXCHANGE form.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 1,
  "x-apiosk-capability-id": "eodhd.live_delayed_prices",
  "x-apiosk-free-plan": true,
  "x-apiosk-plans": [
    "all_in_one",
    "eod",
    "eod_intraday",
    "free"
  ],
  "x-apiosk-provider-cost-eur": 0.00005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.02
}
Response schema
{
  "description": "Delayed quote snapshot. When the s parameter is used the body is instead an array of these objects.",
  "properties": {
    "change": {
      "description": "Absolute change against the previous close.",
      "type": "number"
    },
    "change_p": {
      "description": "Percentage change against the previous close.",
      "type": "number"
    },
    "close": {
      "description": "Latest delayed price.",
      "type": "number"
    },
    "code": {
      "description": "Ticker with exchange suffix.",
      "type": "string"
    },
    "gmtoffset": {
      "description": "Offset from UTC in seconds.",
      "type": "integer"
    },
    "high": {
      "description": "Session-to-date highest price.",
      "type": "number"
    },
    "low": {
      "description": "Session-to-date lowest price.",
      "type": "number"
    },
    "open": {
      "description": "Session-to-date opening price.",
      "type": "number"
    },
    "previousClose": {
      "description": "Close of the previous trading session.",
      "type": "number"
    },
    "timestamp": {
      "description": "Unix time of the quote in seconds since 1970-01-01 UTC.",
      "type": "integer"
    },
    "volume": {
      "description": "Session total traded volume.",
      "type": "integer"
    }
  },
  "required": [
    "code",
    "timestamp",
    "gmtoffset",
    "open",
    "high",
    "low",
    "close",
    "volume",
    "previousClose",
    "change",
    "change_p"
  ],
  "type": "object"
}
Example request
{
  "filter": "close",
  "fmt": "json",
  "s": "VTI.US,EUR.FOREX",
  "symbol": "AAPL.US"
}
Example response
"{\"code\":\"AAPL.US\",\"timestamp\":1788566400,\"gmtoffset\":0,\"open\":328.305,\"high\":328.93,\"low\":317.86,\"close\":319.97,\"volume\":39606884,\"previousClose\":328.21,\"change\":-8.24,\"change_p\":-2.5106}"
GET/api/screener
$0.03 default
Description

Screen the whole covered global stock universe by fundamentals, performance and volume, and return the matching tickers.

Documentation

GET /api/screener — Screen the whole covered global stock universe by fundamentals, performance and volume, and return the matching tickers.

Filters every covered ticker in a single request on market capitalisation, exchange, sector, industry, EPS, dividend yield, one and five day performance and traded volume, and returns the matching rows with the values that were filtered on. Filters are a JSON array of [field, operation, value] triples combined with AND, signals add pre-calculated conditions such as 200 day highs or negative book value, sort takes a single field with a direction, and results page with limit and offset. Values come from the latest completed trading day, carried on every row in last_day_data_date. A single screen exposes at most its first 1000 matches because offset stops at 999.

EODHD call weight: 5; required plans: all_in_one, eod_intraday_all_world_extended.

Filter syntax traps: the filters value must be valid JSON with straight double quotes, and curly typographic quotes return HTTP 422 with 'The filters must be a valid JSON string'. There is no between operation, so a band is built from two conditions on the same field. The match operation matches from the start of a word and an asterisk extends the prefix, so 'Apple' and 'App*' both find Apple Inc. while a mid word fragment such as 'pple' matches nothing; multi word sector and industry values need match rather than an exact =. String comparisons are case insensitive. Applying a numeric operation to a string field or the reverse returns HTTP 422 with an invalid-operation error, a screen matching nothing returns HTTP 200 with an empty data array, and a missing or invalid token returns HTTP 401. Requesting more than 500 rows or an offset above 999 also returns 422. The exchange field accepts exchange codes such as us, lse, to and xetra and additionally accepts NYSE and NASDAQ, which narrow the US exchange to that venue and are equivalent to using sub_exchange. Data caveats: market capitalisation and prices are in each ticker's listing currency and are not converted to USD, so the same company appears once per listing and values are not comparable across rows without reading currency_symbol; filtering on a fundamentals derived field also excludes every ticker where the value is missing, which is common on secondary listings; and a minority of secondary foreign listings carry mis-scaled dividend_yield values in the thousands, so cap the upper bound. Each request consumes 5 API calls. Only the data key is documented in the response; no meta, count or pagination object is shown.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "filters": {
      "description": "Filter conditions as a JSON array of triples [[field, operation, value], ...], combined with AND. Must be valid JSON with straight double quotes. String fields accept the operations =, match, in and not in; number fields accept =, !=, >, <, >=, <=, in and not in. The in and not in operations take a JSON array as the value. Filterable fields are code, name, exchange, sub_exchange, sector, industry, market_capitalization, earnings_share, dividend_yield, refund_1d_p, refund_5d_p, adjusted_close, avgvol_1d and avgvol_200d.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Output format of the response.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "limit": {
      "default": 50,
      "description": "Number of tickers to return. Range 1 to 500.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "offset": {
      "default": 0,
      "description": "Number of tickers to skip, for paging. Range 0 to 999, so no screen can be paged beyond its first 1000 matches.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "signals": {
      "description": "Comma separated list of pre-calculated signals. A ticker must satisfy every signal listed, and signals combine with filters the same way.",
      "enum": [
        "200d_new_lo",
        "200d_new_hi",
        "bookvalue_neg",
        "bookvalue_pos",
        "wallstreet_lo",
        "wallstreet_hi"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "sort": {
      "description": "Sort as field_name.direction, for example market_capitalization.desc. Direction is asc or desc, and every filterable field is also sortable.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "type": "object",
  "x-apiosk-call-weight": 5,
  "x-apiosk-capability-id": "eodhd.stock_screener",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "eod_intraday_all_world_extended"
  ],
  "x-apiosk-provider-cost-eur": 0.00025,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Envelope holding the matching tickers.",
  "properties": {
    "data": {
      "description": "The tickers matching the screen, in the requested sort order.",
      "items": {
        "description": "One matching ticker.",
        "properties": {
          "adjusted_close": {
            "description": "Latest known end-of-day adjusted close.",
            "type": "number"
          },
          "avgvol_1d": {
            "description": "Last trading day volume.",
            "type": "number"
          },
          "avgvol_200d": {
            "description": "Average volume over the last 200 trading days.",
            "type": "number"
          },
          "code": {
            "description": "Ticker code without the exchange suffix.",
            "type": "string"
          },
          "currency_symbol": {
            "description": "Currency the price and market capitalisation are expressed in.",
            "type": "string"
          },
          "dividend_yield": {
            "description": "Latest dividend yield as a fraction, so 0.0034 means 0.34 percent.",
            "type": "number"
          },
          "earnings_share": {
            "description": "Latest earnings per share.",
            "type": "number"
          },
          "exchange": {
            "description": "Exchange code the ticker belongs to.",
            "type": "string"
          },
          "industry": {
            "description": "Industry name.",
            "type": "string"
          },
          "last_day_data_date": {
            "description": "Trading day the price and performance values come from.",
            "format": "date",
            "type": "string"
          },
          "market_capitalization": {
            "description": "Latest market capitalisation, in the listing currency.",
            "type": "number"
          },
          "name": {
            "description": "Company name.",
            "type": "string"
          },
          "refund_1d": {
            "description": "Absolute price change over the last trading day, in the listing currency.",
            "type": "number"
          },
          "refund_1d_p": {
            "description": "Price change over the last trading day, in percent.",
            "type": "number"
          },
          "refund_5d": {
            "description": "Absolute price change over the last 5 trading days.",
            "type": "number"
          },
          "refund_5d_p": {
            "description": "Price change over the last 5 trading days, in percent.",
            "type": "number"
          },
          "sector": {
            "description": "Sector name.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "data"
  ],
  "type": "object"
}
Example request
{
  "filters": "[[\"exchange\",\"=\",\"us\"],[\"market_capitalization\",\">\",10000000000]]",
  "fmt": "json",
  "limit": 10,
  "offset": 0,
  "signals": "bookvalue_neg,200d_new_lo",
  "sort": "market_capitalization.desc"
}
Example response
"{\"data\": [{\"code\": \"AAPL\", \"name\": \"Apple Inc.\", \"last_day_data_date\": \"2026-08-12\", \"adjusted_close\": 302.25, \"refund_1d\": -2.66, \"refund_1d_p\": -0.87, \"refund_5d\": -8.482, \"refund_5d_p\": -2.73, \"exchange\": \"US\", \"currency_symbol\": \"$\", \"market_capitalization\": 4411090796544, \"earnings_share\": 8.72, \"dividend_yield\": 0.0034, \"sector\": \"Technology\", \"industry\": \"Consumer Electronics\", \"avgvol_1d\": 40588500, \"avgvol_200d\": 49738504}]}"
GET/api/search/{query}
$0.02 default
Description

Full text lookup of tickers, company names and ISINs returning matching instruments.

Documentation

GET /api/search/{query} — Full text lookup of tickers, company names and ISINs returning matching instruments.

Resolves a free text query, a ticker fragment, a company name or an ISIN into a list of matching instruments across all supported exchanges. Each hit gives the bare ticker code, the exchange code, the instrument type, country, currency, ISIN and the previous close with its date. This is the practical way for an agent to turn a human name such as apple into a callable TICKER.EXCHANGE symbol. Results default to 15 and can be raised to 500.

EODHD call weight: 1; required plans: all_in_one, eod, eod_intraday, fundamentals, free.

The query is a path segment, not a query string parameter, so it must be URL encoded; spaces and slashes in company names will otherwise break the route. The ISIN key is upper case here while the exchange symbol list uses Isin for the same concept. Use isPrimary to pick the primary listing when the same company matches on several exchanges. There is no offset or cursor, only limit, so a broad query cannot be paged beyond 500 rows. The DEMO token cannot call this endpoint and returns Forbidden.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.02 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "bonds_only": {
      "default": 0,
      "description": "Set to 1 to return only bonds in the results.",
      "enum": [
        0,
        1
      ],
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "exchange": {
      "description": "Restrict results to a single exchange code, for example US, NYSE or NASDAQ.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. The documentation states the server-side default is csv, so always send fmt=json for machine parsing.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "limit": {
      "default": 15,
      "description": "Maximum number of results to return. Maximum value is 500.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "query": {
      "description": "The search input. Can be a ticker symbol, a company name or an ISIN. Must be URL encoded.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "type": {
      "description": "Restrict results to a single instrument class.",
      "enum": [
        "all",
        "stock",
        "etf",
        "fund",
        "bond",
        "index",
        "crypto"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "query"
  ],
  "type": "object",
  "x-apiosk-call-weight": 1,
  "x-apiosk-capability-id": "eodhd.search",
  "x-apiosk-free-plan": true,
  "x-apiosk-plans": [
    "all_in_one",
    "eod",
    "eod_intraday",
    "fundamentals",
    "free"
  ],
  "x-apiosk-provider-cost-eur": 0.00005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.02
}
Response schema
{
  "description": "List of matching instruments, best match first.",
  "items": {
    "properties": {
      "Code": {
        "description": "Ticker symbol without the exchange suffix.",
        "type": "string"
      },
      "Country": {
        "description": "Country of listing.",
        "type": "string"
      },
      "Currency": {
        "description": "Trading currency.",
        "type": "string"
      },
      "Exchange": {
        "description": "Exchange code to append to Code to form the callable TICKER.EXCHANGE symbol.",
        "type": "string"
      },
      "ISIN": {
        "description": "ISIN identifier where available, otherwise null.",
        "type": [
          "string",
          "null"
        ]
      },
      "Name": {
        "description": "Company or instrument name.",
        "type": "string"
      },
      "Type": {
        "description": "Instrument type such as Common Stock, ETF or FUND.",
        "type": "string"
      },
      "isPrimary": {
        "description": "Whether this listing is the primary listing of the instrument.",
        "type": "boolean"
      },
      "previousClose": {
        "description": "Closing price of the previous trading session.",
        "type": "number"
      },
      "previousCloseDate": {
        "description": "Date of the previous close in YYYY-MM-DD format.",
        "format": "date",
        "type": "string"
      }
    },
    "required": [
      "Code",
      "Exchange",
      "Name",
      "Type",
      "Country",
      "Currency"
    ],
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "bonds_only": 1,
  "exchange": "US",
  "fmt": "json",
  "limit": 50,
  "query": "apple",
  "type": "stock"
}
Example response
"[{\"Code\":\"AAPL\",\"Exchange\":\"US\",\"Name\":\"Apple Inc\",\"Type\":\"Common Stock\",\"Country\":\"USA\",\"Currency\":\"USD\",\"ISIN\":\"US0378331005\",\"previousClose\":229.65,\"previousCloseDate\":\"2025-08-12\",\"isPrimary\":true}]"
GET/api/sec-filings/{symbol}/form4
$0.05 default
Description

SEC Form 4 insider filings for one US issuer, with non-derivative and derivative rows and footnotes.

Documentation

GET /api/sec-filings/{symbol}/form4 — SEC Form 4 insider filings for one US issuer, with non-derivative and derivative rows and footnotes.

Returns Form 4 filings straight from SEC EDGAR, paginated newest first by filing date. Each filing carries the reporting owner with CIK and relationship flags, both non-derivative and derivative transaction rows with the full SEC Section 16 code set, post-transaction holdings, and resolvable footnotes. This is the recommended endpoint for tracking insider buying and selling and it supersedes the flat legacy feed. Coverage is more than 1.47 million filings across 4,800 plus US issuers from 2000 onward, refreshed daily.

EODHD call weight: 10; required plans: all_in_one, fundamentals_data_feed.

The task brief listed this as /api/insider-transactions; the documentation now puts the recommended endpoint at /api/sec-filings/{symbol}/form4 and marks /api/insider-transactions obsolete. Paging parameters use bracket syntax and must be sent as arrays, so page[offset] and page[limit]; passing page as a scalar returns 422, and page[limit] above 100 or a negative offset also returns 422. There are no date filters at all, only forward-only pagination through links.next, so reaching a specific page means incrementing page[offset] yourself using meta.total. Non-US issuers return 404. Expect quiet periods of 4 to 6 weeks before earnings because of insider blackout windows. Costs 10 API calls per request even for a 20-row page.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The documented examples pass fmt=json; the payload is JSON.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "page[limit]": {
      "default": 20,
      "description": "Page size, between 1 and 100.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "page[offset]": {
      "default": 0,
      "description": "Pagination offset, zero-based.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "US ticker, for example AAPL or AAPL.US. Case-insensitive and the .US suffix is optional; both forms return the same data. Form 4 is filed by US-listed issuers only.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.insider_transactions_form4",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "fundamentals_data_feed"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": true,
  "description": "Paginated list of SEC Form 4 filings for one US issuer, newest filed_at first.",
  "properties": {
    "data": {
      "description": "One entry per Form 4 filing.",
      "items": {
        "additionalProperties": true,
        "description": "A single Form 4 filing with its transaction rows and footnotes.",
        "properties": {
          "accession_number": {
            "description": "SEC accession number, unique identifier of the filing.",
            "type": [
              "string",
              "null"
            ]
          },
          "derivative": {
            "description": "Derivative transactions such as stock options, RSUs and warrants.",
            "items": {
              "additionalProperties": true,
              "description": "One derivative transaction row.",
              "properties": {
                "acquired_or_disposed": {
                  "description": "A for acquired or D for disposed.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "conversion_or_exercise_price": {
                  "description": "Exercise or conversion price in USD.",
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "exercise_date": {
                  "description": "Date the derivative becomes exercisable.",
                  "format": "date-time",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "expiration_date": {
                  "description": "Expiration date of the derivative.",
                  "format": "date-time",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "footnote_ids": {
                  "description": "Identifiers of all footnotes that apply to this row. Empty when the row has none.",
                  "items": {
                    "description": "Footnote identifier.",
                    "type": "string"
                  },
                  "type": "array"
                },
                "footnote_refs": {
                  "additionalProperties": true,
                  "description": "Maps a field name to the footnote ids that annotate that specific field.",
                  "type": "object"
                },
                "price_per_share": {
                  "description": "USD price per derivative unit.",
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "reporting_owner_cik": {
                  "description": "SEC CIK of the insider.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "reporting_owner_name": {
                  "description": "Full name of the insider.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "security_title": {
                  "description": "Derivative security name, for example Non-Qualified Stock Option.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "shares_amount": {
                  "description": "Number of derivative units transacted.",
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "shares_owned_after": {
                  "description": "Total derivative units held after the transaction.",
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "transaction_code": {
                  "description": "SEC Section 16 transaction code.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "transaction_date": {
                  "description": "ISO 8601 datetime of the transaction.",
                  "format": "date-time",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "underlying_security_title": {
                  "description": "Underlying security, for example Common Stock.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "underlying_shares": {
                  "description": "Number of underlying shares the derivative converts to.",
                  "type": [
                    "number",
                    "null"
                  ]
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "filed_at": {
            "description": "Date the filing was submitted to the SEC, YYYY-MM-DD.",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "footnotes": {
            "description": "Footnotes referenced from transaction rows.",
            "items": {
              "additionalProperties": true,
              "description": "One footnote.",
              "properties": {
                "footnote_id": {
                  "description": "Identifier referenced from transaction rows, for example F1 or F2.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "text": {
                  "description": "Footnote text.",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "non_derivative": {
            "description": "Direct stock transactions (Common Stock, Class A/B/C and similar). May be empty when the filing reports only derivative activity.",
            "items": {
              "additionalProperties": true,
              "description": "One non-derivative transaction row.",
              "properties": {
                "acquired_or_disposed": {
                  "description": "A for acquired or D for disposed.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "footnote_ids": {
                  "description": "Identifiers of all footnotes that apply to this row, for example [\"F3\"]. Empty when the row has none.",
                  "items": {
                    "description": "Footnote identifier.",
                    "type": "string"
                  },
                  "type": "array"
                },
                "footnote_refs": {
                  "additionalProperties": true,
                  "description": "Maps a field name to the footnote ids that annotate that specific field, for example {\"security_title\": [\"F3\"]}.",
                  "type": "object"
                },
                "is_director": {
                  "description": "True if the insider is a board director.",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "is_officer": {
                  "description": "True if the insider is a company officer.",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "is_other": {
                  "description": "True if the insider has another relationship.",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "is_ten_percent_owner": {
                  "description": "True if the insider is a 10 percent or greater owner.",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "officer_title": {
                  "description": "Officer title, for example Chief Executive Officer. Null when is_officer is false.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "other_text": {
                  "description": "Description of the other relationship, when is_other is true.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "price_per_share": {
                  "description": "USD price per share. May be null when not applicable, for example gifts.",
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "reporting_owner_cik": {
                  "description": "SEC CIK of the insider.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "reporting_owner_name": {
                  "description": "Full name of the insider.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "security_title": {
                  "description": "Security name, for example Common Stock or Class A Common Stock.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "shares_amount": {
                  "description": "Number of shares transacted.",
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "shares_owned_after": {
                  "description": "Total shares owned by this insider after the transaction.",
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "total_value": {
                  "description": "Computed shares times price. Null when price is unavailable or implausible.",
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "transaction_code": {
                  "description": "SEC Section 16 transaction code, one of P, S, A, D, F, M, G, V, J, L, C, E, H, O, X, I, U, W, Z or K.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "transaction_date": {
                  "description": "ISO 8601 datetime of the transaction.",
                  "format": "date-time",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "period_of_report": {
            "description": "Reporting period, YYYY-MM-DD.",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "links": {
      "additionalProperties": true,
      "description": "Navigation links.",
      "properties": {
        "next": {
          "description": "Relative URL of the next page. Forward-only; there is no previous link.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "meta": {
      "additionalProperties": true,
      "description": "Paging metadata.",
      "properties": {
        "page": {
          "additionalProperties": true,
          "description": "The paging you asked for, echoed back.",
          "properties": {
            "limit": {
              "description": "Page size of this page.",
              "type": [
                "integer",
                "null"
              ]
            },
            "offset": {
              "description": "Zero-based offset of this page.",
              "type": [
                "integer",
                "null"
              ]
            }
          },
          "type": "object"
        },
        "total": {
          "description": "Total number of matching filings across all pages.",
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "type": "object"
    }
  },
  "type": "object"
}
Example request
{
  "fmt": "json",
  "page[limit]": 50,
  "page[offset]": 20,
  "symbol": "AAPL"
}
Example response
"{\n \"data\": [\n  {\n   \"accession_number\": \"0001104659-26-062860\",\n   \"filed_at\": \"2026-05-15\",\n   \"period_of_report\": \"2026-05-13\",\n   \"non_derivative\": [\n    {\n     \"reporting_owner_cik\": \"0001771340\",\n     \"reporting_owner_name\": \"Taneja Vaibhav\",\n     \"is_director\": false,\n     \"is_officer\": true,\n     \"is_ten_percent_owner\": false,\n     \"is_other\": false,\n     \"officer_title\": \"Chief Financial Officer\",\n     \"other_text\": null,\n     \"security_title\": \"Common Stock\",\n     \"transaction_date\": \"2026-05-13T00:00:00+00:00\",\n     \"transaction_code\": \"S\",\n     \"acquired_or_disposed\": \"D\",\n     \"shares_amount\": 3000,\n     \"price_per_share\": 450,\n     \"shares_owned_after\": 18106.5,\n     \"total_value\": 1350000,\n     \"footnote_ids\": [\n      \"F1\"\n     ],\n     \"footnote_refs\": {\n      \"shares_owned_after\": [\n       \"F1\"\n      ]\n     }\n    }\n   ],\n   \"derivative\": [],\n   \"footnotes\": [\n    {\n     \"footnote_id\": \"F1\",\n     \"text\": \"Transaction pursuant to a Rule 10b5-1 trading plan.\"\n    }\n   ]\n  }\n ],\n \"meta\": {\n  \"total\": 594,\n  \"page\": {\n   \"offset\": 0,\n   \"limit\": 20\n  }\n },\n \"links\": {\n  \"next\": \"/api/sec-filings/AAPL.US/form4?page%5Boffset%5D=20&page%5Blimit%5D=20\"\n }\n}"
GET/api/sentiments
$0.03 default
Description

Return daily aggregated news sentiment scores per ticker, normalized from -1 to 1.

Documentation

GET /api/sentiments — Return daily aggregated news sentiment scores per ticker, normalized from -1 to 1.

Returns daily aggregated sentiment for one or more instruments (stocks, ETFs, Forex and crypto), calculated from news and social media coverage. The response is an object keyed by ticker, each holding an array of daily entries with the article count and a normalized score running from -1 (very negative) to 1 (very positive). Good for building sentiment time series and sentiment based trading signals without parsing article text yourself.

EODHD call weight: 5; required plans: standalone_package, all_in_one, eod_historical_data_all_world, eod_intraday_all_world_extended, fundamentals_data_feed, free.

The normalized score is the only sentiment value with a documented range: -1 to 1. Call weight is 5 API calls per request plus 5 per ticker, so batching many tickers in one call does not save credits. Ticker codes are accepted in lower case and are returned normalized in the response keys. Days with no coverage are simply absent from the array rather than returned with count 0. The docs do not state a maximum number of tickers per request or how far back the series goes.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.03 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "description": "Start date in YYYY-MM-DD format, inclusive.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "s": {
      "description": "One or more comma separated tickers, for example AAPL.US,BTC-USD.CC.",
      "required": true,
      "type": "string",
      "x-parameter-location": "query"
    },
    "to": {
      "description": "End date in YYYY-MM-DD format, inclusive.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "s"
  ],
  "type": "object",
  "x-apiosk-call-weight": 5,
  "x-apiosk-capability-id": "eodhd.news_sentiment",
  "x-apiosk-free-plan": true,
  "x-apiosk-plans": [
    "standalone_package",
    "all_in_one",
    "eod_historical_data_all_world",
    "eod_intraday_all_world_extended",
    "fundamentals_data_feed",
    "free"
  ],
  "x-apiosk-provider-cost-eur": 0.00025,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.03
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {
    "description": "Daily sentiment entries for one ticker.",
    "items": {
      "description": "One day of aggregated sentiment for the ticker.",
      "properties": {
        "count": {
          "description": "Number of articles used for sentiment on that day.",
          "type": "integer"
        },
        "date": {
          "description": "Aggregation date in YYYY-MM-DD format.",
          "format": "date",
          "type": "string"
        },
        "normalized": {
          "description": "Sentiment score from -1 (very negative) to 1 (very positive).",
          "maximum": 1,
          "minimum": -1,
          "type": "number"
        }
      },
      "type": "object"
    },
    "type": "array"
  },
  "description": "Sentiment data grouped by ticker symbol. Each key is a ticker in CODE.EXCHANGE form.",
  "type": "object"
}
Example request
{
  "fmt": "json",
  "from": "2026-06-01",
  "s": "AAPL.US,BTC-USD.CC",
  "to": "2026-06-30"
}
Example response
"{\"AAPL.US\": [{\"date\": \"2026-07-15\", \"count\": 10, \"normalized\": 0.6829}, {\"date\": \"2026-07-14\", \"count\": 64, \"normalized\": 0.7071}, {\"date\": \"2026-07-13\", \"count\": 64, \"normalized\": 0.6146}]}"
GET/api/splits/{symbol}
$0.02 default
Description

Full history of stock splits for one instrument with the split ratio.

Documentation

GET /api/splits/{symbol} — Full history of stock splits for one instrument with the split ratio.

Returns every recorded share split for a single ticker as a chronological array, with the effective date and the ratio expressed as new shares over old shares. It is used to reconstruct unadjusted price series or to reconcile share counts across corporate actions. The free plan is limited to about one year of history while paid plans cover more than 30 years.

EODHD call weight: 1; required plans: all_in_one, eod, eod_intraday, free.

The split value is a string containing a slash, not a number, so it must be parsed into numerator and denominator. The documentation page itself does not print a JSON example; the field names above were confirmed against the documented DEMO token for AAPL.US and match the splits shape shown on the bulk API documentation page. Returned in ascending date order. No pagination.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.02 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "fmt": {
      "default": "json",
      "description": "Response format. The documentation states the server-side default is csv, so always send fmt=json for machine parsing.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "description": "Start date of the requested range, inclusive, in YYYY-MM-DD format.",
      "format": "date",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Ticker with exchange suffix in TICKER.EXCHANGE form.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "to": {
      "description": "End date of the requested range, inclusive, in YYYY-MM-DD format.",
      "format": "date",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 1,
  "x-apiosk-capability-id": "eodhd.historical_splits",
  "x-apiosk-free-plan": true,
  "x-apiosk-plans": [
    "all_in_one",
    "eod",
    "eod_intraday",
    "free"
  ],
  "x-apiosk-provider-cost-eur": 0.00005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.02
}
Response schema
{
  "description": "Chronologically ordered list of split events.",
  "items": {
    "properties": {
      "date": {
        "description": "Effective date of the split in YYYY-MM-DD format.",
        "format": "date",
        "type": "string"
      },
      "split": {
        "description": "Split ratio as a string in the form new shares/old shares, for example 4.000000/1.000000 for a four for one split.",
        "type": "string"
      }
    },
    "required": [
      "date",
      "split"
    ],
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "fmt": "json",
  "from": "2000-01-01",
  "symbol": "AAPL.US",
  "to": "2025-12-31"
}
Example response
"[{\"date\":\"2014-06-09\",\"split\":\"7.000000/1.000000\"},{\"date\":\"2020-08-31\",\"split\":\"4.000000/1.000000\"}]"
GET/api/technical/{symbol}
$0.02 default
Description

Compute a technical indicator time series for any supported symbol, selected with the function parameter.

Documentation

GET /api/technical/{symbol} — Compute a technical indicator time series for any supported symbol, selected with the function parameter.

Returns a dated time series of a single technical indicator calculated server side on EODHD price history, covering moving averages, oscillators, volatility measures, trend and volume indicators plus split adjusted OHLC. The indicator is chosen with function and tuned with the parameters that function accepts, and the series can be restricted with from and to, reversed with order, or reduced to a single latest value with filter. It works for stocks, ETFs, indices, forex and crypto tickers in the same {SYMBOL}.{EXCHANGE_ID} format used elsewhere in the API. Each request consumes 5 API calls.

EODHD call weight: 5; required plans: all_in_one, eod_intraday_all_world_extended.

One endpoint covers every indicator; the response shape varies per function and was verified against live demo calls to https://eodhd.com/api/technical/AAPL.US with api_token=demo, because the documentation page shows the example output as an image. Per function value fields: sma -> sma; ema -> ema; wma -> wma; rsi -> rsi; volatility -> volatility; stddev -> stddev; slope -> slope; atr -> atr; cci -> cci; adx -> adx; dmi -> dmi (a single value, not separate plus_di and minus_di); sar -> sar; beta -> beta; avgvol -> avgvol; avgvolccy -> avgvolccy; macd -> macd, signal, divergence; bbands -> uband, mband, lband; stochastic -> k_values, d_values; stochrsi -> fastkline, fastdline; splitadjusted -> open, high, low, close, volume. The function name is also the JSON key for all single value indicators, which makes filter=last_<function> the pattern for the last value shortcut. format_amibroker is not a JSON indicator: it returns an AmiBroker import file whose OHLC fields are split adjusted only and not adjusted for dividends, so the array schema above does not apply to it. A request whose from and to window is shorter than period returns an empty array rather than an error. Available in the All-In-One and EOD+Intraday All World Extended plans; each request consumes 5 API calls. EODHD notes further indicators are available on the Marketplace and that new indicators can be added on request.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.02 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "acceleration": {
      "default": 0.02,
      "description": "Acceleration factor used up to the maximum value, used by sar.",
      "required": false,
      "type": "number",
      "x-parameter-location": "query"
    },
    "agg_period": {
      "default": "d",
      "description": "Aggregation period, used by splitadjusted: d for daily, w for weekly, m for monthly.",
      "enum": [
        "d",
        "w",
        "m"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "code2": {
      "default": "GSPC.INDX",
      "description": "Ticker to calculate beta against, used by beta.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fast_dperiod": {
      "default": 14,
      "description": "Fast D period, used by stochrsi. Valid range 2 to 100000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "fast_kperiod": {
      "default": 14,
      "description": "Fast K period. Used by stochastic (default 14) and stochrsi (default 14). Valid range 2 to 100000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "fast_period": {
      "default": 12,
      "description": "Fast EMA period, used by macd. Valid range 2 to 100000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "filter": {
      "description": "Return only the last value as a single number instead of the full series, used together with fmt=json. The value is 'last_' plus the name of the response field, for example last_sma, last_ema or last_volume.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Output format of the response.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "description": "Start date of the returned series in YYYY-MM-DD format.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "function": {
      "description": "The indicator to compute. splitadjusted returns split adjusted OHLC rather than an indicator, and format_amibroker returns an AmiBroker import file rather than JSON.",
      "enum": [
        "splitadjusted",
        "avgvol",
        "avgvolccy",
        "sma",
        "ema",
        "wma",
        "volatility",
        "stochastic",
        "rsi",
        "stddev",
        "stochrsi",
        "slope",
        "dmi",
        "adx",
        "macd",
        "atr",
        "cci",
        "sar",
        "beta",
        "bbands",
        "format_amibroker"
      ],
      "required": true,
      "type": "string",
      "x-parameter-location": "query"
    },
    "maximum": {
      "default": 0.2,
      "description": "Maximum acceleration factor, used by sar.",
      "required": false,
      "type": "number",
      "x-parameter-location": "query"
    },
    "order": {
      "default": "a",
      "description": "Date order: 'a' for ascending (old to new) or 'd' for descending (new to old).",
      "enum": [
        "a",
        "d"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "period": {
      "default": 50,
      "description": "Number of data points used for each value. Valid range 2 to 100000. Applies to sma, ema, wma, volatility, rsi, stddev, slope, dmi, adx, atr, cci, bbands, beta, avgvol and avgvolccy.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "signal_period": {
      "default": 9,
      "description": "Signal line period, used by macd. Valid range 2 to 100000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "slow_dperiod": {
      "default": 3,
      "description": "Slow D period, used by stochastic. Valid range 2 to 100000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "slow_kperiod": {
      "default": 3,
      "description": "Slow K period, used by stochastic. Valid range 2 to 100000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "slow_period": {
      "default": 26,
      "description": "Slow EMA period, used by macd. Valid range 2 to 100000.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "splitadjusted_only": {
      "default": 0,
      "description": "Set to 1 to calculate from closes adjusted for splits only instead of splits and dividends. Works with sma, ema, wma, volatility, rsi, slope and macd.",
      "enum": [
        0,
        1
      ],
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Ticker in the form {SYMBOL_NAME}.{EXCHANGE_ID}, for example AAPL.US for NASDAQ or AAPL.MX for the Mexican Stock Exchange. The exchange suffix may be omitted to default to US.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "to": {
      "description": "End date of the returned series in YYYY-MM-DD format.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "symbol",
    "function"
  ],
  "type": "object",
  "x-apiosk-call-weight": 5,
  "x-apiosk-capability-id": "eodhd.technical_indicator",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "eod_intraday_all_world_extended"
  ],
  "x-apiosk-provider-cost-eur": 0.00025,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.02
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Array of dated indicator values. Every element carries date plus the value fields specific to the requested function; only those fields are present in any single response.",
  "items": {
    "description": "One data point: the date plus the value or values produced by the requested indicator.",
    "properties": {
      "adx": {
        "description": "Average Directional Movement Index value, returned when function=adx.",
        "type": "number"
      },
      "atr": {
        "description": "Average True Range value, returned when function=atr.",
        "type": "number"
      },
      "avgvol": {
        "description": "Average trading volume, returned when function=avgvol.",
        "type": "number"
      },
      "avgvolccy": {
        "description": "Average trading volume expressed in currency, returned when function=avgvolccy.",
        "type": "number"
      },
      "beta": {
        "description": "Beta of the symbol against code2, returned when function=beta.",
        "type": "number"
      },
      "cci": {
        "description": "Commodity Channel Index value, returned when function=cci.",
        "type": "number"
      },
      "close": {
        "description": "Split adjusted close price, returned when function=splitadjusted.",
        "type": "number"
      },
      "d_values": {
        "description": "Stochastic oscillator D value, returned when function=stochastic.",
        "type": "number"
      },
      "date": {
        "description": "Date of the data point in YYYY-MM-DD format.",
        "format": "date",
        "type": "string"
      },
      "divergence": {
        "description": "MACD divergence (histogram) value, returned when function=macd.",
        "type": "number"
      },
      "dmi": {
        "description": "Directional Movement Index value, returned when function=dmi.",
        "type": "number"
      },
      "ema": {
        "description": "Exponential moving average value, returned when function=ema.",
        "type": "number"
      },
      "fastdline": {
        "description": "Stochastic RSI fast D line value, returned when function=stochrsi.",
        "type": "number"
      },
      "fastkline": {
        "description": "Stochastic RSI fast K line value, returned when function=stochrsi.",
        "type": "number"
      },
      "high": {
        "description": "Split adjusted high price, returned when function=splitadjusted.",
        "type": "number"
      },
      "k_values": {
        "description": "Stochastic oscillator K value, returned when function=stochastic.",
        "type": "number"
      },
      "lband": {
        "description": "Lower Bollinger band, returned when function=bbands.",
        "type": "number"
      },
      "low": {
        "description": "Split adjusted low price, returned when function=splitadjusted.",
        "type": "number"
      },
      "macd": {
        "description": "MACD line value, returned when function=macd.",
        "type": "number"
      },
      "mband": {
        "description": "Middle Bollinger band, returned when function=bbands.",
        "type": "number"
      },
      "open": {
        "description": "Split adjusted open price, returned when function=splitadjusted.",
        "type": "number"
      },
      "rsi": {
        "description": "Relative Strength Index value, returned when function=rsi.",
        "type": "number"
      },
      "sar": {
        "description": "Parabolic SAR value, returned when function=sar.",
        "type": "number"
      },
      "signal": {
        "description": "MACD signal line value, returned when function=macd.",
        "type": "number"
      },
      "slope": {
        "description": "Linear regression slope value, returned when function=slope.",
        "type": "number"
      },
      "sma": {
        "description": "Simple moving average value, returned when function=sma.",
        "type": "number"
      },
      "stddev": {
        "description": "Standard deviation value, returned when function=stddev.",
        "type": "number"
      },
      "uband": {
        "description": "Upper Bollinger band, returned when function=bbands.",
        "type": "number"
      },
      "volatility": {
        "description": "Volatility value, returned when function=volatility.",
        "type": "number"
      },
      "volume": {
        "description": "Traded volume, returned when function=splitadjusted.",
        "type": "integer"
      },
      "wma": {
        "description": "Weighted moving average value, returned when function=wma.",
        "type": "number"
      }
    },
    "required": [
      "date"
    ],
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "acceleration": 0.02,
  "agg_period": "d",
  "code2": "GSPC.INDX",
  "fast_dperiod": 14,
  "fast_kperiod": 14,
  "fast_period": 12,
  "filter": "last_ema",
  "fmt": "json",
  "from": "2017-08-01",
  "function": "sma",
  "maximum": 0.2,
  "order": "d",
  "period": 50,
  "signal_period": 9,
  "slow_dperiod": 3,
  "slow_kperiod": 3,
  "slow_period": 26,
  "splitadjusted_only": 1,
  "symbol": "AAPL.US",
  "to": "2020-01-01"
}
Example response
"[{\"date\": \"2019-12-10\", \"sma\": 60.155}, {\"date\": \"2019-12-09\", \"sma\": 59.9375}, {\"date\": \"2019-12-06\", \"sma\": 59.7029}]"
GET/api/v1.1/fundamentals/{symbol}
$0.05 default
Description

Full fundamentals object for a common stock or equity ticker.

Documentation

GET /api/v1.1/fundamentals/{symbol} — Full fundamentals object for a common stock or equity ticker.

Returns one JSON object per equity ticker with company profile, headline metrics, valuation multiples, share statistics, technicals, dividends and splits, institutional and fund ownership, insider transactions, historical shares outstanding, earnings history and trend, and full annual and quarterly financial statements. It is the single richest company endpoint in the EODHD catalogue and is the basis for screening, valuation and financial statement analysis. The payload is very large, so use the filter parameter to request one section or one field. Major US companies go back to 1985 and non-US symbols to 2000; smaller companies carry the last 6 years and 20 quarters, and the feed is available in JSON only.

EODHD call weight: 10; required plans: all_in_one, fundamentals_data_feed.

v1.1 is the recommended version; the unversioned /api/fundamentals/{symbol} path still works and takes the same parameters. v1.1 fixes missing Q4 rows in Earnings::Trend and splits that block into Quarterly and Annual sections with an explicit quarter label. The current documentation does not list AnalystRatings or ESGScores as top-level sections of the single-ticker response, so they are deliberately absent from the schema even though AnalystRatings appears in the Bulk Fundamentals output. The demo token works for AAPL.US, TSLA.US, VTI.US, AMZN.US, BTC-USD.CC and EURUSD.FOREX only. Financial statement line items and several nested numeric values arrive as strings, so cast before computing. Not every issuer reports every field, so expect nulls and missing keys.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$0.05 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "filter": {
      "description": "Return only one section or a single field instead of the full object. Nest layers with :: and pass several comma-separated filters at once. Section and field names are the response keys, for example General, General::Code, Financials::Balance_Sheet::quarterly, or General::Code,General,Earnings.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. The fundamentals feed is JSON only because of the complex data structure, so json is the only useful value.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "from": {
      "description": "Start date (YYYY-MM-DD) for historical index snapshots, used with historical=1.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "historical": {
      "description": "Set to 1 to include point-in-time index membership snapshots (HistoricalComponents). Indices only; combine with from and to.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "symbol": {
      "description": "Ticker in TICKER.EXCHANGE format, for example AAPL.US. Also accepts index tickers such as GSPC.INDX and mutual fund ISINs.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "to": {
      "description": "End date (YYYY-MM-DD) for historical index snapshots, used with historical=1.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "symbol"
  ],
  "type": "object",
  "x-apiosk-call-weight": 10,
  "x-apiosk-capability-id": "eodhd.fundamentals_stock",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "all_in_one",
    "fundamentals_data_feed"
  ],
  "x-apiosk-provider-cost-eur": 0.0005,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 0.05
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": true,
  "description": "Full fundamentals object for a common stock or equity ticker. Sections are omitted when the issuer does not report them.",
  "properties": {
    "Earnings": {
      "additionalProperties": true,
      "description": "Reported earnings, analyst trend and annual earnings.",
      "properties": {
        "Annual": {
          "additionalProperties": true,
          "description": "Annual earnings keyed by date. Each entry has date and epsActual.",
          "type": "object"
        },
        "History": {
          "additionalProperties": true,
          "description": "Reported earnings keyed by fiscal period end date (YYYY-MM-DD). Each entry has reportDate, date, beforeAfterMarket, currency, epsActual, epsEstimate, epsDifference and surprisePercent.",
          "type": "object"
        },
        "Trend": {
          "additionalProperties": true,
          "description": "Analyst estimates by period. In v1.1 this block is split into Quarterly and Annual sections instead of one flat date-keyed list, and each quarterly entry carries a human-readable quarter field (Q1, Q2, Q3, Q4). Entries include growth, earningsEstimateAvg, earningsEstimateLow, earningsEstimateHigh, revenueEstimateAvg, the EPS trend values and the EPS revision counts.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "Financials": {
      "additionalProperties": true,
      "description": "Full financial statements.",
      "properties": {
        "Balance_Sheet": {
          "additionalProperties": true,
          "description": "Balance sheet.",
          "properties": {
            "currency_symbol": {
              "description": "Reporting currency of the statement.",
              "type": [
                "string",
                "null"
              ]
            },
            "quarterly": {
              "additionalProperties": true,
              "description": "Quarterly reports keyed by period end date (YYYY-MM-DD). Same entry shape as yearly.",
              "type": "object"
            },
            "yearly": {
              "additionalProperties": true,
              "description": "Yearly reports keyed by period end date (YYYY-MM-DD). Each report carries its own date and filing_date plus the line items, for example totalAssets, totalLiab, totalStockholderEquity, cash, netDebt, longTermDebt, inventory and retainedEarnings. Numeric line items are delivered as strings.",
              "type": "object"
            }
          },
          "type": "object"
        },
        "Cash_Flow": {
          "additionalProperties": true,
          "description": "Cash flow statement.",
          "properties": {
            "currency_symbol": {
              "description": "Reporting currency of the statement.",
              "type": [
                "string",
                "null"
              ]
            },
            "quarterly": {
              "additionalProperties": true,
              "description": "Quarterly reports keyed by period end date (YYYY-MM-DD). Same entry shape as yearly.",
              "type": "object"
            },
            "yearly": {
              "additionalProperties": true,
              "description": "Yearly reports keyed by period end date (YYYY-MM-DD). Each report carries its own date and filing_date plus the line items, for example totalCashFromOperatingActivities, capitalExpenditures, freeCashFlow, dividendsPaid, netIncome and changeInCash. Numeric line items are delivered as strings.",
              "type": "object"
            }
          },
          "type": "object"
        },
        "Income_Statement": {
          "additionalProperties": true,
          "description": "Income statement.",
          "properties": {
            "currency_symbol": {
              "description": "Reporting currency of the statement.",
              "type": [
                "string",
                "null"
              ]
            },
            "quarterly": {
              "additionalProperties": true,
              "description": "Quarterly reports keyed by period end date (YYYY-MM-DD). Same entry shape as yearly.",
              "type": "object"
            },
            "yearly": {
              "additionalProperties": true,
              "description": "Yearly reports keyed by period end date (YYYY-MM-DD). Each report carries its own date and filing_date plus the line items, for example totalRevenue, costOfRevenue, grossProfit, operatingIncome, ebit, ebitda, netIncome and researchDevelopment. Numeric line items are delivered as strings.",
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "General": {
      "additionalProperties": true,
      "description": "Company profile block.",
      "properties": {
        "Address": {
          "description": "The company address as a single string.",
          "type": [
            "string",
            "null"
          ]
        },
        "AddressData": {
          "additionalProperties": true,
          "description": "The address split into Street, City, State, Country and ZIP.",
          "type": "object"
        },
        "CIK": {
          "description": "Central Index Key assigned by the SEC, US companies.",
          "type": [
            "string",
            "null"
          ]
        },
        "CUSIP": {
          "description": "CUSIP identifier, mainly for US companies.",
          "type": [
            "string",
            "null"
          ]
        },
        "Code": {
          "description": "The ticker code of the company.",
          "type": [
            "string",
            "null"
          ]
        },
        "CountryISO": {
          "description": "ISO country code.",
          "type": [
            "string",
            "null"
          ]
        },
        "CountryName": {
          "description": "Country where the company is registered.",
          "type": [
            "string",
            "null"
          ]
        },
        "CurrencyCode": {
          "description": "Currency code of the listing.",
          "type": [
            "string",
            "null"
          ]
        },
        "CurrencyName": {
          "description": "Full name of the listing currency.",
          "type": [
            "string",
            "null"
          ]
        },
        "CurrencySymbol": {
          "description": "Symbol of the listing currency.",
          "type": [
            "string",
            "null"
          ]
        },
        "Description": {
          "description": "A textual description of the company.",
          "type": [
            "string",
            "null"
          ]
        },
        "EmployerIdNumber": {
          "description": "Employer Identification Number (EIN), US companies.",
          "type": [
            "string",
            "null"
          ]
        },
        "Exchange": {
          "description": "The exchange the ticker is listed on.",
          "type": [
            "string",
            "null"
          ]
        },
        "ExchangeMarket": {
          "description": "Extra market label that may appear on non-US equities only.",
          "type": [
            "string",
            "null"
          ]
        },
        "FiscalYearEnd": {
          "description": "Month the fiscal year ends.",
          "type": [
            "string",
            "null"
          ]
        },
        "FullTimeEmployees": {
          "description": "Number of full-time employees.",
          "type": [
            "integer",
            "null"
          ]
        },
        "GicGroup": {
          "description": "GICS industry group classification.",
          "type": [
            "string",
            "null"
          ]
        },
        "GicIndustry": {
          "description": "GICS industry classification.",
          "type": [
            "string",
            "null"
          ]
        },
        "GicSector": {
          "description": "GICS sector classification.",
          "type": [
            "string",
            "null"
          ]
        },
        "GicSubIndustry": {
          "description": "GICS sub-industry classification.",
          "type": [
            "string",
            "null"
          ]
        },
        "HomeCategory": {
          "description": "Home category of the ticker, for example Domestic or ADR.",
          "type": [
            "string",
            "null"
          ]
        },
        "IPODate": {
          "description": "Date of the initial public offering.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "ISIN": {
          "description": "International Securities Identification Number.",
          "type": [
            "string",
            "null"
          ]
        },
        "Industry": {
          "description": "The industry of the company.",
          "type": [
            "string",
            "null"
          ]
        },
        "InternationalDomestic": {
          "description": "International or domestic classification.",
          "type": [
            "string",
            "null"
          ]
        },
        "IsDelisted": {
          "description": "Whether the ticker has been delisted.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "LEI": {
          "description": "Legal Entity Identifier.",
          "type": [
            "string",
            "null"
          ]
        },
        "Listings": {
          "additionalProperties": true,
          "description": "Other exchange listings for the ticker, keyed by index, each entry with Code, Exchange and Name.",
          "type": "object"
        },
        "LogoURL": {
          "description": "Path to the company logo image.",
          "type": [
            "string",
            "null"
          ]
        },
        "Name": {
          "description": "The company name.",
          "type": [
            "string",
            "null"
          ]
        },
        "Officers": {
          "additionalProperties": true,
          "description": "Company executives, keyed by index, each entry with Name, Title and YearBorn.",
          "type": "object"
        },
        "OpenFigi": {
          "description": "The OpenFIGI identifier.",
          "type": [
            "string",
            "null"
          ]
        },
        "Phone": {
          "description": "Company phone number.",
          "type": [
            "string",
            "null"
          ]
        },
        "PrimaryTicker": {
          "description": "The primary ticker for the company.",
          "type": [
            "string",
            "null"
          ]
        },
        "Sector": {
          "description": "The sector of the company.",
          "type": [
            "string",
            "null"
          ]
        },
        "Type": {
          "description": "The instrument type, for example Common Stock.",
          "type": [
            "string",
            "null"
          ]
        },
        "UpdatedAt": {
          "description": "Date the record was last updated.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "WebURL": {
          "description": "Company website URL.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "Highlights": {
      "additionalProperties": true,
      "description": "Key metrics and analyst estimates.",
      "properties": {
        "BookValue": {
          "description": "Book value per share.",
          "type": [
            "number",
            "null"
          ]
        },
        "DilutedEpsTTM": {
          "description": "Diluted EPS over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "DividendShare": {
          "description": "Dividend per share.",
          "type": [
            "number",
            "null"
          ]
        },
        "DividendYield": {
          "description": "Dividend yield.",
          "type": [
            "number",
            "null"
          ]
        },
        "EBITDA": {
          "description": "Earnings before interest, taxes, depreciation and amortization.",
          "type": [
            "number",
            "null"
          ]
        },
        "EPSEstimateCurrentQuarter": {
          "description": "Estimated EPS for the current quarter.",
          "type": [
            "number",
            "null"
          ]
        },
        "EPSEstimateCurrentYear": {
          "description": "Estimated EPS for the current year.",
          "type": [
            "number",
            "null"
          ]
        },
        "EPSEstimateNextQuarter": {
          "description": "Estimated EPS for the next quarter.",
          "type": [
            "number",
            "null"
          ]
        },
        "EPSEstimateNextYear": {
          "description": "Estimated EPS for the next year.",
          "type": [
            "number",
            "null"
          ]
        },
        "EarningsShare": {
          "description": "Earnings per share (EPS).",
          "type": [
            "number",
            "null"
          ]
        },
        "GrossProfitTTM": {
          "description": "Gross profit over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "MarketCapitalization": {
          "description": "Market capitalization.",
          "type": [
            "number",
            "null"
          ]
        },
        "MarketCapitalizationMln": {
          "description": "Market capitalization in millions.",
          "type": [
            "number",
            "null"
          ]
        },
        "MostRecentQuarter": {
          "description": "Date of the most recent reported quarter.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "OperatingMarginTTM": {
          "description": "Operating margin over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "PEGRatio": {
          "description": "Price/earnings-to-growth ratio.",
          "type": [
            "number",
            "null"
          ]
        },
        "PERatio": {
          "description": "Price-to-earnings ratio.",
          "type": [
            "number",
            "null"
          ]
        },
        "ProfitMargin": {
          "description": "Profit margin.",
          "type": [
            "number",
            "null"
          ]
        },
        "QuarterlyEarningsGrowthYOY": {
          "description": "Quarterly earnings growth year over year.",
          "type": [
            "number",
            "null"
          ]
        },
        "QuarterlyRevenueGrowthYOY": {
          "description": "Quarterly revenue growth year over year.",
          "type": [
            "number",
            "null"
          ]
        },
        "ReturnOnAssetsTTM": {
          "description": "Return on assets over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "ReturnOnEquityTTM": {
          "description": "Return on equity over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "RevenuePerShareTTM": {
          "description": "Revenue per share over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "RevenueTTM": {
          "description": "Revenue over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "WallStreetTargetPrice": {
          "description": "Average analyst target price.",
          "type": [
            "number",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "Holders": {
      "additionalProperties": true,
      "description": "Institutional and fund ownership.",
      "properties": {
        "Funds": {
          "additionalProperties": true,
          "description": "Fund holders keyed by index string. Same entry shape as Institutions: name, date, totalShares, totalAssets, currentShares, change, change_p.",
          "type": "object"
        },
        "Institutions": {
          "additionalProperties": true,
          "description": "Institutional holders keyed by index string (\"0\", \"1\", ...). Each entry has name, date (report date), totalShares (percent of total shares held), totalAssets (percent of the holder assets in this position), currentShares (share count), change and change_p.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "InsiderTransactions": {
      "additionalProperties": true,
      "description": "Insider trading records keyed by index string. Each entry has date (report date), ownerCik, ownerName, transactionDate, transactionCode, transactionAmount (share count), transactionPrice, transactionAcquiredDisposed, postTransactionAmount and secLink (URL of the SEC filing).",
      "type": "object"
    },
    "SharesStats": {
      "additionalProperties": true,
      "description": "Share statistics and ownership percentages.",
      "properties": {
        "PercentInsiders": {
          "description": "Percentage of shares held by insiders.",
          "type": [
            "number",
            "null"
          ]
        },
        "PercentInstitutions": {
          "description": "Percentage of shares held by institutions.",
          "type": [
            "number",
            "null"
          ]
        },
        "SharesFloat": {
          "description": "Shares available for public trading.",
          "type": [
            "number",
            "null"
          ]
        },
        "SharesOutstanding": {
          "description": "Total shares outstanding.",
          "type": [
            "number",
            "null"
          ]
        },
        "SharesShort": {
          "description": "Number of shares sold short.",
          "type": [
            "number",
            "null"
          ]
        },
        "SharesShortPriorMonth": {
          "description": "Shares sold short in the prior month.",
          "type": [
            "number",
            "null"
          ]
        },
        "ShortPercentFloat": {
          "description": "Short interest as a percentage of the float.",
          "type": [
            "number",
            "null"
          ]
        },
        "ShortPercentOutstanding": {
          "description": "Short interest as a percentage of shares outstanding.",
          "type": [
            "number",
            "null"
          ]
        },
        "ShortRatio": {
          "description": "Short interest ratio.",
          "type": [
            "number",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "SplitsDividends": {
      "additionalProperties": true,
      "description": "Dividend and split summary.",
      "properties": {
        "DividendDate": {
          "description": "The dividend payment date.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "ExDividendDate": {
          "description": "The ex-dividend date.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "ForwardAnnualDividendRate": {
          "description": "Forward annual dividend rate.",
          "type": [
            "number",
            "null"
          ]
        },
        "ForwardAnnualDividendYield": {
          "description": "Forward annual dividend yield.",
          "type": [
            "number",
            "null"
          ]
        },
        "LastSplitDate": {
          "description": "The date of the last stock split.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "LastSplitFactor": {
          "description": "The factor of the last stock split, for example 4:1.",
          "type": [
            "string",
            "null"
          ]
        },
        "NumberDividendsByYear": {
          "additionalProperties": true,
          "description": "Count of dividends paid per year, keyed by index, each entry with Year and Count.",
          "type": "object"
        },
        "PayoutRatio": {
          "description": "Dividend payout ratio.",
          "type": [
            "number",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "Technicals": {
      "additionalProperties": true,
      "description": "Technical performance metrics.",
      "properties": {
        "200DayMA": {
          "description": "200-day moving average.",
          "type": [
            "number",
            "null"
          ]
        },
        "50DayMA": {
          "description": "50-day moving average.",
          "type": [
            "number",
            "null"
          ]
        },
        "52WeekHigh": {
          "description": "Highest price over the last 52 weeks.",
          "type": [
            "number",
            "null"
          ]
        },
        "52WeekLow": {
          "description": "Lowest price over the last 52 weeks.",
          "type": [
            "number",
            "null"
          ]
        },
        "Beta": {
          "description": "Measure of stock volatility relative to the market.",
          "type": [
            "number",
            "null"
          ]
        },
        "SharesShort": {
          "description": "Number of shares sold short.",
          "type": [
            "number",
            "null"
          ]
        },
        "SharesShortPriorMonth": {
          "description": "Shares sold short in the prior month.",
          "type": [
            "number",
            "null"
          ]
        },
        "ShortPercent": {
          "description": "Short interest as a percentage.",
          "type": [
            "number",
            "null"
          ]
        },
        "ShortRatio": {
          "description": "Short interest ratio.",
          "type": [
            "number",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "Valuation": {
      "additionalProperties": true,
      "description": "Market valuation ratios.",
      "properties": {
        "EnterpriseValue": {
          "description": "Enterprise value.",
          "type": [
            "number",
            "null"
          ]
        },
        "EnterpriseValueEbitda": {
          "description": "Enterprise value to EBITDA ratio.",
          "type": [
            "number",
            "null"
          ]
        },
        "EnterpriseValueRevenue": {
          "description": "Enterprise value to revenue ratio.",
          "type": [
            "number",
            "null"
          ]
        },
        "ForwardPE": {
          "description": "Forward price-to-earnings ratio.",
          "type": [
            "number",
            "null"
          ]
        },
        "PriceBookMRQ": {
          "description": "Price-to-book ratio for the most recent quarter.",
          "type": [
            "number",
            "null"
          ]
        },
        "PriceSalesTTM": {
          "description": "Price-to-sales ratio over the trailing twelve months.",
          "type": [
            "number",
            "null"
          ]
        },
        "TrailingPE": {
          "description": "Trailing price-to-earnings ratio.",
          "type": [
            "number",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "outstandingShares": {
      "additionalProperties": true,
      "description": "Historical shares outstanding.",
      "properties": {
        "annual": {
          "additionalProperties": true,
          "description": "Yearly history keyed by index string. Each entry has date (period label), dateFormatted (period end date, YYYY-MM-DD), sharesMln (shares in millions, delivered as a string) and shares (integer share count).",
          "type": "object"
        },
        "quarterly": {
          "additionalProperties": true,
          "description": "Quarterly history keyed by index string. Same entry shape as annual: date, dateFormatted, sharesMln, shares.",
          "type": "object"
        }
      },
      "type": "object"
    }
  },
  "type": "object"
}
Example request
{
  "filter": "Financials::Balance_Sheet::quarterly",
  "fmt": "json",
  "from": "2010-01-01",
  "historical": 1,
  "symbol": "AAPL.US",
  "to": "2010-12-31"
}
Example response
"{\n \"General\": {\n  \"Code\": \"AAPL\",\n  \"Type\": \"Common Stock\",\n  \"Name\": \"Apple Inc.\",\n  \"Exchange\": \"NASDAQ\",\n  \"CurrencyCode\": \"USD\",\n  \"CountryName\": \"USA\",\n  \"CountryISO\": \"US\",\n  \"ISIN\": \"US0378331005\",\n  \"CUSIP\": \"037833100\",\n  \"CIK\": \"0000320193\",\n  \"PrimaryTicker\": \"AAPL.US\",\n  \"FiscalYearEnd\": \"September\",\n  \"IPODate\": \"1980-12-12\",\n  \"Sector\": \"Technology\",\n  \"Industry\": \"Consumer Electronics\",\n  \"GicSector\": \"Information Technology\",\n  \"HomeCategory\": \"Domestic\",\n  \"IsDelisted\": false,\n  \"FullTimeEmployees\": 166000,\n  \"UpdatedAt\": \"2026-07-13\"\n },\n \"Highlights\": {\n  \"MarketCapitalization\": 4631217307648,\n  \"EBITDA\": 144427003904,\n  \"PERatio\": 33.15,\n  \"PEGRatio\": 2.09,\n  \"WallStreetTargetPrice\": 315.5667,\n  \"EarningsShare\": 6.6,\n  \"DividendYield\": 0.0034,\n  \"ProfitMargin\": 0.2731,\n  \"RevenueTTM\": 408625012736\n },\n \"Valuation\": {\n  \"TrailingPE\": 33.15,\n  \"ForwardPE\": 30.77,\n  \"PriceSalesTTM\": 8.84,\n  \"PriceBookMRQ\": 60.72,\n  \"EnterpriseValue\": 4672684000000\n },\n \"SharesStats\": {\n  \"SharesOutstanding\": 14687356000,\n  \"SharesFloat\": 14662387495,\n  \"PercentInsiders\": 1.631,\n  \"PercentInstitutions\": 65.732\n },\n \"outstandingShares\": {\n  \"annual\": {\n   \"0\": {\n    \"date\": \"2026\",\n    \"dateFormatted\": \"2026-12-31\",\n    \"sharesMln\": \"14768.1150\",\n    \"shares\": 14768115000\n   }\n  }\n },\n \"Financials\": {\n  \"Income_Statement\": {\n   \"currency_symbol\": \"USD\",\n   \"yearly\": {\n    \"2025-09-30\": {\n     \"date\": \"2025-09-30\",\n     \"totalRevenue\": \"416161000000.00\",\n     \"grossProfit\": \"195201000000.00\",\n     \"operatingIncome\": \"133050000000.00\",\n     \"netIncome\": \"112010000000.00\",\n     \"ebitda\": \"144427000000.00\"\n    }\n   }\n  }\n }\n}"
GET/api/v2/bulk-fundamentals/{EXCHANGE_CODE}
$6.25 default
Description

Full-exchange fundamentals snapshot returned in a single call, served from an hourly cache.

Documentation

GET /api/v2/bulk-fundamentals/{EXCHANGE_CODE} — Full-exchange fundamentals snapshot returned in a single call, served from an hourly cache.

Returns every symbol on the exchange in one JSON response, built from a snapshot that is rebuilt hourly in the background. It takes no offset, limit or symbols parameters, which are ignored, and it replaces the many paginated calls the bulk endpoint would need. Only six exchanges have a prebuilt snapshot, and the payload is very large: NASDAQ is roughly 234 MB for about 3,070 companies, NYSE roughly 168 MB and AMEX roughly 13 MB.

EODHD call weight: 5000; required plans: extended_fundamentals.

Costs 5,000 API calls per request, by far the heaviest endpoint in this group. Returns HTTP 503 with a Retry-After header while the hourly snapshot is being rebuilt, so a client must honour that header and retry. Data is at most one hour stale, unlike the live bulk endpoint. Output blocks are identical to the bulk endpoint at version 1.2. Same 4 quarters and 4 years history cap, and stocks only.

Staged only: resale and redistribution require a signed EODHD agreement before Apiosk may activate this endpoint.

Pricing
$6.25 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "EXCHANGE_CODE": {
      "description": "One of the six exchanges with a prebuilt snapshot: NASDAQ, NYSE, AMEX, BATS, TO or V. Case-insensitive. Any other code, including the general US code, returns 404.",
      "required": true,
      "type": "string",
      "x-parameter-location": "path"
    },
    "fmt": {
      "default": "json",
      "description": "Response format. This endpoint answers in JSON only; offset, limit and symbols are ignored here.",
      "enum": [
        "json",
        "csv"
      ],
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "EXCHANGE_CODE"
  ],
  "type": "object",
  "x-apiosk-call-weight": 5000,
  "x-apiosk-capability-id": "eodhd.bulk_fundamentals_snapshot",
  "x-apiosk-free-plan": false,
  "x-apiosk-plans": [
    "extended_fundamentals"
  ],
  "x-apiosk-provider-cost-eur": 0.25,
  "x-apiosk-sellable": false,
  "x-apiosk-sellable-reason": "Blocked by EODHD's resale prohibition. See info.x-apiosk-resale-status.",
  "x-apiosk-target-buyer-price-eur": 6.25
}
Response schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "One object per company, in the order the exchange or the symbols list produced them.",
  "items": {
    "additionalProperties": true,
    "description": "Reduced fundamentals record for one company. Mirrors the single-ticker Fundamentals API with fewer fields.",
    "properties": {
      "AnalystRatings": {
        "additionalProperties": true,
        "description": "Consensus rating, target price and the counts of strong buy, buy, hold, sell and strong sell ratings.",
        "type": "object"
      },
      "Earnings": {
        "additionalProperties": true,
        "description": "Earnings trend plus the last four reported quarters under the keys Last_0 to Last_3.",
        "type": "object"
      },
      "Financials": {
        "additionalProperties": true,
        "description": "Balance_Sheet, Cash_Flow and Income_Statement, limited to the last 4 quarters and last 4 years.",
        "type": "object"
      },
      "General": {
        "additionalProperties": true,
        "description": "Identification and classification: Code, Name, Exchange, currency, country, ISIN, CUSIP, CIK, sector and industry, GIC classification, IPO date, delisting flag and description.",
        "type": "object"
      },
      "Highlights": {
        "additionalProperties": true,
        "description": "Headline metrics: market capitalization, EBITDA, PE and PEG ratios, book value, dividend share and yield, EPS and EPS estimates, margins and returns.",
        "type": "object"
      },
      "SharesStats": {
        "additionalProperties": true,
        "description": "Share statistics: shares outstanding and float, insider and institutional ownership, short interest.",
        "type": "object"
      },
      "SplitsDividends": {
        "additionalProperties": true,
        "description": "Forward dividend rate and yield, payout ratio, dividend and ex-dividend dates, last split factor and date.",
        "type": "object"
      },
      "Technicals": {
        "additionalProperties": true,
        "description": "Technical figures: beta, 52-week high and low, 50- and 200-day moving averages, short-interest figures.",
        "type": "object"
      },
      "Valuation": {
        "additionalProperties": true,
        "description": "Valuation multiples: trailing and forward PE, price-to-sales, price-to-book, enterprise value and its ratios.",
        "type": "object"
      }
    },
    "type": "object"
  },
  "type": "array"
}
Example request
{
  "EXCHANGE_CODE": "NASDAQ",
  "fmt": "json"
}