DownloadsDocsWikiWhyFeaturesPricing

OpenAI Compatibility

Verdict's Direct API is OpenAI-compatible per the published compatibility matrix on this page — not a claim of compatibility with anything OpenAI-compliant. Every request field lands in one of three dispositions; silent discard is never one of them.

Three dispositions

  • supported — honored end to end.
  • ignored (documented) — accepted, has no effect, called out here.
  • rejected — HTTP 400 with a clear error naming the field.
ScopeThe rejected dispositions below are enforced for API-key (vrd_*) callers — the population this contract governs.

Field-by-field matrix

POST /v1/chat/completions

FieldDispositionNotes
modelsupportedverdict/<model> or canonical vc/verdict/<model>; bare model ids resolve into the implicit openai vendor space and will not reach Verdict SKUs
messagessupportedsystem/user/assistant/tool roles per the existing route
streamsupportedserver-sent events; incremental delivery
stream_options.include_usagesupportedthe final chunk carries the usage block
max_tokenssupportedexisting behavior
max_completion_tokenssupportedmapped to max_tokens; if both are sent, max_completion_tokens wins
temperaturesupportedprovider temperature rules apply
top_psupportedpassed through to the provider
stopsupportedstring or array, passed through
usersupportedpassed to telemetry only; never used for auth
tools / tool_choicesupportedexisting route behavior
nrejected when n > 1400 unsupported_parameter; n: 1 is accepted
seedrejected400 unsupported_parameter -- no determinism contract is offered
response_formatrejected400 unsupported_parameter at launch
logprobs / top_logprobsrejected400 unsupported_parameter
presence_penalty / frequency_penaltyignored (documented)accepted for client compatibility; not forwarded uniformly across vendors at launch
logit_biasrejected400 unsupported_parameter
metadata / storeignored (documented)accepted; nothing is stored beyond standard telemetry
any other unknown fieldignored (documented)so future OpenAI SDK additions don't break existing clients; anything that would change semantics gets an explicit row here first

Headers

HeaderDispositionNotes
Authorization: Bearer vrd_live_*supportedargon2id-verified via indexed digest lookup
Authorization: Bearer vrd_test_*rejected on completions403 test_key_not_allowed -- no test environment exists at launch
Idempotency-Keysupporteda retried identical attempt cannot double-reserve or double-burn credits; a duplicate returns 409 with the original request id
X-Verdict-Request-Idsupportedequivalent to Idempotency-Key; auto-generated when neither header is present

Retries withoutan idempotency key are separate billed inferences (OpenAI-parity behavior) — persist-and-replay is not offered.

Error bodies

A stable error envelope is returned on 400/401/402/403/409/429; insufficient credits returns 402. See Errors & Limits for the exact response shapes.

Rate limiting

Per-key rate limits (requests per minute / per day) are enforced per Gateway instance, approximately, at launch: with N instances the effective ceiling is up to N× the configured value. This is documented rather than hidden; a shared atomic counter is the upgrade path once the API tier carries real traffic. Key revocation propagates in 60 seconds or less across all instances.

Learn More