For the complete documentation index, see llms.txt. This page is also available as Markdown.

Private Endpoints

Private endpoints cover trading, balances, account actions, and trading history.

Service Hosts

There is no single gateway. Each path prefix maps to its own service:

Path prefix
Host

/orders/*

https://order-service.outpoll.com

/api/events/*

https://event-service.outpoll.com

/api/user-balances/*

https://wallet-mutator-view.outpoll.com

/api/history/*

https://history-service.outpoll.com

/api/deposit/*

https://wallet-mutator-view.outpoll.com

/api/transactions

https://wallet-mutator-view.outpoll.com

/auth/*

https://auth-service.outpoll.com

Authentication

Trading and data endpoints use API key headers.

Header
Description

OUTPOLL-API-KEY

API key. Starts with op_k_

OUTPOLL-API-SIGNATURE

Base64URL-encoded HMAC-SHA256 signature

OUTPOLL-API-TIMESTAMP

Unix timestamp in seconds

Build the signature payload as:

message = timestamp + method + path + body

Use only the path.

Do not include the full URL.

Do not include the query string.

Timestamps must be within 30 seconds of server time.

Signature example

Use this worked example for a signed POST request.

Input values

  • API key: op_k_abc123

  • API secret: dGVzdF9zZWNyZXRfMTIzNDU2Nzg

  • timestamp: 1712500000

  • method: POST

  • path: /orders/market

1

Build the message

Concatenate timestamp + method + path + body.

2

Decode the secret

The secret is base64url encoded.

This value is already correctly padded.

Decode it to raw bytes before signing.

3

Compute the digest

Generate HMAC-SHA256(secret_bytes, message).

The output is 32 raw bytes.

4

Encode the signature

Base64url-encode the digest.

Strip any trailing = characters.

5

Send the headers

Include the API key, signature, and timestamp headers.

The body must match the exact JSON string sent on the wire. Any spacing or field order change will change the signature.

cURL example

Use this shell example to compute the signature and send the request with curl.

Python signature example

Use this example to sign and send a market order request directly to the order service.

JavaScript signature example

Use this example to sign and send the same request with fetch.

OutpollClient

Use a path-to-host map when one client needs to call multiple private services.

Sections

  • API Keys for key creation, inspection, and revocation.

  • Orders for limit, market, and TP/SL orders.

  • Portfolio for portfolio-related endpoints.

  • Positions for open positions and active orders.

  • Balances for balance queries.

  • Deposit for the USDC deposit address.

  • History & Stats for history coverage.

  • History for orders, trades, transactions, activity, and profile metrics.

Example IDs

Examples use readable placeholders:

  • evt_btc_100k_2026 for an event

  • mkt_btc_100k_yes_no for a market

  • asset_btc_100k_yes for the YES asset

  • asset_usdc for USDC

  • ord_7f3a9c2d for an order

  • tpsl_4e2b1a90 for a TP/SL order

Shared rules

See FAQ for rate limits, pagination, and common error handling.

Last updated

Was this helpful?