Use CometAPI POST /v1/moderations to check text or multimodal input with an OpenAI-compatible moderation request.
curl https://api.cometapi.com/v1/moderations \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <COMETAPI_KEY>" \
-d '{
"model": "omni-moderation-latest",
"input": "I want to bake cookies for my family."
}'{
"id": "modr-1594",
"model": "omni-moderation-latest",
"results": [
{
"flagged": false,
"categories": {
"harassment": false,
"harassment/threatening": false,
"hate": false,
"hate/threatening": false,
"illicit": false,
"illicit/violent": false,
"self-harm": false,
"self-harm/intent": false,
"self-harm/instructions": false,
"sexual": false,
"sexual/minors": false,
"violence": false,
"violence/graphic": false
},
"category_scores": {
"harassment": 0.0001,
"harassment/threatening": 0.0001,
"hate": 0.0001,
"hate/threatening": 0.0001,
"illicit": 0.0001,
"illicit/violent": 0.0001,
"self-harm": 0.0001,
"self-harm/intent": 0.0001,
"self-harm/instructions": 0.0001,
"sexual": 0.0001,
"sexual/minors": 0.0001,
"violence": 0.0001,
"violence/graphic": 0.0001
},
"category_applied_input_types": {
"harassment": [
"text"
],
"harassment/threatening": [
"text"
],
"hate": [
"text"
],
"hate/threatening": [
"text"
],
"illicit": [
"text"
],
"illicit/violent": [
"text"
],
"self-harm": [
"text"
],
"self-harm/intent": [
"text"
],
"self-harm/instructions": [
"text"
],
"sexual": [
"text"
],
"sexual/minors": [
"text"
],
"violence": [
"text"
],
"violence/graphic": [
"text"
]
}
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 0,
"total_tokens": 12,
"input_tokens": 12,
"output_tokens": 0,
"prompt_tokens_details": {
"cached_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 0
},
"input_tokens_details": null,
"claude_cache_creation_1_h_tokens": 0,
"claude_cache_creation_5_m_tokens": 0
}
}Use this endpoint to check user-generated content before you send it to a model endpoint. Send an OpenAI-compatible moderation request with aDocumentation Index
Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
Use this file to discover all available pages before exploring further.
model and an input value.
Authorization: Bearer <COMETAPI_KEY>.| Field | Type | Required | Description |
|---|---|---|---|
input | string or array | Yes | The content to check. Use a string for one text input, an array of strings for batch text checks, or OpenAI-style multimodal parts such as text plus image_url. |
model | string | Yes | Moderation model ID. Use omni-moderation-latest for text and image moderation unless you have a specific moderation model requirement. |
omni-moderation-latest. Public image URLs must be downloadable by CometAPI servers. For a copyable image test, use a base64 data URL.
curl https://api.cometapi.com/v1/moderations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <COMETAPI_KEY>" \
-d '{
"model": "omni-moderation-latest",
"input": "I want to bake cookies for my family."
}'
curl https://api.cometapi.com/v1/moderations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <COMETAPI_KEY>" \
-d '{
"model": "omni-moderation-latest",
"input": [
"I want to bake cookies.",
"I want to kill someone."
]
}'
curl https://api.cometapi.com/v1/moderations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <COMETAPI_KEY>" \
-d '{
"model": "omni-moderation-latest",
"input": [
{ "type": "text", "text": "...text to classify goes here..." },
{
"type": "image_url",
"image_url": {
"url": "https://www.gstatic.com/webp/gallery/1.png"
}
}
]
}'
curl https://api.cometapi.com/v1/moderations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <COMETAPI_KEY>" \
-d '{
"model": "omni-moderation-latest",
"input": [
{ "type": "text", "text": "...text to classify goes here..." },
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA6fptVAAAADElEQVR4nGP4//8/AAX+Av4N70a4AAAAAElFTkSuQmCC"
}
}
]
}'
id, model, results, and usage. Each item in results reports whether the matching input was flagged, category booleans, category scores, and input types applied to each category. For a batch text request, results contains one item per input string. Use usage for billing and monitoring fields.CometAPI API key used for model requests. Send it as Authorization: Bearer <COMETAPI_KEY>.
Required moderation model ID. Use omni-moderation-latest for text and image moderation unless you have a specific moderation model requirement.
"omni-moderation-latest"
Content to check. Use a string for one text input, an array of strings for batch text checks, or OpenAI-style multimodal parts such as text plus image_url when the selected model supports it.
"I want to check this text before sending it to a model."
Moderation decisions and token usage.
Moderation request ID.
"modr-1594"
Model used for moderation.
"omni-moderation-latest"
Moderation decisions. For batch text input, this array contains one result per input string.
Show child attributes
Token usage for the moderation request. Additional provider accounting fields can be present.
Show child attributes
curl https://api.cometapi.com/v1/moderations \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <COMETAPI_KEY>" \
-d '{
"model": "omni-moderation-latest",
"input": "I want to bake cookies for my family."
}'{
"id": "modr-1594",
"model": "omni-moderation-latest",
"results": [
{
"flagged": false,
"categories": {
"harassment": false,
"harassment/threatening": false,
"hate": false,
"hate/threatening": false,
"illicit": false,
"illicit/violent": false,
"self-harm": false,
"self-harm/intent": false,
"self-harm/instructions": false,
"sexual": false,
"sexual/minors": false,
"violence": false,
"violence/graphic": false
},
"category_scores": {
"harassment": 0.0001,
"harassment/threatening": 0.0001,
"hate": 0.0001,
"hate/threatening": 0.0001,
"illicit": 0.0001,
"illicit/violent": 0.0001,
"self-harm": 0.0001,
"self-harm/intent": 0.0001,
"self-harm/instructions": 0.0001,
"sexual": 0.0001,
"sexual/minors": 0.0001,
"violence": 0.0001,
"violence/graphic": 0.0001
},
"category_applied_input_types": {
"harassment": [
"text"
],
"harassment/threatening": [
"text"
],
"hate": [
"text"
],
"hate/threatening": [
"text"
],
"illicit": [
"text"
],
"illicit/violent": [
"text"
],
"self-harm": [
"text"
],
"self-harm/intent": [
"text"
],
"self-harm/instructions": [
"text"
],
"sexual": [
"text"
],
"sexual/minors": [
"text"
],
"violence": [
"text"
],
"violence/graphic": [
"text"
]
}
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 0,
"total_tokens": 12,
"input_tokens": 12,
"output_tokens": 0,
"prompt_tokens_details": {
"cached_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 0
},
"input_tokens_details": null,
"claude_cache_creation_1_h_tokens": 0,
"claude_cache_creation_5_m_tokens": 0
}
}