Request body
Fields
| Field | Type | Default | Notes |
|---|---|---|---|
urls | array | required | Image URLs to rate. Minimum 1, maximum 10. |
levels | array | — | Custom rating scale. When omitted, the default sfw/nsfw scale is used. |
levels items
Each item in the levels array must have:
| Field | Type | Constraints | Notes |
|---|---|---|---|
value | string | 1–24 characters | The string returned in the result for images at this level. |
description | string | 1–150 characters | Natural-language description used by the rating model. |
levels array:
- Minimum
2items - Maximum
7items
description of each level is passed directly to a vision language model (LLM), which selects the best match for each image. Because LLM inference is non-deterministic, results for borderline images may occasionally vary between requests.
This endpoint is optimised for speed and accuracy at a high level of abstraction. Broad, clearly separated scales such as safe / suggestive / explicit or safe-for-children / safe-for-adults / nsfw perform reliably. Scales that depend on subtle visual distinctions — for example distinguishing between artistic and explicit nudity — are outside the intended scope and may produce inconsistent results. Test thoroughly before using such scales in production.
Response body
| Field | Type | Notes |
|---|---|---|
taskId | string | ID of the task record created for this request. |
results | array | One entry per submitted URL, in the same order. Each entry is a success or failure item. |
Success item
| Field | Type | Notes |
|---|---|---|
url | string | The submitted image URL. |
rating | string | The assigned rating value from the active scale. |
rating is one of sfw or nsfw.
When using custom levels, rating is the value of the chosen level.
Failure item
Limits
| Constraint | Value |
|---|---|
| URLs per request | 1–10 |
| Custom levels | 2–7 |
Level value | 1–24 characters |
Level description | 1–150 characters |
Pricing
Each URL in the request costs $0.0002. The total cost is deducted from your account balance before processing begins. If your balance is insufficient, the request returns422 INSUFFICIENT_BALANCE.
Error responses
| Status | Code | Cause |
|---|---|---|
400 | validation_error | Request body fails schema validation. |
401 | unauthorized | Missing or invalid API key. |
422 | INSUFFICIENT_BALANCE | Account balance is too low for this request. |