API v1 · 4xx
invalid_request
| HTTP | When |
|---|---|
| 400 | A required field is missing, or a value is malformed. |
Common cases:
- Required query parameter omitted (e.g.
GET /v1/noteswithoutprojectId). - Enum field given an unknown value (e.g.
?status=BOGUSagainst/v1/posts). - Date filter with the wrong format (
?dateFrom=15/05/2026— must beYYYY-MM-DD). - A request body fails validation on a write endpoint.
The error envelope's details field, when present, names the offending
parameter:
json
{
"error": {
"code": "invalid_request",
"message": "Unknown 'status' value(s): BOGUS.",
"request_id": "req_…",
"docs_url": "https://docs.scripe.io/api/v1/errors#invalid_request"
}
}To recover, fix the malformed input and retry. The request did not have
side effects on the server — invalid_request is rejected before any
write would have happened.
On the MCP surface, invalid_request also covers confirmation-token
failures on the two-phase tools: details.reason is
confirmation_invalid (the subject changed since the proposal, or the
token belongs to a different action) or confirmation_expired (past the
~5-minute TTL). Recover by calling the tool again without a token to get
a fresh proposal — see
MCP tools § Two-phase confirmation.