use reqwest::Client;
use serde_json::Value;
let resp: Value = Client::new()
.get("https://dokima.dev/api/v1/scan/mistralai/Mistral-7B-v0.1")
.header("Authorization", "Bearer dks_live_yourkey")
.send().await?
.json().await?;
println!("Score: {} ({})", resp["score_total"], resp["grade"]);
Score a model. Returns full dimension breakdown, attestations, transparency footer fields. Requires Bearer dks_live_ key from Hobby tier upward; the unauthenticated web scanner remains free.
Hobby
GET
/badge/{author}/{model}@{sha}.svg
Content-addressed SVG badge. Cache-Control: max-age=1y, immutable. Embed from any GitHub README or marketing page; CDN edge does the heavy lifting. The badge is the only public unauthenticated endpoint.
Free
GET
/api/v1/leaderboard
Top models from the Stage D calibration corpus. Filter by grade and format; paginate via limit + offset.
Hobby
GET
/api/v1/stats
Aggregate statistics: total scans, unique models, methodology version, last recalibration.
Hobby
GET
/api/v1/score-history
Last 20 scans for the authenticated user. Requires Bearer dks_live_ key.
Hobby
GET
/api/v1/account
Authenticated user profile, tier, monthly scan count + quota.
Hobby
POST
/api/v1/batch
Submit up to 100 model IDs for batch scoring. Returns job_id immediately; poll /jobs/{job_id} or supply a webhook callback URL.
Pro
GET
/api/v1/jobs/{job_id}
Poll for batch job completion. Returns progress + per-model verdicts when ready.