GET /v1/sse/operations/:id
:id is the order ID (ord_...). Connections are rate limited to 30 per minute per IP.
Authentication
EventSource cannot set headers, so the API key goes in the token query parameter instead of Authorization.
- Server keys (
fn_):?token=fn_...streams any order owned by your partner. Do not embed server keys in browser code. - Client keys (
fnp_): require theorders:ssescope and a second query parameter,readToken, the order-scoped token returned in the/submitor/onrampresponse that created the order with that client key. The readToken is bound to the partner, the client key, and the order ID, and expires 24 hours after issuance. A missing or invalid readToken returns403.
404.
Events
| Event | Data | When |
|---|---|---|
status | {"status": "swapping"} | Immediately on connect (current status), then on every status change |
heartbeat | empty | Every 15 seconds while the stream is open |
GET /v1/orchestration/status; internal paused states stream as processing.
Close semantics
The server ends the stream when the order reachescompleted, failed, or refunded. If the order is already terminal at connect time, you get one status event and the stream closes.
unfulfilled does not close the stream: a late deposit can revive the order, so keep listening. If your connection drops, reconnect to the same URL; the first event replays the current status, so no transition is lost.