Skip to main content

API Coverage

This document records how the local alpaca-data API maps to the official Alpaca Market Data HTTP API.

Source Of Truth

This coverage contract is based on:

  • Official reference root: https://docs.alpaca.markets/reference/api-references
  • Official OpenAPI: https://docs.alpaca.markets/openapi/market-data-api.json
  • Official OpenAPI title: Market Data API
  • Official OpenAPI version observed on 2026-04-04: 1.1

The machine-readable companion file is:

  • tools/api-coverage/market-data-api.json

Interpretation Rules

  • Mirror layer means a local method that directly corresponds to an official HTTP endpoint.
  • Convenience layer means a local helper such as *_all or *_stream that automates pagination on top of a mirror method.
  • The convenience layer is not counted as official endpoint coverage.
  • Out-of-scope entries are split into:
    • gaps inside already adopted resource families
    • official Market Data resource families not yet adopted by the local crate

Coverage Summary

As of 2026-04-04:

  • Official OpenAPI paths in the Market Data API: 47
  • Official paths in the adopted local resource families (stocks, options, crypto, news, corporate_actions): 36
  • Implemented local mirror paths in those adopted families: 36
  • Known open gaps inside adopted families: 0

Open gaps inside adopted families:

  • None.

Known parity gaps inside implemented families:

  • None.

Official Market Data families not yet adopted locally:

  • Forex
  • Logos
  • Fixed income
  • Screener
  • Crypto perpetual futures

Mirror Layer

Stocks

Official pathOperation IDLocal mirror methodConvenience helpersStatus
/v2/stocks/barsStockBarsstocks().barsbars_all, bars_streamImplemented
/v2/stocks/{symbol}/barsStockBarSinglestocks().bars_singlebars_single_all, bars_single_streamImplemented
/v2/stocks/quotesStockQuotesstocks().quotesquotes_all, quotes_streamImplemented
/v2/stocks/{symbol}/quotesStockQuoteSinglestocks().quotes_singlequotes_single_all, quotes_single_streamImplemented
/v2/stocks/tradesStockTradesstocks().tradestrades_all, trades_streamImplemented
/v2/stocks/{symbol}/tradesStockTradeSinglestocks().trades_singletrades_single_all, trades_single_streamImplemented
/v2/stocks/bars/latestStockLatestBarsstocks().latest_barsNoneImplemented
/v2/stocks/{symbol}/bars/latestStockLatestBarSinglestocks().latest_barNoneImplemented
/v2/stocks/quotes/latestStockLatestQuotesstocks().latest_quotesNoneImplemented
/v2/stocks/{symbol}/quotes/latestStockLatestQuoteSinglestocks().latest_quoteNoneImplemented
/v2/stocks/trades/latestStockLatestTradesstocks().latest_tradesNoneImplemented
/v2/stocks/{symbol}/trades/latestStockLatestTradeSinglestocks().latest_tradeNoneImplemented
/v2/stocks/snapshotsStockSnapshotsstocks().snapshotsNoneImplemented
/v2/stocks/{symbol}/snapshotStockSnapshotSinglestocks().snapshotNoneImplemented
/v2/stocks/auctionsStockAuctionsstocks().auctionsauctions_all, auctions_streamImplemented
/v2/stocks/{symbol}/auctionsStockAuctionSinglestocks().auctions_singleauctions_single_all, auctions_single_streamImplemented
/v2/stocks/meta/conditions/{ticktype}StockMetaConditionsstocks().condition_codesNoneImplemented
/v2/stocks/meta/exchangesStockMetaExchangesstocks().exchange_codesNoneImplemented

Options

Official pathOperation IDLocal mirror methodConvenience helpersStatus
/v1beta1/options/barsoptionBarsoptions().barsbars_all, bars_streamImplemented
/v1beta1/options/tradesOptionTradesoptions().tradestrades_all, trades_streamImplemented
/v1beta1/options/quotes/latestOptionLatestQuotesoptions().latest_quotesNoneImplemented
/v1beta1/options/trades/latestOptionLatestTradesoptions().latest_tradesNoneImplemented
/v1beta1/options/snapshotsOptionSnapshotsoptions().snapshotssnapshots_all, snapshots_streamImplemented
/v1beta1/options/snapshots/{underlying_symbol}OptionChainoptions().chainchain_all, chain_streamImplemented
/v1beta1/options/meta/conditions/{ticktype}OptionMetaConditionsoptions().condition_codesNoneImplemented
/v1beta1/options/meta/exchangesOptionMetaExchangesoptions().exchange_codesNoneImplemented

