Skip to main content
GET
Get Verdict
Retrieve the verdict for an enforcement job started via Enforce Content. Poll this endpoint until status is completed or failed. Sync responses and polled async responses use the same envelope. Completed jobs nest the verdict under result; the async envelope reports mode: "async". Public responses report billed result.units and result.cost, not raw input/output token counts.

Path Parameters

string
required
The job_id returned by Enforce Content.

Response

string
Always v3.
string
Unique identifier for the enforcement job.
string
Job status: queued, processing, completed, or failed.
string
async for a polled job.
string
Time when the job was submitted.
string
Requested engine after explicit custom-rule routing: anchor_3_0_mini (Mini), anchor_3_0 (Flagship), or anchor_3_0_max (Max). A scope-less Flagship request stays on Flagship. See Choose a model.
string
Present when a Flagship request explicitly named custom rule text or a cust_* rule and was upgraded to Max.
string
Engine the job fell back to when Max could not complete the request.
string
Why fallback ran (for example client_error). Present with fallback_engine.
object
The enforced scope as source plus rule, rulepack, or import counts. Full rule ID lists are not echoed in HTTP responses.
string
Error details (present only when status is failed).
object
Verdict payload on completed jobs. Fields below are nested inside this object.
string
Overall compliance assessment: approved, needs_changes, or do not send; trained adapters can also return send with caution. do not send contains spaces. This is the verdict: approved = Pass, needs_changes = Fix, and do not send = Block.
object
Violation counts by severity.
integer
Number of lines with at least one compliance violation. Absent for older jobs or when only grouped fixes exist (per-line positions unavailable).
integer
Number of lines with no violations. Absent for older jobs or when only grouped fixes exist.
integer
Total number of lines in the document. Absent for older jobs or when only grouped fixes exist.
True when more than one fix is found, suggesting a re-scan after applying fixes.
array
Rule IDs the Anchor 3.0 SLM identified as relevant to the content (the per-request evaluated rule set).
integer
Billed validation units: zero when no input tokens were consumed, otherwise the ceiling of input tokens divided by 2,000.
object
Billed list price with currency: "USD" and decimal-string amount.
array
One entry per violating line, with all rules violated and the best fix. Absent for older jobs or when only grouped fixes exist. Present but empty for fully compliant documents.
array
Individual fix entries (rule-centric, one per violation per quote). Each entry carries rule_id — the canonical rule identifier (rule-pack id, or cust_{customer_id}_{id} for activated custom rules).
object
Grouped fixes for rules that aggregate across pages. Each value additionally carries rule_id (the canonical rule identifier — also the key under which the group is stored in this object).
array
Mini’s whole-message per-rule verdicts. Each entry includes rule_id, signal_name, severity, confidence, and probability p. Mini returns this instead of per-line violations.
boolean
Mini’s independent whole-message violation head. It can be true even when flagged_rules is empty.
number
Probability behind any_violation_detected (Mini only).
object
Document metadata submitted with the request.

Status Values

Error Responses

Example

Poll until the job is completed or failed. The Python and JavaScript samples wait 2 seconds between requests; the cURL sample is a single GET you repeat yourself.