image.rate task and returns 201 with a taskId. Poll task endpoints or use webhooks to get the rating result.
Request body
nsfw_sfw scale):
Fields
levels items
Each item in the levels array must have:
Constraints for the
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 the 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
201 — task created
When the task completes,
GET /tasks/:id (or the webhook payload) includes:
When using the default scale,
level is one of sfw or nsfw.
When using custom levels, level is the value of the chosen level.
If rating fails, the task status is failed with errors: [{ code, message? }]. Common codes: FETCH_FAILED, RATING_FAILED, UNKNOWN_ERROR. See Task error codes.
Limits
Pricing
Each request is priced at $0.0002. That amount is reserved from your account balance before processing begins. You are charged only when the task completes successfully — failed tasks release the reserve. If your balance is insufficient, the request returns422 INSUFFICIENT_BALANCE.
Error responses
See Errors and Limits for the full error reference.