Crypto

Official pathOperation IDLocal mirror methodConvenience helpersStatus
/v1beta3/crypto/{loc}/barsCryptoBarscrypto().barsbars_all, bars_streamImplemented
/v1beta3/crypto/{loc}/quotesCryptoQuotescrypto().quotesquotes_all, quotes_streamImplemented
/v1beta3/crypto/{loc}/tradesCryptoTradescrypto().tradestrades_all, trades_streamImplemented
/v1beta3/crypto/{loc}/latest/barsCryptoLatestBarscrypto().latest_barsNoneImplemented
/v1beta3/crypto/{loc}/latest/quotesCryptoLatestQuotescrypto().latest_quotesNoneImplemented
/v1beta3/crypto/{loc}/latest/tradesCryptoLatestTradescrypto().latest_tradesNoneImplemented
/v1beta3/crypto/{loc}/latest/orderbooksCryptoLatestOrderbookscrypto().latest_orderbooksNoneImplemented
/v1beta3/crypto/{loc}/snapshotsCryptoSnapshotscrypto().snapshotsNoneImplemented

News

Official pathOperation IDLocal mirror methodConvenience helpersStatus
/v1beta1/newsNewsnews().listlist_all, list_streamImplemented

Corporate Actions

Official pathOperation IDLocal mirror methodConvenience helpersStatus
/v1/corporate-actionsCorporateActionscorporate_actions().listlist_all, list_streamImplemented

Convenience Layer

The local convenience layer adds helpers on top of paginated official endpoints.

ResourceMirror methodConvenience helpers
stocksbarsbars_all, bars_stream
stocksbars_singlebars_single_all, bars_single_stream
stocksauctionsauctions_all, auctions_stream
stocksauctions_singleauctions_single_all, auctions_single_stream
stocksquotesquotes_all, quotes_stream
stocksquotes_singlequotes_single_all, quotes_single_stream
stockstradestrades_all, trades_stream
stockstrades_singletrades_single_all, trades_single_stream
optionsbarsbars_all, bars_stream
optionstradestrades_all, trades_stream
optionssnapshotssnapshots_all, snapshots_stream
optionschainchain_all, chain_stream
cryptobarsbars_all, bars_stream
cryptoquotesquotes_all, quotes_stream
cryptotradestrades_all, trades_stream
newslistlist_all, list_stream
corporate_actionslistlist_all, list_stream

Official Endpoints Not Yet Adopted Locally

These official Market Data families are present in the OpenAPI but remain outside the current local crate scope.

Official tagOfficial paths
Fixed income/v1beta1/fixed_income/latest/prices
Forex/v1beta1/forex/latest/rates, /v1beta1/forex/rates
Logos/v1beta1/logos/{symbol}
Screener/v1beta1/screener/stocks/most-actives, /v1beta1/screener/{market_type}/movers
Crypto perpetual futures/v1beta1/crypto-perps/{loc}/latest/bars, /v1beta1/crypto-perps/{loc}/latest/pricing, /v1beta1/crypto-perps/{loc}/latest/orderbooks, /v1beta1/crypto-perps/{loc}/latest/quotes, /v1beta1/crypto-perps/{loc}/latest/trades

Known Parity Gaps Inside Implemented Families

KindLocal areaOfficial factLocal factStatus
None---Closed

Release Interpretation

This document is intentionally strict:

  • Implemented means the local crate exposes a mirror-layer method for that official HTTP endpoint.
  • Gap means the official endpoint exists in an adopted local resource family but is not yet implemented.
  • Not adopted means the official family exists in Alpaca Market Data, but the local crate has not added that resource family yet.

The machine-readable manifest is the source that future API audit tooling should consume first. It stores the current endpoint mapping, parameter signatures, response-field signatures, convenience helpers, and known parity gaps.

Audit Workflow

Future API sync and release-preparation work should start with:

  • ./scripts/api-sync-audit

The expected audit order is:

  1. Compare the latest official OpenAPI and reference pages against tools/api-coverage/market-data-api.json.
  2. Check mirror-path coverage, parameter signatures, response-field signatures, known enum gaps, and out-of-scope families.
  3. Fix mirror drift first.
  4. Re-validate *_all and *_stream compatibility only after the mirror layer is back in sync.

The current baseline audit should continue to surface any future mirror drift, parameter drift, response-field drift, or enum drift against the official Market Data API.