Test a grader

⚠️
Preview — this feature is being built; the design below is the spec.
POST https://app.syntic.ai/v1/evals/graders/{grader_id}/test

Grade a single output against an ideal answer without starting a run. Use it to calibrate a rubric on a handful of known-good and known-bad answers before you trust it on hundreds.

For how this fits into a full workflow, see Evaluations.

Headers

HeaderRequiredValue
AuthorizationYesBearer <key>: a private inference key (sk_live_...). See Authentication.
syntic-betaYes, while in previewevals-2026-12-01. Without it the call fails with 400 beta_required. See Versioning.
Content-TypeYesapplication/json

Path parameters

ParameterTypeDescription
grader_idstringStarts with evgr_.

Body parameters

ParameterTypeRequiredNotes
outputstringYes
idealstringNo
inputobjectNoShown to rubric graders as context.

Response

200 OK, Content-Type: application/json

{
  "score": 2,
  "passed": false,
  "explanation": "Gives a 30-day timeline that contradicts the 3-working-day policy; apologises correctly.",
  "usage": {
    "input_tokens": 412,
    "output_tokens": 58
  }
}
FieldTypeDescription
scorenumberOn the grader’s scale: 0 or 1 for code graders, 1 to 5 for rubrics, 0 to 1 for similarity.
explanationstring or nullRubric graders explain their score.

Examples

curl -sS "https://app.syntic.ai/v1/evals/graders/evgr_01JD46E8G0J2L4N6Q8S0/test" \
  -H "Authorization: Bearer $SYNTIC_API_KEY" \
  -H "syntic-beta: evals-2026-12-01" \
  -H "Content-Type: application/json" \
  -d '{
      "input": {
        "ticket": "I was charged twice for order 88123."
      },
      "output": "Sorry about that! Refunds normally take up to 30 days.",
      "ideal": "Apologise, confirm the duplicate charge, say the refund is issued within 3 working days."
    }'

Errors

Errors use the error envelope and carry a request_id. Codes specific to this operation:

StatustypecodeWhen
400invalid_request_errorbeta_requiredThe syntic-beta header is missing.
404not_found_errorgrader_not_foundNo grader with this id.
401authentication_errorinvalid_api_keyThe key is missing, unknown, revoked or expired.
429rate_limit_errorrate_limitedToo many requests; wait for Retry-After. See Rate-limit headers.
Was this page helpful?