Partner API

Market

Market data for your middleware: current quotes from the platform's price mirror, the platform's own chart history and what the brand's clients trade most.

GET/api/external/v1/quotes

#Current bid / ask of symbols (the same mirror the trading platform prices from)

Auth X-Api-Key accounts:read Partner API

Scope accounts:read. ?symbols=EURUSD,XAUUSD or ?symbol_ids=1,2 (up to 200). 503 quotes_unavailable while the price mirror is off or stale.

Query parameters

symbols string optional

Comma-separated symbol names.

symbol_ids string optional

Comma-separated symbol ids.

Responses

200

The quotes.

404

not_found / user_not_found / account_not_found / symbol_not_found.

422

invalid_request with details.errors = { field: reason }.

503

quotes_unavailable.

curl "https://api.your-brand.com/api/external/v1/quotes" \
  -H "X-Api-Key: $OCTOLIT_PARTNER_KEY"
Response 200
{
  "quotes": [
    {
      "symbol_id": 42,
      "symbol": "EURUSD",
      "pair": "string",
      "bid": 1.08452,
      "ask": 1.08461,
      "mid": 1.084565,
      "ts": 1762862400123
    }
  ],
  "source": "trading",
  "mirror_at": 1
}
GET/api/external/v1/bars

#Chart history (OHLCV bars) of a symbol

Auth X-Api-Key accounts:read Partner API

Scope accounts:read. The bars the platform's own chart draws, from the server's price history (every resolution the chart has). Pages backwards from to: when complete is false call again with to=next_to. 503 history_unavailable (with Retry-After) while the history store is not loaded.

Query parameters

symbol string optional

Symbol name (or symbol_id).

symbol_id integer optional
resolution enum optional

Also accepted: 1, 5, 15, 30, 60, 240, D, W, M, 1d, 1w.

1m5m15m30m1h4h1D1W1M
to string optional

Newest bar open time (epoch s

from string optional

Oldest bar open time (same formats).

count integer optional

Responses

200

The bars, oldest first.

404

not_found / user_not_found / account_not_found / symbol_not_found.

422

invalid_request with details.errors = { field: reason }.

503

history_unavailable.

curl "https://api.your-brand.com/api/external/v1/bars" \
  -H "X-Api-Key: $OCTOLIT_PARTNER_KEY"
Response 200
{
  "symbol_id": 42,
  "symbol": "EURUSD",
  "pair": "string",
  "resolution": "1h",
  "from": 1,
  "to": 1,
  "count": 500,
  "bars": [
    {
      "t": 1,
      "o": 1.5,
      "h": 1.5,
      "l": 1.5,
      "c": 1.5,
      "v": 1.5
    }
  ],
  "complete": true,
  "next_to": 1
}
GET/api/external/v1/users/{external_id}/trending

#Trending instruments of the user's brand

Auth X-Api-Key accounts:read Partner API

Scope accounts:read. The instruments the brand's OWN clients traded most in the window (orders opened, distinct clients, share, buy percentage) - never another brand's data, and only symbols at least min_clients clients traded. Per brand switch "Trending instruments" (default on): 403 trending_disabled when off, 503 trending_unavailable when the server has it off or cannot compute it right now.

Path parameters

external_id string required

Your client id (1-191 letters, digits, . _ @ : + -). Stored on the client as external_user_id.

Query parameters

window enum optional
1h24h7d
limit integer optional

Responses

200

The ranking.

403

insufficient_scope, ip_not_allowed, api_disabled, company_inactive, brand_disabled, sso_disabled, trending_disabled (trading on behalf also: brand_inactive, client_inactive, trading_inactive, trading_denied).

404

not_found / user_not_found / account_not_found / symbol_not_found.

422

invalid_request with details.errors = { field: reason }.

503

trending_unavailable.

curl "https://api.your-brand.com/api/external/v1/users/cust_10042/trending" \
  -H "X-Api-Key: $OCTOLIT_PARTNER_KEY"
Response 200
{
  "now": 1,
  "as_of": 1,
  "scope": "brand",
  "window": "24h",
  "from": 1,
  "min_clients": 1,
  "total_trades": 1,
  "symbols": [
    {
      "rank": 1,
      "symbol": "EURUSD",
      "ticker": "string",
      "ticker_id": 42,
      "name": "Main",
      "trades": 1,
      "clients": 1,
      "share_pct": 1.5,
      "buy_pct": 1.5
    }
  ]
}