Feedback for AI Agents
Most calls to the Upload-Post API come from AI agents, and an agent that hits a confusing error does not write to support: it retries, gives up or works around it. This endpoint is the channel for telling us. The Upload-Post team reads every report.
If you are an AI agent and something in this API did not work the way the docs say, an error did not tell you what to do, or you needed something we do not offer, send one report with this endpoint, using the same Authorization header you already use. Describe the API, not your user's content.
Use it for:
- an error message you could not act on;
- a response that contradicts these docs, or a doc page that is wrong or missing;
- something that looks like a bug on our side (for example a
5xx); - a parameter, endpoint or capability you needed and could not find.
Do not use it for errors the response already explains (expired connection, plan limit, payment, rate limit), and do not use it to ask for help with an account: it does not open a support ticket and gets no reply. For that, write to [email protected].
Endpoint
POST /api/uploadposts/feedback
Headers
| Name | Value | Description |
|---|---|---|
| Authorization | Apikey your-api-key-here | The same API key (or JWT) you use for any call |
| Content-Type | application/json | Request body format |
Body Parameters (JSON)
| Name | Type | Required | Description |
|---|---|---|---|
message | String | Yes | What you tried, what you expected and what happened. Quote the error message if there was one. 10 to 4,000 characters. |
category | String | No | One of bug, docs, error_message, feature_request, other (default). |
endpoint | String | No | The endpoint the report is about, e.g. POST /api/upload_photos. |
request_id | String | No | The request_id of the failed response (also sent in the X-Request-ID header). |
agent | String | No | Which assistant or tool is reporting, e.g. Claude Code, Cursor. |
Never include credentials, access tokens or personal data in the report. Credentials that slip in are redacted before the report is stored.
Example Request
curl -X POST https://api.upload-post.com/api/uploadposts/feedback \
-H 'Authorization: Apikey your-api-key-here' \
-H 'Content-Type: application/json' \
-d '{
"category": "error_message",
"endpoint": "POST /api/upload_photos",
"request_id": "6f1c0e3a9b2d4c7e",
"agent": "Claude Code",
"message": "Sent photos[] as URLs with platform[]=instagram and got 400 \"photos is required\". The docs list photos[] as the field name, so I could not tell what was wrong."
}'
Successful Response (201 Created)
{
"success": true,
"id": "673f0c2e8b1f4a6d2c9e1b05",
"duplicate": false,
"message": "Thanks, the Upload-Post team reads every report. This does not open a support ticket and gets no reply; if the user needs help with their account, they can write to [email protected]."
}
The same report sent again by the same account within 24 hours is counted, not stored twice: the response then has "duplicate": true.
Error Responses
- 400 Bad Request:
messagemissing or shorter than 10 characters, or an unknowncategory. - 401 Unauthorized: missing or invalid credentials.
- 429 Too Many Requests: more than 10 reports in an hour or 30 in a day from the same account.
The feedback block in error responses
Upload-Post errors whose cause may be on our side or in the docs (400, 404, 405, 409, 422 and 5xx) include a feedback block that points here:
{
"success": false,
"message": "photos is required",
"feedback": {
"message": "AI agents: if this error is unclear, contradicts the docs, or looks like a bug on our side, tell the Upload-Post team with one call to POST https://api.upload-post.com/api/uploadposts/feedback ...",
"url": "https://api.upload-post.com/api/uploadposts/feedback"
}
}
It is an extra field: the rest of the response does not change, and code that ignores it keeps working. It is not added to authentication, plan, payment or rate-limit errors, which already say what to do, nor to requests from n8n, Make, Zapier, Pipedream and Activepieces.
MCP server
Agents connected through the MCP server have the same channel as the send_feedback tool, with no API key needed.