When it fires
Your request sent anX-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-20instead of2026-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-Versionvalue 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):
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 carryDeprecation 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. Pinning2026-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.
Related codes
CHAIN_NOT_SUPPORTED— what a Solana market returns when a client pins2026-04-29