OHLCV Data

Daily price bars for US-listed companies in Daloopa coverage

Daily price bars for US-listed companies in Daloopa coverage. Each bar is one company on one US trading day: opening price, intraday high and low, closing price, and total traded volume. There is exactly one row per company per trading day, and rows always come back sorted by date, oldest first.

Endpoint

EndpointPurpose
GET /api/v3/companies/{company_id}/stock-pricesReturns daily OHLCV bars for one company, raw by default, adjusted on request

Authenticate with Authorization: Basic base64(email:apiKey). The endpoint requires the market_data endpoint group on your API key (or full_access) and is rate limited to 120 requests per minute per key.

The company_id is the same id you use everywhere else in the Daloopa API. If you only have a ticker, resolve it to a company id first with the company search endpoint.

Parameters

ParameterTypeRequiredNotes
datesdate, repeatableOne of dates or start_dateSpecific trading dates, YYYY-MM-DD, up to 100 per request. Cannot be combined with start_date/end_date
start_datedateOne of dates or start_dateStart of a date range, inclusive
end_datedateNoEnd of the range, inclusive. Must not be before start_date
adjustedbooleanNoDefault false. Set true for split- and dividend-adjusted values
limitintegerNoRows per page, default and maximum 500
offsetintegerNoPagination offset

Response

Responses are paginated with the standard count, next, previous, results envelope. Each row in results has:

FieldTypeDescription
datedateTrading date for the returned datapoint
opennumberOpening price on the trading date
highnumberHighest price reached during the trading date
lownumberLowest price reached during the trading date
closenumberClosing price on the trading date
volumeintegerTotal traded volume for the trading date, in shares
adjustedbooleanEcho of the request's adjusted flag

Prices carry up to 6 decimal places. All covered listings trade on US exchanges, so prices are in US dollars.

Example

Fetch Apple's bars for two specific dates:

curl "https://app.daloopa.com/api/v3/companies/2/stock-prices?dates=2024-01-02&dates=2024-01-03" \
  -H "Authorization: Basic <base64 of email:apiKey>"
{
  "count": 2,
  "next": null,
  "previous": null,
  "results": [
    {
      "date": "2024-01-02",
      "open": 190.18,
      "high": 190.25,
      "low": 183.89,
      "close": 185.32,
      "volume": 22964749,
      "adjusted": false
    },
    {
      "date": "2024-01-03",
      "open": 185.08,
      "high": 185.87,
      "low": 183.435,
      "close": 184.2,
      "volume": 16177208,
      "adjusted": false
    }
  ]
}

Raw by default, adjusted on request

By default you get prices exactly as the exchanges reported them on the day. A 10-for-1 split shows up as the price dropping to a tenth overnight, because that is what happened on the tape.

Add ?adjusted=true and the API adjusts every bar at read time, using the standard forward-adjustment convention:

  • Open, high, low, and close are multiplied by the combined factor of every split, cash dividend (specials included), and spinoff whose ex-date falls after the bar's date. A factor never applies to its own ex-date, since bars from the ex-date on are already in post-event terms.
  • Volume is divided only by split factors, since only splits change the share count, and is rounded to whole shares.

The most recent bars are always unchanged. Adjustment only rewrites history so that returns computed across an event come out right. Two things the adjusted series deliberately does not do: it does not value spun-off entities, and it is not a reconstructed total-return series.

If you want to verify the adjustment or apply your own convention, every underlying event is available through the Adjustment Factors endpoint.

Reading gaps

  • Non-trading days have no rows. Weekends, market holidays, and halted days are simply absent. There is no fill-forward.
  • A request for specific dates returns rows only for the dates that have bars.
  • A company_id with no price coverage returns an empty list with HTTP 200, not an error.
  • Newly listed companies have bars from their listing date. Established coverage goes back to January 2019.

Full request and response schemas are in the API reference.


Did this page help you?