List all latest stock prices

Return one row per ticker with its latest available daily quote, walking the whole ticker universe in symbol order. Each row carries the same open/high/low/close/volume shape as the single-ticker latest price. Use it to snapshot the market in a few paginated requests instead of calling that endpoint once per security.

Only prices from the last 10 days qualify. A ticker with no quote inside that window (halted, delisted, or simply unpriced) still appears, with date, the price fields, and currency set to null, so the feed always covers every ticker exactly once.

As a batch endpoint, it requires an Individual or higher plan; free API keys receive a 402 error.

GET/v3.0.0/stock-prices/latest

Plan Access

Free

(Your plan)

Individual

$29/mo

Professional

$89/mo

Request
curl "https://api.roic.ai/v3.0.0/stock-prices/latest?apikey=YOUR_API_KEY&limit=500"
Response
200 OK
{
  "data": [
    {
      "symbol": "NASDAQ:AAPL",
      "date": "2026-07-31",
      "open": 304.81,
      "high": 306.9,
      "low": 300.32,
      "close": 302.59,
      "volume": 52434503,
      "currency": "USD"
    },
    {
      "symbol": "NASDAQ:AARD",
      "date": "2026-07-31",
      "open": 6.31,
      "high": 6.655,
      "low": 5.6153,
      "close": 6.23,
      "volume": 30775,
      "currency": "USD"
    }
  ],
  "next_page_url": null,
  "previous_page_url": null
}

Parameters

Query parameters

exchangestringoptional

Filter by exact exchange code. Check the list of available exchanges for every code.

Example: NASDAQ
orderstringoptional

Sort by qualified ticker symbol (symbol).

Default: ascValues: ascdesc
limitintegeroptional

Maximum number of resources to return.

Default: 500Min: 1Max: 2000
pagestringoptional

Opaque page token from a previous response. Follow the returned page URL when possible.

Response

Each item in data is one ticker's latest quote, identified by its symbol. Follow next_page_url unchanged to continue paging; see Responses for how cursor pagination works. The freshness window is fixed when you request the first page, so a walk that takes a while (even across midnight) stays consistent from the first page to the last.

Response fields

dataarray of objects

Array of latest-price resources, one per ticker, ordered by symbol.

+ Show child attributes
symbolstring

Qualified symbol combining the exchange code and ticker separated by a colon, e.g. NASDAQ:AAPL. Every ticker appears exactly once.

datestring

Trading day of the latest available quote, in YYYY-MM-DD format. null when the ticker has no price inside the 10-day freshness window.

opennumber

Price of the first trade of that regular session, in currency units. null when the ticker has no recent price.

highnumber

Highest price traded during that session. null when the ticker has no recent price.

lownumber

Lowest price traded during that session. null when the ticker has no recent price.

closenumber

Price of the last trade of that regular session, in currency units. null when the ticker has no recent price.

volumenumber

Total number of shares traded during that session. null when the ticker has no recent price.

currencystring

ISO 4217 code of the currency the price is quoted in, e.g. USD. Matches the ticker's trading currency. null when the ticker has no recent price.

next_page_urlnullable

URL of the next page of results, or null when there are no more pages. Request it unchanged to continue paging.

previous_page_urlnullable

URL of the previous page of results, or null on the first page.

Examples

The latest quote for every NASDAQ listing:

curl "https://api.roic.ai/v3.0.0/stock-prices/latest?apikey=YOUR_API_KEY&exchange=NASDAQ&limit=500"

Use cases

Use the batch route when a workflow needs the latest daily quote for many securities at once.

  • Refresh a local market snapshot without making one request per ticker.
  • Build exchange-wide scanners for closing prices, volume, and missing quotes.
  • Preserve a complete ticker universe by retaining unpriced rows with null quote fields.

Data timing

Each row is the latest daily record available to the API, not an intraday tick. While the current trading day is still open, its values can still change. Inspect date rather than assuming the response is a live streaming quote.

Use the single-ticker routes when you only need one security.