Skip to main content
POST
Create System One decision
Send the content as state and ask up to 16 named questions about it in one call. Each answer comes back under the question’s name, with calibrated probabilities. The request and response follow the TypeSafe System One decision schema, so an existing System One client works by changing the base URL and API key. System One is available on four models, in addition to their existing endpoints:

Question types

  • noul - a yes/no decision. The answer’s noul is the probability of yes: near 1 favors yes, near 0 favors no. Optional criteria.true and criteria.false describe what counts as each.
  • choice - pick one option. criteria maps each choice name to a description. The answer gives the choice, its confidence and the probabilities of every option.
  • score - rate against an ordered rubric. criteria is a list of levels, scored from 0. The answer’s score is the probability-weighted level and may fall between integers; legend maps each level number back to its text.

How answers are produced

Each model scores the content against its own labels: the 13 OpenAI moderation categories plus an overall unsafe score, or the IAB Content 2.2 and Audience 1.1 taxonomies. A question whose criteria name those labels is answered directly from the model’s scores. A category name covers its whole branch, so Technology and computing also counts Laptops. Brand-safety questions on the IAB models read the Sensitive Topics branch, and commercial-intent questions read the Purchase Intent audiences. A question whose criteria are not among the model’s labels is answered by zero-shot classification instead. You can mix both kinds in one request.

Limits and billing

  • Up to 16 questions per request, and up to 32 criteria per question.
  • state may be a string, an object or an array. An object or array is read as its JSON.
  • You are billed for input tokens only (the state plus the questions); output_tokens is always 0.
  • Request validation errors return 422 with System One’s { "detail": [{ "loc", "msg", "type" }] } body. Other errors use the standard error format.

Authorizations

x-api-key
string
header
required

Your ZeroGPU API key. Create one in the dashboard under API keys. Send it on every request.

Body

application/json
model
string
required

A model that supports System One: zlm-v1-moderation-edge, zlm-v1-iab-classify-edge, zlm-v1-iab-domain-classifier or zlm-v2-iab-classify-edge-enriched.

Example:

"zlm-v1-iab-classify-edge"

state
required

The content every question refers to: a string, object or array. An object or array is read as its JSON. For zlm-v1-iab-domain-classifier it must be a URL or domain.

questions
object
required

Named questions (up to 16). Keys are names you choose; each answer comes back under the same key.

Response

Success

model
string
required

The model that answered.

answers
object
required

Keyed by your question names, in request order.

usage
object
required