Skip to content
ZeroCaptcha

Support messages API

Messages to support: from the dashboard with a session, or from the public contact form with none. Staff answer by email.

Every operation of the API reference is generated from the contract the API serves, version 0.1.0. Replace YOUR_API_KEY in the samples with your key.

Contact us

POST/v1/contact-messages

Sends a message to support from the public site: stored, and emailed to our support inbox. Staff answer by email, at the address given. It needs no key or session. A browser's request must send no Sec-Fetch-Site but same-origin or none (csrf_rejected). Messages have a budget per client address.

Authentication: None: anyone may call it, within a budget per client address where the description says so.

Request body

JSON: NewContactMessage.

Fields of the request body
FieldTypeDescription
email requiredstring (email)

Where staff answer you.

message requiredstring

The message: 1 to 5,000 characters.

subjectstring

What it is about, in a line: up to 200 characters. Left out, it is "Message from the contact form".

Responses

Responses of Contact us
StatusMeaningBody
202 Accepted

Received: staff will answer by email.

SupportReceipt (application/json)
403 Forbidden

A browser's request from another site (csrf_rejected).

Problem (application/problem+json)
422 Unprocessable Content

Not an email address, no message, one over 5,000 characters, or a subject over 200 (validation_failed).

Problem (application/problem+json)
429 Too Many Requests

Too many messages from this address (rate_limited).

Problem (application/problem+json)
503 Service Unavailable

The message cannot be stored now (service_unavailable). Retry shortly.

Problem (application/problem+json)
Any other status

An error, as RFC 9457 problem details.

Problem (application/problem+json)

Error codes

csrf_rejected, validation_failed, rate_limited, service_unavailable. The errors reference says what each means, whether a retry helps and what it costs.

Sample

Terminal window
curl -X POST https://api.zerocaptcha.io/v1/contact-messages \
-H "Content-Type: application/json" \
-d '{
"email": "you@example.com",
"message": "message"
}'

Write to support

POST/v1/support-messages

Sends a message to support from the dashboard: stored, and emailed to our support inbox. Staff answer by email, at the signed-in person's address. A suspended account may write too, and appeals its suspension with topic: appeal, which reaches staff marked as an appeal. With the session's CSRF token. Messages have a budget per user.

Authentication: None: anyone may call it, within a budget per client address where the description says so.

Request body

JSON: NewSupportMessage.

Fields of the request body
FieldTypeDescription
message requiredstring

The message: 1 to 5,000 characters. Task IDs help.

subjectstring

What it is about, in a line: up to 200 characters. Left out, it is "Question from the dashboard".

topicSupportTopic

question, the default, or appeal: an appeal of the account's suspension, which only a suspended account may send. Left out, a question. An appeal without a subject is "Appeal of a suspension".

One of: question, appeal

Responses

Responses of Write to support
StatusMeaningBody
202 Accepted

Received: staff will answer by email.

SupportReceipt (application/json)
409 Conflict

An appeal from an account that is not suspended (state_conflict).

Problem (application/problem+json)
422 Unprocessable Content

No message, one over 5,000 characters, or a subject over 200 (validation_failed).

Problem (application/problem+json)
429 Too Many Requests

Too many messages from this person (rate_limited).

Problem (application/problem+json)
503 Service Unavailable

The message cannot be stored now (service_unavailable). Retry shortly.

Problem (application/problem+json)
Any other status

An error, as RFC 9457 problem details.

Problem (application/problem+json)

Error codes

state_conflict, validation_failed, rate_limited, service_unavailable. The errors reference says what each means, whether a retry helps and what it costs.

Sample

Terminal window
curl -X POST https://api.zerocaptcha.io/v1/support-messages \
-H "Content-Type: application/json" \
-d '{
"message": "message",
"subject": "A charge I don'\''t recognise"
}'