Quickstart
Five ways to make the same request against Verdict's Direct API. All of them need one thing from your API keys page: a vrd_live_ key.
Authentication
Every request carries the key as a bearer token. There is no separate API secret or account id to pass alongside it.
Authorization: Bearer vrd_live_xxxxxxxxxxxxxxxxxxxxcurl
Streaming, with the bearer token and JSON body inline.
curl https://api.verdictide.com/v1/chat/completions \
-H "Authorization: Bearer vrd_live_..." \
-H "Content-Type: application/json" \
-N \
-d '{
"model": "verdict/verdict-4-20b",
"stream": true,
"messages": [{"role": "user", "content": "Explain streaming."}]
}'Python (OpenAI SDK)
The official openai package, unmodified — only base_url changes.
from openai import OpenAI
client = OpenAI(base_url="https://api.verdictide.com/v1", api_key="vrd_live_...")
stream = client.chat.completions.create(
model="verdict/verdict-4-20b",
messages=[{"role": "user", "content": "Explain streaming."}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")JavaScript (openai npm)
The official openai npm package.
import OpenAI from "openai"
const client = new OpenAI({ baseURL: "https://api.verdictide.com/v1", apiKey: "vrd_live_..." })
const res = await client.chat.completions.create({
model: "verdict/verdict-4-20b",
messages: [{ role: "user", content: "Hello" }],
})
console.log(res.choices[0].message.content)Aider
Point Aider's OpenAI-compatible base at Verdict.
export OPENAI_API_KEY="vrd_live_..."
aider --openai-api-base https://api.verdictide.com/v1 \
--model openai/verdict-4-20bOpenCode
Add Verdict as a custom OpenAI-compatible provider in opencode.json.
export VERDICT_API_KEY="vrd_live_..."
{
"provider": {
"verdict": {
"npm": "@ai-sdk/openai-compatible",
"options": { "baseURL": "https://api.verdictide.com/v1" },
"models": { "verdict-4-20b": {} }
}
}
}