curl --request POST \
--url https://api.bodyguard.ai/feedback/v1/text \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"analyzeRequest": {
"channelId": "__YOUR_CHANNEL_ID__",
"text": "Einstein is an asshole",
"publishedAt": "2026-04-23T10:30:00.000Z",
"reference": "comment-12346"
},
"classificationsToRemove": [
"INSULT"
],
"notes": "Quoting a well-known joke, not an insult directed at anyone.",
"confidence": "HIGH"
}
'{
"id": "018f3b04-9c11-7a52-8e0d-3b7c9a1f4e62"
}Text analysis feedback
Sends feedback on a classification returned by POST /analyze/v1/text that you judge incorrect for a given message, with the classifications you would have expected instead.
Send the exact analyze request body you originally submitted in analyzeRequest so Bodyguard can reproduce the analysis your feedback refers to.
Before diving in, we recommend reading the text taxonomy to understand the classifications you can add or remove.
curl --request POST \
--url https://api.bodyguard.ai/feedback/v1/text \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"analyzeRequest": {
"channelId": "__YOUR_CHANNEL_ID__",
"text": "Einstein is an asshole",
"publishedAt": "2026-04-23T10:30:00.000Z",
"reference": "comment-12346"
},
"classificationsToRemove": [
"INSULT"
],
"notes": "Quoting a well-known joke, not an insult directed at anyone.",
"confidence": "HIGH"
}
'{
"id": "018f3b04-9c11-7a52-8e0d-3b7c9a1f4e62"
}Authorizations
API key authentication. Provide your key in the Authorization
header with the ApiKey scheme:
Authorization: ApiKey <your-api-key>
Body
Feedback on a text analysis. Provide at least one of classificationsToAdd, classificationsToRemove, or notes — a request with none of the three is considered invalid.
The analyze request body you originally sent to POST /analyze/v1/text. Send it unchanged so Bodyguard can identify the exact analysis your feedback refers to. It already carries the channel the message belongs to, and your own reference for the message when you sent one.
Show child attributes
Show child attributes
Classifications Bodyguard returned that you judge do not apply to this content. See the text taxonomy for the full list.
["INSULT"]
Classifications you judge apply to this content but that Bodyguard did not return. See the text taxonomy for the full list.
["CRITICISM"]
Free-text comment explaining why you judge the content differently. Helps Bodyguard's moderation teams understand the context behind your feedback. Counts on its own: a feedback carrying only notes, with no classification change, is valid.
How confident you are about the classifications you submitted. Bodyguard uses it to prioritise which feedback to review first. You can base it on who flagged the content on your side — for example LOW or MEDIUM for a report from an end-user, HIGH or VERY_HIGH for a decision from your Trust & Safety team. Optional — omit it if you cannot qualify your confidence.
LOW, MEDIUM, HIGH, VERY_HIGH Response
Feedback recorded.
Bodyguard's identifier for this feedback.