Market data / API reference
Discover scoped candle series and read semantics, not executable instruments
Request and response reference for GET /v1/exchange/candle-series.
GET
/v1/exchange/candle-seriesAuthentication: Feed bearer
Use the base URL and access configuration provided to your institution. Examples are request templates, not transaction results. Field tables focus on client fields; preserve additional metadata returned by the configured service.
Request
Use your feed-scoped bearer token against the market-data service. Feed access does not authorize exchange execution.
curl -X GET "$OSAI_MARKET_DATA_BASE_URL/v1/exchange/candle-series" \
-H "Authorization: Bearer $OSAI_FEED_TOKEN"Parameters
No endpoint-specific path or query parameters are defined. Authentication and access policy still apply.
Request body
This operation does not define a JSON request body.
Responses
Inspect HTTP status before parsing a body. These tables describe client response fields rather than invented successful transaction payloads.
200 · HTTP 200 response
| Field | Type | Description & constraints |
|---|---|---|
contract_versionRequired in parent object | string | Defined by the resource contract.Values: osai-candles/v1 |
seriesRequired in parent object | array | Defined by the resource contract. |
series[].feed_idRequired in parent object | string | Defined by the resource contract. |
series[].feed_versionRequired in parent object | string | Defined by the resource contract.Pattern: ^[1-9][0-9]*$ |
series[].pairRequired in parent object | string | Defined by the resource contract.Pattern: ^[A-Z]{3}_[A-Z]{3}$ |
series[].pair_versionRequired in parent object | string | Defined by the resource contract.Pattern: ^[1-9][0-9]*$ |
series[].base_currencyRequired in parent object | string | Defined by the resource contract. |
series[].quote_currencyRequired in parent object | string | Defined by the resource contract. |
series[].price_directionRequired in parent object | string | Defined by the resource contract.Values: QUOTE_PER_BASE |
series[].price_scaleRequired in parent object | string | Defined by the resource contract.Pattern: ^[1-9][0-9]*$ |
series[].source_typeRequired in parent object | string | Defined by the resource contract.Values: INDICATIVE |
series[].source_idRequired in parent object | string | Defined by the resource contract. |
series[].intervalsRequired in parent object | array | Defined by the resource contract. |
series[].intervals[].idRequired in parent object | string | Defined by the resource contract.Values: 1m, 5m, 15m, 1h, 4h, 1d |
series[].intervals[].duration_msRequired in parent object | integer | Defined by the resource contract.Minimum: 1 |
series[].maximum_query_bucketsRequired in parent object | integer | Defined by the resource contract.Minimum: 1Maximum: 10000 |
series[].maximum_query_eventsRequired in parent object | integer | Defined by the resource contract.Minimum: 1Maximum: 100000 |
series[].retention_msRequired in parent object | integer | Defined by the resource contract.Minimum: 1 |
series[].correction_window_msRequired in parent object | integer | Defined by the resource contract.Minimum: 1 |
series[].executableRequired in parent object | boolean | Defined by the resource contract.Values: false |
price_encodingRequired in parent object | string | Defined by the resource contract.Values: SCALED_INTEGER_STRING |
timestamp_precisionRequired in parent object | string | Defined by the resource contract.Values: MILLISECOND |
bucket_alignmentRequired in parent object | string | Defined by the resource contract.Values: UTC_BUCKET_OPEN |
range_semanticsRequired in parent object | string | Defined by the resource contract.Values: FROM_INCLUSIVE_TO_EXCLUSIVE |
limit_semanticsRequired in parent object | string | Defined by the resource contract.Values: BUCKETS_INCLUDING_GAPS |
paginationRequired in parent object | string | Defined by the resource contract.Values: NEXT_FROM_WITH_ORIGINAL_TO_AND_AS_OF |
gap_policyRequired in parent object | string | Defined by the resource contract.Values: EXPLICIT_GAPS_NO_CARRY_FORWARD |
volume_definitionRequired in parent object | string | Defined by the resource contract.Values: UNDEFINED_NULL_NO_TRADE_COUNT |
freshnessRequired in parent object | string | Defined by the resource contract.Values: NOT_EVALUATED |
externally_releasedRequired in parent object | boolean | Defined by the resource contract.Values: false |
400 · HTTP 400 response
| Field | Type | Description & constraints |
|---|---|---|
errorRequired in parent object | string | Defined by the resource contract. |
401 · HTTP 401 response
| Field | Type | Description & constraints |
|---|---|---|
errorRequired in parent object | string | Defined by the resource contract. |
403 · HTTP 403 response
| Field | Type | Description & constraints |
|---|---|---|
errorRequired in parent object | string | Defined by the resource contract. |
404 · HTTP 404 response
| Field | Type | Description & constraints |
|---|---|---|
errorRequired in parent object | string | Defined by the resource contract. |
405 · HTTP 405 response
| Field | Type | Description & constraints |
|---|---|---|
errorRequired in parent object | string | Defined by the resource contract. |
429 · HTTP 429 response
Response headers: Retry-After.
| Field | Type | Description & constraints |
|---|---|---|
errorRequired in parent object | string | Defined by the resource contract. |
503 · HTTP 503 response
| Field | Type | Description & constraints |
|---|---|---|
errorRequired in parent object | string | Defined by the resource contract. |
Retries & recovery
Keep the original request identifiers and any required idempotency key. A timeout does not establish failure. Read the original resource or command before another financial write; use expected versions for concurrent changes.