Error codes
Errors respond with an HTTP status and a body in the format application/problem+json (RFC 9457). Have your program read code; title and detail are written for humans and may change.
Every response has the X-Request-Id header, the same as request_id in the error. Include it if you contact us at support@qrona.se.
Example
{
"type": "https://newsletter.qrona.se/developer/api/errors#validation_failed",
"title": "The details are invalid",
"status": 422,
"code": "validation_failed",
"request_id": "6c0e1f5a-2b8d-4e3f-9a71-0c5d2e8b4f19",
"errors": [
{
"field": "consent_source",
"message": "Describe how the person gave consent."
}
]
}- 400
- bad_request
- The request could not be read. The body is not valid JSON, or is too large.
- 401
- unauthenticated
- API key missing. No Authorization: Bearer header.
- 401
- invalid_key
- Unknown API key. The key does not exist (misspelt, or from another environment).
- 401
- key_revoked
- The API key has been revoked. An administrator has revoked the key.
- 401
- key_expired
- The API key has expired. The key has expired.
- 401
- key_inactive
- The API key is no longer valid. The person who created the key no longer has access to the workspace, or the workspace is closed.
- 402
- payment_required
- Subscription required. The trial has ended and no payment method has been selected.
- 403
- insufficient_scope
- The key lacks the required scope. The key does not have the scope that the request requires.
- 403
- forbidden
- Not allowed. The person behind the key does not have the required role, or the contact is outside what the person may see.
- 403
- workspace_suspended
- The workspace is paused. Qrona has paused the workspace.
- 404
- not_found
- Not found. The resource does not exist, or is outside what the key is allowed to see.
- 409
- contact_exists
- The contact already exists. A contact with this address already exists. Use /contacts/upsert to create or update.
- 409
- contact_erased
- The contact has been erased. The contact has been erased (GDPR) and cannot be changed or added again.
- 409
- suppressed
- The address is suppressed. The address is on the suppression list.
- 409
- blocked
- The address does not receive mailings. The address bounces, has made a spam complaint, is deleted or is suppressed.
- 409
- opted_out
- The person has unsubscribed. Only the person themselves can sign up again.
- 409
- sending_not_enabled
- Mailings are not approved. The workspace has not been approved for mailings yet, so no confirmation email can be sent.
- 409
- list_in_use
- The list is in use. A campaign that is due to be sent uses the list.
- 409
- limit_reached
- The limit has been reached. The workspace already has as many stores or webhooks as it can.
- 409
- idempotency_in_progress
- The request is already in progress. A request with the same Idempotency-Key is still running. Wait a moment and send it again.
- 409
- idempotency_conflict
- idempotency_key is already used. The message's idempotency_key has already been used for a message with other content. The same content again gives the first message.
- 409
- template_not_published
- The template is not published. There is a Qrona template with the key, but no published version to make messages from.
- 409
- sender_not_configured
- Sender missing. The add-on has no verified sender. An administrator chooses it under Settings → Add-ons.
- 415
- unsupported_media_type
- Wrong content type. The body must be sent as application/json.
- 422
- validation_failed
- The details are invalid. One or more fields are invalid. See errors[].
- 422
- idempotency_key_reused
- Idempotency-Key already in use. The key has already been used for a different request (different path or body) in the last 24 hours. Use a new key for each new request.
- 429
- rate_limited
- Too many requests. The key has made too many requests. Wait the number of seconds that Retry-After states.
- 500
- internal_error
- Something went wrong on our side. Try again. Refer to request_id if it persists.