Versioning and deprecation
The /v1 contract
Section titled “The /v1 contract”The base URL is https://api.pump.fun/v1. The version lives in the path and will stay v1 for as long as the routes below keep their request and response shapes. The OpenAPI document at /openapi.public.json is the contract. (Its info.version is the version of the contract release the document was published under, the same number as the public-api-spec-v<version> release that carries it, not the API version; the API version is the path prefix.)
Changes that ship without notice (additive)
Section titled “Changes that ship without notice (additive)”- New routes, new optional query parameters, new optional request-body fields.
- New fields in responses. Ignore fields you do not know; do not fail on them.
- New values in open sets (for example a new
kindon a profile) where the reference marks the set as open. - New error codes on existing status codes.
Changes that require a deprecation period (breaking)
Section titled “Changes that require a deprecation period (breaking)”- Removing a route, a parameter or a response field.
- Changing a field’s type or making an optional field required.
- Narrowing or renaming values in a closed enum.
A breaking change to a route is shipped as a new route (or a new parameter form) alongside the old one; the old one is then deprecated.
Deprecation: 90 days minimum
Section titled “Deprecation: 90 days minimum”A deprecated route keeps working for at least 90 days after the announcement. During that time it answers with up to three extra headers, on every response including errors:
| Header | Example | Meaning |
|---|---|---|
Deprecation |
Deprecation: @1775001600 |
When the deprecation was announced: @ followed by the Unix time in seconds of midnight UTC on that day (RFC 9745). |
Sunset |
Sunset: Tue, 30 Jun 2026 00:00:00 GMT |
The earliest date after which the route may be removed, as an HTTP-date (RFC 8594). Always 90 or more days after Deprecation. |
Link |
Link: </v1/users/123/overview>; rel="successor-version" |
The replacement route, when there is one (RFC 8288). Absent when the route has no successor. The target is a path on the API origin, /v1 prefix included, with the path parameters of your request filled in; a successor on another host is given as an absolute URL. |
The OpenAPI document reflects it: the operation is marked deprecated: true, carries x-deprecation-since and x-sunset (ISO dates) and, when there is a replacement, x-successor (the replacement route as METHOD /path, or an absolute URL), and its success responses list the Deprecation, Sunset and Link headers. Watch for deprecated in the document or for the Deprecation header in your responses: both are machine-readable and change before anything stops working.
No route is deprecated today.
How to stay informed
Section titled “How to stay informed”- The OpenAPI document is refreshed whenever the API changes; diff it on a schedule if you generate code from it.
- Deprecations are also announced through the support channel on Status and support.
- Metrics on the API side show which keys still call a deprecated route; if yours does, expect to be contacted before the sunset date.