Idempotency-Key header. This includes POST /v1/orders,
POST /v1/twap-orders, POST /v1/scaled-orders, and
POST /v1/positions/{position_id}/close. Use a unique value for each intended
operation and reuse that same value only when retrying the identical request
on the same endpoint.
Standard orders and position closes also accept an optional client_order_id
in the JSON body. The two values serve different purposes:
Idempotency-Keyidentifies one HTTP operation and prevents duplicate placement when that operation is retried.client_order_ididentifies the resulting order in your own system. It is returned with the order and can be used to retrieve that order without its server-assignedid.
201 Created. A retry with the same key and
payload returns 200 OK with the order’s current state. That state may have
advanced since the first response, for example from pending to filled, so use
the status returned by the retry.
A trading-rule rejection returns 422 on both the original request and every
matching retry. The error keeps the original order_id, rule code, and details,
so a lost response cannot turn a rejected placement into an apparent success.
Reusing an idempotency key with a different account, market, side, size, or
other order field is rejected. Generate keys with enough entropy, such as a
UUIDv4 or ULID, and retain them alongside your local order record.
Reconcile by client order ID
Setclient_order_id before sending an order, then persist it with your local
order intent. It may contain non-space printable ASCII characters and may be up
to 128 characters. IDs are unique across your MyFundedPerps user, including
orders submitted with a different API key.
data array. You may also send account_id to require the match to
belong to a particular account. Do not combine client_order_id with status,
limit, or cursor.
Reusing a client order ID with the identical placement returns the existing
order, even after API key rotation. Reusing it for a different payload returns
409 client_order_id_conflict.