Best by tag GA on launch

Convenience endpoint that returns the top-N models for a single capability tag, sorted by Supra-Score. Same data as filtering /v1/models?tag=..., but with a smaller default limit and a longer cache TTL — ideal for "what's the best coding model right now" widgets.

Last updated: April 18, 2026 Reading time: 2 min

Endpoint

GET https://api.suprabench.com/v1/best?tag={tag}

Query parameters

ParameterTypeDescription
tag required string Capability tag (e.g. coding, reasoning, multimodal). See /v1/tags.
limit optional integer 1–100. Default 10.

Response

Same shape as ModelSummary[], restricted to models carrying the requested tag and sorted by supraScore descending.

Example

curl "https://api.suprabench.com/v1/best?tag=coding&limit=5" \
  -H "Authorization: Bearer $SUPRABENCH_KEY"
top_coding = requests.get(
    "https://api.suprabench.com/v1/best",
    params={"tag": "coding", "limit": 5},
    headers={"Authorization": f"Bearer {KEY}"},
).json()

for m in top_coding:
    print(m["name"], m["supraScore"])
const params = new URLSearchParams({ tag: "coding", limit: "5" });
const r = await fetch(`https://api.suprabench.com/v1/best?${params}`, {
  headers: { Authorization: `Bearer ${KEY}` },
});
const top = await r.json();
for (const m of top) console.log(m.name, m.supraScore);
req, _ := http.NewRequest("GET",
    "https://api.suprabench.com/v1/best?tag=coding&limit=5", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("SUPRABENCH_KEY"))
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()

var top []struct {
    Name       string  `json:"name"`
    SupraScore float64 `json:"supraScore"`
}
json.NewDecoder(resp.Body).Decode(&top)
for _, m := range top {
    fmt.Println(m.Name, m.SupraScore)
}

Errors

StatusCodeWhen
400bad_requestMissing tag parameter.

When to use this versus /v1/models?tag=...