Skip to content

422 validation_failed

HTTP status
422
Code
validation_failed
Title
Validation failed
Meaning
The request body or parameters are invalid. See errors[].

What to do

errors[] lists each invalid field by path, without echoing your values. Fix those fields and send the request again.

Where it comes from

  • POST /v1/contacts
  • POST /v1/contacts/batch
  • POST /v1/contacts/lookup
  • GET /v1/contacts
  • PATCH /v1/contacts/{id}
  • POST /v1/contacts/{id}/resubscribe
  • POST /v1/segments
  • PATCH /v1/segments/{id}
  • POST /v1/segments/count
  • POST /v1/templates
  • POST /v1/templates/{id}/versions
  • POST /v1/templates/{id}/render
  • POST /v1/campaigns
  • PATCH /v1/campaigns/{id}
  • POST /v1/campaigns/{id}/test
  • GET /v1/campaigns
  • GET /v1/campaigns/{id}/recipients
  • POST /v1/imports/csv
  • POST /v1/imports/mailchimp
  • GET /v1/imports
  • POST /v1/imports/{id}/commit
  • GET /v1/exports
  • POST /v1/exports
  • POST /v1/setup/domains
  • PATCH /v1/settings
  • POST /v1/keys

The response

Errors are application/problem+json (RFC 9457). detail never repeats the values you sent, and type links to this page. Quote requestId if you contact support.

{
"type": "https://docs.rhinorelay.com/api/errors/validation-failed/",
"title": "Validation failed",
"status": 422,
"code": "validation_failed",
"detail": "The request body or parameters are invalid. See errors[].",
"requestId": "req_01J9Z8X7W6V5T4S3R2Q1P0N9M8",
"errors": [
{
"path": "email",
"message": "invalid email address"
}
]
}

See it

With $BASE and $KEY set as in the quick start:

Terminal window
# Expect 422 validation_failed
curl -X POST "$BASE/contacts" -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' \
-d '{"email":"not-an-address","consent":{"source":"signup-form","at":"2026-06-01T09:00:00Z","method":"single_opt_in"}}'

Every error code