Versioning

We version the API in the URL — the major version is in the path, not in a header. This makes it impossible to accidentally call the wrong version, and easy to grep for in your codebase.

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

Scheme

The base URL is:

GET https://api.suprabench.com/v1/{resource}

v1 is the current and only major version. Inside a major version we ship additive minor changes continuously — new endpoints, new response fields, new optional parameters — without bumping the version number.

What can change without notice

What counts as breaking

Anything in this list triggers a major-version bump (v2, etc.) and a deprecation period for v1.

Deprecation policy

Detecting deprecation

Deprecated endpoints set two RFC-standard response headers:

HeaderMeaning
DeprecationDate when this endpoint was marked deprecated, in HTTP-date format.
SunsetDate when this endpoint will stop working, in HTTP-date format. RFC 8594.
LinkLink to the migration guide with rel="deprecation".

We strongly recommend logging any response with a non-empty Sunset header. The minimum 6-month buffer is plenty to plan a migration if you notice it on day one.

# Print every response header so you can grep for Sunset / Deprecation
# in your monitoring pipeline.
curl -sSI https://api.suprabench.com/v1/models \
  -H "Authorization: Bearer $SUPRABENCH_KEY" | grep -Ei 'sunset|deprecation|link'
r = requests.get(...)
sunset = r.headers.get("Sunset")
if sunset:
    log.warning("SupraBench endpoint deprecated; sunset=%s, see %s",
                sunset, r.headers.get("Link"))
const r = await fetch(url, { headers: { Authorization: `Bearer ${KEY}` } });
const sunset = r.headers.get("Sunset");
if (sunset) {
  console.warn(
    `SupraBench endpoint deprecated; sunset=${sunset}, see ${r.headers.get("Link")}`
  );
}
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
if sunset := resp.Header.Get("Sunset"); sunset != "" {
    log.Printf("SupraBench endpoint deprecated; sunset=%s, see %s",
        sunset, resp.Header.Get("Link"))
}

Future versions

We don't bump major versions for fun. v2 will only happen if we genuinely need to change the contract — for example, switching from limit-based to mandatory cursor-based pagination across all list endpoints. We'll announce intent in the changelog and email all active subscribers at least 90 days before v2 beta.