Meet the new Scripe, live on October 7.Register

API v1 · 4xx

invalid_request

HTTPWhen
400A required field is missing, or a value is malformed.

Common cases:

  • Required query parameter omitted (e.g. GET /v1/notes without projectId).
  • Enum field given an unknown value (e.g. ?status=BOGUS against /v1/posts).
  • Date filter with the wrong format (?dateFrom=15/05/2026 — must be YYYY-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.