Skip to main content
A WebSocket with every new copy instruction of your instance as it is made. It carries the same instructions as the copy_trade.instruction webhook, without the round trip to a public URL, so it suits a trading backend that holds a connection open. It is available on every plan and only carries your own instance’s instructions.

Connecting

Pass your API key as the api_key or apiKey query parameter, or as an Authorization Bearer header. The connection starts streaming right away, there is nothing to subscribe to.
string
required
Your API key. apiKey works too, or an Authorization Bearer header.
string
Your Instance ID. Only needed when your account has several instances.

Messages

Every message is a JSON object with an event field.
ready
copy_trade.instruction
heartbeat
error
When several of your services hold a connection, each of them receives every instruction. Deduplicate on the instruction id before you execute, and if you also receive the webhook, use the same id across both.

Staying connected

Send the text ping at any time, the server answers with pong. When you send nothing for 30 seconds, the server sends a heartbeat and checks that your key is still valid. A revoked or disabled key ends the connection. Instructions made while you were disconnected are not replayed. Reconnect with a short backoff and fetch what is still open with GET /v1/copy-trading/instructions?status=pending.

Limits and errors

Each API key can hold at most 5 copy trading stream connections at once, counted separately from the other streams.