SeaLinkSeaLink
/
← Docs

Moderations

Use the moderation API to identify policy risk in user input, uploaded images, or pre-generation workflows. The interface follows the OpenAI Moderations shape.

POST /v1/moderations

Classify text and image inputs for content risk. Returns a flagged boolean, categories, and confidence scores per input. Accepts one or more inputs per request.

Parameters

ParameterTypeRequiredDescription
inputstring | arrayYesContent to moderate. Can be plain strings, text objects {type:"text", text:"..."}, image URL objects {type:"image_url", image_url: {url:"..."}}, or base64 image objects {type:"input_image", input_image: {data:"..."}}. Arrays supported for batch.
modelstringNosealink-moderation-001 (default)
userstringNoEnd-user identifier for monitoring and abuse detection

Response Format

FieldTypeDescription
idstringRequest ID
modelstringModel used
resultsarrayArray of result objects, one per input
results[].flaggedbooleanWhether content violates policy
results[].categoriesobjectPer-category violation flags (boolean)
results[].category_scoresobjectPer-category confidence scores (0-1)

Moderation Categories

harassment
harassment/threatening
hate
hate/threatening
self-harm
self-harm/intent
self-harm/instructions
sexual
sexual/minors
violence
violence/graphic
illicit
illicit/violent
cURL — Single Text
# Single text input
curl https://test.sealink.io/v1/moderations \
-H "Authorization: Bearer <your-sealink-key>" \
-H "Content-Type: application/json" \
-d '{
"input": "I want to learn about AI safety.",
"model": "sealink-moderation-001"
}'
cURL — Batch
# Batch: array of strings or content objects
curl https://test.sealink.io/v1/moderations \
-H "Authorization: Bearer <your-sealink-key>" \
-H "Content-Type: application/json" \
-d '{
"input": [
"Hello, how can I help you today?",
{"type": "text", "text": "Some content to check"},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
],
"model": "sealink-moderation-001"
}'
cURL — Base64 Image
# Base64 image input
curl https://test.sealink.io/v1/moderations \
-H "Authorization: Bearer <your-sealink-key>" \
-H "Content-Type: application/json" \
-d '{
"input": [
{"type": "input_image", "input_image": {"data": "iVBORw0KGgo..."}}
],
"model": "sealink-moderation-001"
}'
Python
from openai import OpenAI
client = OpenAI(
base_url="https://test.sealink.io/v1",
api_key="<your-sealink-key>",
)
response = client.moderations.create(
model="sealink-moderation-001",
input="I want to learn about AI safety.",
)
print(response.results[0].flagged)
print(response.results[0].categories)
print(response.results[0].category_scores)
Python — Batch
from openai import OpenAI
client = OpenAI(
base_url="https://test.sealink.io/v1",
api_key="<your-sealink-key>",
)
response = client.moderations.create(
model="sealink-moderation-001",
input=[
"Hello, how can I help you today?",
{"type": "text", "text": "Some content to check"},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}},
],
)
for r in response.results:
print(r.flagged, dict(r.categories))
Node.js
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://test.sealink.io/v1",
apiKey: "<your-sealink-key>",
});
const response = await client.moderations.create({
model: "sealink-moderation-001",
input: "I want to learn about AI safety.",
});
console.log(response.results[0].flagged);
console.log(response.results[0].categories);
console.log(response.results[0].category_scores);
Node.js — Batch
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://test.sealink.io/v1",
apiKey: "<your-sealink-key>",
});
const response = await client.moderations.create({
model: "sealink-moderation-001",
input: [
"Hello, how can I help you today?",
{ type: "text", text: "Some content to check" },
{ type: "image_url", image_url: { url: "https://example.com/photo.jpg" } },
],
});
for (const r of response.results) {
console.log(r.flagged, r.categories);
}

Pricing

The Moderations endpoint is suitable for real-time safety checks, user input filtering, and content compliance. Availability and billing rules are reflected in the dashboard and billing records.