Skip to main content

HTTP Conventions

Senticore HTTP endpoints use JSON request and response bodies, stable error envelopes, and explicit headers for rate limits and idempotency.

Headers

HeaderDirectionPurpose
AuthorizationRequestBearer session token or delegated credential token where applicable
X-Client-Order-IdRequestIdempotency key for order placement and retry safety
X-Request-IdResponseSupport and trace identifier
X-RateLimit-LimitResponseAllowed requests in current window
X-RateLimit-RemainingResponseRemaining requests in current window
X-RateLimit-ResetResponseUnix timestamp for window reset
Retry-AfterResponseBackoff guidance for 429 and 503

JSON conventions

  • Quantities, prices, and notionals are encoded as decimal strings.
  • Timestamps use Unix milliseconds unless explicitly documented otherwise.
  • Market identifiers use hyphenated symbols such as BTC-USDC.
  • Cursor pagination is used for historical endpoints.

Pagination

{
"data": [],
"nextCursor": "eyJvZmZzZXQiOjEwMH0"
}

Clients should treat cursors as opaque and should not parse or construct them manually.

Idempotency

Order placement accepts clientOrderId or X-Client-Order-Id. Retrying the same order with the same identifier returns the existing order state instead of creating a duplicate.

See Idempotency.

Errors

All error responses use the same envelope:

{
"error": {
"code": "insufficient_collateral",
"message": "Available collateral below order requirement",
"retryable": false,
"details": {
"required": "1500.00",
"available": "1200.00"
}
}
}

See Error Model.