Errors
Every error is JSON with a stable code you can branch on and a message written for people. Messages can change; codes do not.
Updated September 26, 2026
The error body
{
"error": {
"code": "invalid_request",
"message": "Some query parameters are not valid.",
"details": [{ "param": "limit", "message": "Too big: expected number to be <=100" }]
}
} details appears on invalid_request (one entry per problem, with the param it is about) and on rate_limited (retry_after, limit and period).
Codes
| HTTP | Code | When |
|---|---|---|
| 400 | invalid_request | A bad query parameter, body or cursor. details lists each problem with its param. |
| 401 | unauthorized | A missing, malformed, unknown or revoked key. |
| 403 | forbidden | The key's creator can no longer do this: they left the workspace, cannot moderate, or cannot change autopilot settings. |
| 404 | not_found | No such comment, contact, hook or click in this workspace. |
| 409 | conflict | Acting on a comment that was already removed or deleted. |
| 422 | unprocessable | The platform does not allow that action on this comment (for example deleting on TikTok), or a limit was reached. The message says why in a sentence you can show as is. |
| 429 | rate_limited | Too many requests. Wait Retry-After seconds; see rate limits. |
| 500 | internal | Something failed on our side. Safe to retry. The body carries a request_id to quote to support. |
When a platform says no
Some actions are not possible on some platforms: TikTok, YouTube and Threads only let you hide other people's comments, never delete them, and blocking works on Facebook only. Those answer 422 unprocessable with a sentence you can show as is:
{
"error": {
"code": "unprocessable",
"message": "TikTok does not allow deleting other people's comments. Hide it instead."
}
} The full list is under platform limits.
What to retry
429: waitRetry-Afterseconds, then send the same request again.500: safe to retry after a short pause. If it keeps happening, send therequest_idthrough the contact form.- Everything else: fix the request first. Retrying an unchanged
400,401,403,404,409or422gets the same answer.