400 Bad RequestDon't retry
the order owner has to be the owner of the API KEY
The `maker` address in the order doesn't match the address associated with your API key.
The maker address in the order doesn't match the address that owns the API key. Build the order with the same wallet the credentials were derived for.
Retry? Don't retry
Sending the same request again returns the same error. Change the request first.
Returned by
- POST /order 5,000 req / 10s
Handling it in code
The CLOB API returns errors as {"error": "..."}. It also rewrites status codes by message, so branch on the text: anything containing "not found" becomes 404 and anything containing "unauthorized" becomes 401.
r = session.post(url, json=payload, headers=headers)
if r.status_code >= 400:
msg = r.json().get("error", "")
if "the order owner has to be the owner of the API KEY" in msg:
raise ValueError(msg) # fix the request, don't retryRelated errors
- 400Invalid order payload
- 400the order signer address has to be the address of the API KEY
- 400'{address}' address banned
- 400'{address}' address in closed only mode
- 503Trading is currently cancel-only. New orders are not accepted, but cancels are allowed.
- 503post-only mode: only post-only orders and cancels are allowed
For errors Polymarket doesn't document, like "order manager not ready" or 403s from the edge, see the full error guide.
Message and status from Polymarket's error reference, synced 2026-10-04.