/v1/classifier
Score a batch of typed questions against one shared context in a single non-streaming call.
/v1/classifier
Send one shared context (either messages or state) plus a batch of typed questions, and receive one answer per question ID. It is built for classification and extraction: labeling, support scoring, moderation, and guardrails.
The endpoint is also available as POST /v1/systemone and POST /models/:owner/:model/v1/classifier, where the model is taken from the URL path.
HTTP request
POST https://api.featherless.ai/v1/classifier
Authenticate with Authorization: Bearer <FEATHERLESS_API_KEY> and send a JSON body. The maximum request body is 50 MiB.
Supported models
The classifier runs on a fixed roster of models that an operator has enabled for this endpoint. Browsing the catalog with the classifier filter applied shows exactly the models you can use:
https://featherless.ai/models?modalities=classifier
Request body
Provide exactly one of messages or state, plus a nonempty questions object. Each key in questions becomes a key in the answers you get back.
{
"model": "featherless-ai/Qwen3.6-35B-A3B-classifier",
"messages": [
{ "role": "user", "content": "Review: \"The red bicycle arrived early and my dog Pip loves it.\"" }
],
"questions": {
"sentiment": {
"type": "choice",
"instructions": "Overall sentiment of the review.",
"criteria": {
"positive": "Clearly favorable",
"negative": "Clearly unfavorable"
}
},
"quality": {
"type": "score",
"instructions": "Rate the writing quality.",
"criteria": ["Very poor", "Poor", "Fair", "Good", "Excellent"]
},
"mentions_dog": {
"type": "noul",
"instructions": "Does the review mention a dog?",
"criteria": { "true": "Mentions a dog", "false": "No dog mentioned" }
}
}
}Question types
choice: criteria is an object with 2 to 50 named options; the answer returns the chosen key plus a probability per option.score: criteria is an ordered array of 2 to 50 level descriptions, lowest to highest; the answer returns a numeric score, per-level probabilities, and a legend.noul: criteria may describe the true and false options; the answer returns a single scalar in the range 0.01 to 0.99.
Question objects are strict: unknown keys are rejected rather than ignored. The optional options object accepts score_format, raw_logits, choice_mode, and score_mode. Completion parameters such as temperature or max_tokens are accepted for client compatibility and ignored; the classifier is always non-streaming.
Response body
The response contains one answer per question ID. The model field is always the canonical platform model name, not the string echoed from the request.
{
"model": "featherless-ai/Qwen3.6-35B-A3B-classifier",
"answers": {
"sentiment": {
"type": "choice",
"choice": "positive",
"confidence": 0.94,
"probabilities": { "positive": 0.94, "negative": 0.06 }
},
"quality": {
"type": "score",
"score": 4,
"confidence": 0.81,
"probabilities": { "0": 0.01, "1": 0.02, "2": 0.05, "3": 0.11, "4": 0.81 },
"legend": { "0": "Very poor", "1": "Poor", "2": "Fair", "3": "Good", "4": "Excellent" }
},
"mentions_dog": { "type": "noul", "noul": 0.97 }
},
"usage": { "input_tokens": 407, "output_tokens": 3 }
}Errors
Validation failures return 422 with the standard error envelope, including a details array of the failing fields. Requesting a model that is not enabled for the classifier returns 404.
Example
curl --fail-with-body https://api.featherless.ai/v1/classifier \
--header "Authorization: Bearer $FEATHERLESS_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "featherless-ai/Qwen3.6-35B-A3B-classifier",
"messages": [{ "role": "user", "content": "Review: The red bicycle arrived early and my dog Pip loves it." }],
"questions": {
"sentiment": {
"type": "choice",
"instructions": "Overall sentiment of the review.",
"criteria": { "positive": "Clearly favorable", "negative": "Clearly unfavorable" }
}
}
}'