download

Bulk OHLCV download — presigned parquet from R2 cold tier (Basic+, flag-gated)

Bulk download of OHLCV bars for a symbol+interval+year from R2 cold tier.

Returns a 307 redirect to a time-limited presigned URL (1 hour TTL). Free and anonymous callers are blocked — bulk download is the paid depth moat.

Tier gates: Free/anonymous: 403 plan_gated. Basic: 365-day window — years within the last year only. Pro+: full history (back to 1996 for XAU/USD daily).

Flag gate: 404 when core_ohlc_serving_enabled=False.

get/v1/download

Query parameters

symbolstring required

Symbol to download. E.g. "XAU/USD", "XAU-USD-SPOT", "GLD". Only symbols with R2-exported data are available.

Symbol to download. E.g. "XAU/USD", "XAU-USD-SPOT", "GLD". Only symbols with R2-exported data are available.

intervalstring

Bar interval. One of: 1m, 5m, 15m, 30m, 1h, 2h, 4h, 1d.

Bar interval. One of: 1m, 5m, 15m, 30m, 1h, 2h, 4h, 1d.

yearinteger required

Calendar year to download (1996-2026). Each year is one parquet file partitioned from the R2 store.

Calendar year to download (1996-2026). Each year is one parquet file partitioned from the R2 store.

fmtstring

Download format. "parquet" (default) = presigned R2 URL. "csv" = same parquet file (CSV transcode is a future enhancement; both formats serve the parquet object today).

Download format. "parquet" (default) = presigned R2 URL. "csv" = same parquet file (CSV transcode is a future enhancement; both formats serve the parquet object today).

Changes

Changed in 1 of the 8 revisions of this API.1112

  • b7c4b36e1fa11112See the full diff
    • removed the success response with the status

      response-success-status-removed

    • removed the optional property from the response with the status

      response-optional-property-removed

    • the endpoint scheme security ApiKeyAuth was added to the API

      api-security-added

    • the endpoint scheme security BearerAuth was added to the API

      api-security-added

    • added the media type application/json for the response with the status

      response-media-type-added

    • added the media type application/json for the response with the status

      response-media-type-added

    • added the media type application/json for the response with the status

      response-media-type-added

    • added the non-success response with the status

      response-non-success-status-added

    • added the non-success response with the status

      response-non-success-status-added

    • added the non-success response with the status

      response-non-success-status-added

    • removed the non-success response with the status

      response-non-success-status-removed

    • added the required property to the response with the status

      response-required-property-added

    • added the required property to the response with the status

      response-required-property-added

    • added the required property to the response with the status

      response-required-property-added

    This revision also has 4 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog