Migration deadline: Friday, June 5, 2026 at 00:00 UTC. The whole quantdataapi.com domain (this site and the API) is moving to nodebar.dev. In your code, update api.quantdataapi.comapi.nodebar.dev and replace the qda_ prefix on your API key with nb_. Same key body, no new key to receive.
data_object API Reference

POST /features/compute

Compute one or multiple quantitative features for a symbol over a time range, in a single request.

Base URL

https://api.nodebar.dev

Auth header

X-API-Key: <YOUR_API_KEY>

Content-Type

application/json
info

Pass any combination of features in a single request. Each feature costs 1 credit. All results are aligned to the same timestamps.

Request body

Field Type Required Description
symbol string yes Asset symbol. E.g. AAPL, EUR/USD, BTC/USD
timeframe string yes 1m 5m 15m 30m 1h 4h 1d 1w
start string yes Start datetime. ISO 8601 UTC, e.g. 2024-01-01T00:00:00Z
end string yes End datetime. ISO 8601 UTC, e.g. 2024-12-31T23:59:59Z
features array yes List of feature objects to compute. See below.
response_format string no json (default), csv or parquet

Feature object

Field Type Required Description
name string yes Feature identifier. E.g. returns, historical_volatility
params object no Feature-specific parameters. Default values are used for any omitted key. See each feature's docs page.

Example request

Compute log returns and rolling volatility for EUR/USD on 1m.

content_copy
curl -X POST https://api.nodebar.dev/features/compute \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "symbol": "EUR/USD",
    "timeframe": "1m",
    "start": "2024-01-01T00:00:00Z",
    "end": "2024-12-31T23:59:59Z",
    "features": [
      {"name": "returns", "params": {}},
      {"name": "historical_volatility", "params": {"window": 30}}
    ]
  }'

Response format

Each page returns up to 200,000 bars. If next_start is not null, pass it as start in your next request. See Pagination.

Field Type Description
rows integer Number of bars in this page.
next_start string | null null on last page. Otherwise an ISO timestamp to use as start for the next page.
data array Row objects with timestamp, symbol, and one key per computed feature.

Example response

JSON
more pages available
{
  "rows": 200000,
  "next_start": "2024-06-10T14:32:00+00:00",
  "data": [
    {
      "timestamp": "2024-01-02T09:30:00+00:00",
      "symbol": "EUR/USD",
      "returns_log_close": null,
      "historical_volatility_30_close": null
    },
    {
      "timestamp": "2024-01-02T09:31:00+00:00",
      "symbol": "EUR/USD",
      "returns_log_close": 0.000842,
      "historical_volatility_30_close": null
    },
    ...
  ]
}
tips_and_updates

Notes

  • All timestamps are UTC ISO 8601.
  • Each feature name costs 1 credit per request, regardless of date range or number of bars.
  • Rolling features return null for the first window - 1 rows (warm-up period).
  • Market gaps (weekends, holidays) appear as null, not backfilled.
  • Maximum 200,000 bars per page. Use next_start for longer ranges.