Skip to main content
HTTP status: 410 · Title: “API version unsupported”

When it fires

Your request sent an X-Kash-Api-Version header whose value is not a supported API version. The API currently supports: Anything else (a typo, a future date, or a version past its sunset) returns this error.

Why 410?

410 Gone fits: the version was either accepted once and has been retired, or never existed. Either way, resending the same value will not succeed. 400 would suggest a syntax problem you could fix without changing the value, and 406 Not Acceptable is reserved for content-type negotiation.

Why it happens

  • A typo in the pin, for example 2026-08-20 instead of 2026-08-19.
  • A pin to a retired version that has passed its sunset window.
  • A pin to a future version the API has not shipped yet.
  • A multi-valued header: a proxy appended a second X-Kash-Api-Version value and the API will not silently pick one.

How to recover

The problem body carries three extra top-level members: requested (what you sent), supported (every accepted version, default first) and current (the default):
Pick a value from supported and resend. The simplest recovery is to drop the header and use the default, unless you need a newer version’s fields.

Deprecation

When a version is scheduled for retirement, responses to requests pinned to it carry Deprecation and Sunset headers well in advance, so your monitoring can flag it before the version stops working. The TypeScript SDK exposes these on errors as err.deprecation.

Best practice

Pin when you want your integration to stay on one contract. Pinning 2026-04-29 hides Solana markets, so pin 2026-08-19 if you pin at all. Within a version, the API changes only in additive, non-breaking ways.