Docs pages

Errors and limits

Every failure has the same shape:

{
  "error": {
    "code": "invalid_request",
    "message": "The owner signs in the browser at review_url. The API doesn't take a signature.",
    "param": "signature"
  }
}

message is plain English and safe to show. Over MCP, the same JSON comes back as the tool result with isError: true.

StatusCodeMeans
400invalid_requestAn input is missing or wrong. param names it.
404not_foundNo such thing, or the token is wrong.
409conflictNot allowed now, for example changing a signed application.
429rate_limitedToo many requests. retry_after is in seconds.
502upstream_unavailableThe USPTO or a website didn't answer. Nothing was checked, so don't read it as a clear result.
503offlineNew formations or applications are offline for a moment.
500internal_errorSomething failed on our side. Try again.

Rate limits

Per IP address, shared with the website.

EndpointLimit
POST /formations, POST /applications10 per 10 minutes
PATCH /formations/{id}, PATCH /applications/{id}30 per minute
GET /formations/{id}, GET /orders/{id}, GET /applications/{id}, GET /filings/{id}60 per minute
POST /filings/{id}/specimen10 per minute
POST /marks/search20 per minute
POST /marks/alternatives6 per minute
POST /sites/check10 per minute
POST /sites/read12 per minute
MCP tool calls120 per minute

POST /classes/suggest doesn't fail when you go over 20 a minute: it answers from the offline class list, and source says offline.

Retries

Nothing here charges or sends anything, so a retry is safe. Retrying POST /formations or POST /applications makes a second draft, which does no harm: unsigned drafts expire after 30 days.

Next: Changelog