Skip to content

Versioning and deprecation

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 kind on 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.

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.

  • 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.