Agent Decisions
Submit ground truth review decisions back to SafetyKit.
Use Agent Decisions to send the correct outcome for content that SafetyKit has reviewed. These decisions help SafetyKit measure review quality and improve automated decisions over time.
Use the Agent Decisions API reference for the full request schema, SDK examples, and response fields.
When to send decisions
Section titled “When to send decisions”Send an agent decision after a human reviewer, internal agent, or downstream system determines the correct outcome for a SafetyKit review.
Each request should represent one content object and one policy category. If the same object is reviewed against multiple policy categories, send one request per policy category.
Use the exact content_type, policy_id, and verdict values provided by SafetyKit for your account’s feedback integration. Accepted verdicts depend on the content type. Arbitrary data namespace names are not accepted as content_type; your feedback content type may differ from your ingestion namespace.
Request fields
Section titled “Request fields”| Field | Type | Description |
|---|---|---|
reference_id |
string |
Stable identifier for the content object in your system, such as a listing ID, post ID, campaign ID, or account ID. |
content_type |
string |
Content type configured for your account’s feedback integration. |
policy_id |
string |
SafetyKit policy category ID that was evaluated, as configured for your account. |
decision |
string |
Human reviewer’s verdict using the values configured for this content type and policy category. |
reviewer_id |
string |
Optional stable identifier for the individual reviewer in your system, scoped to your account. |
agent_type |
string |
Optional type of review that produced this decision, such as "appeal", "bpo_review", or "policy_expert". |
action |
string |
Optional correct enforcement action for this content, such as "reduce_visibility" or "unpublish". |
comment |
string |
Optional additional context or details from the reviewer. |
Sample request
Section titled “Sample request”Replace <CONTENT_TYPE>, <POLICY_ID>, and <DECISION> with the values provided for your integration.
curl -X POST "https://api.safetykit.com/v1/agent_decisions" \ -H "Authorization: Bearer <SAFETYKIT_API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "reference_id": "listing_12345", "content_type": "<CONTENT_TYPE>", "policy_id": "<POLICY_ID>", "decision": "<DECISION>", "agent_type": "appeal", "reviewer_id": "reviewer_123", "comment": "Reviewed against the configured policy." }'Response:
{ "safetykitCorrect": true}Best practices
Section titled “Best practices”- Use stable
reference_idvalues that match the IDs you send to SafetyKit during ingestion. - Use the configured feedback
content_type, policy ID, and verdict values for your account. - Reuse a stable
reviewer_idacross an individual’s reviews so feedback quality can be analyzed by reviewer. Useagent_typefor the review workflow or category, such as appeals, andreviewer_idfor the individual. - Send the final corrected decision, not an intermediate review state.
- Retry transient network errors and 5xx responses with exponential backoff.
- Do not retry 4xx responses without changing the request.