Getting started

Versioning and changes

How the Pozy API changes over time, how deprecations are flagged, and how to follow changes with the changelog endpoint.

The Pozy API is one continuously updated surface under /v1. There is no version header to pin and no dated releases to opt into. Instead, changes follow a few rules so code you write today keeps working.

#What can change without notice

These changes are additive. Write your integration so they never break it:

  • New endpoints.
  • New optional request fields and query parameters.
  • New fields in responses, including new nested objects.
  • New values in enums that describe state, such as a new post status, error code, platform id or webhook event.
  • New webhook events (you only receive events you subscribed to).
  • Reworded error messages. Branch on code, never on text.

In practice: ignore fields you do not know, keep a default branch when you switch on an enum, and do not fail on unknown webhook event types.

#What counts as breaking

Removing or renaming an endpoint, a field or an error code, making an optional field required, or changing what an existing value means. Breaking changes are announced in the changelog with type: "breaking_change" and impact: "action_required", along with what you need to do.

#Deprecations

Endpoints that are on their way out stay working and are flagged:

  • In the OpenAPI spec, with "deprecated": true on the operation.
  • In the API reference, with a deprecated label on the endpoint page.
  • In the changelog, as a deprecation entry.

Move to the replacement when you see the flag. If a deprecated endpoint is later removed, that removal is announced as a breaking_change entry.

#The spec version

The spec carries a version number in info.version (for example 1.424.0). It goes up with every published change to the spec. Use it to tell whether a client you generated is out of date; it is not something you send with requests.

Terminal
curl -s https://pozy.ai/openapi.json | jq -r .info.version

#Follow changes from code

GET /v1/changelog lists changes newest first. It is public: no key needed.

curl "https://api.pozy.ai/v1/changelog?type=breaking_change&limit=20"
Query parameter Values
type new_feature, breaking_change, improvement, deprecation, minor
platform A platform id, such as instagram
before A timestamp. Pass the previous response's nextCursor here for the next page.
limit 1 to 100, default 50

Each entry has an id, type, impact, platforms, title, summary, message, publishedAt and a url to read it on the web. impact is action_required for breaking changes and additive for everything else. It is part of each entry, not a filter, so filter on type=breaking_change to get the entries that need action. When an entry is tied to spec changes, changes.endpoints lists the operations added, removed and modified.

A simple routine: once a day, fetch entries with type=breaking_change published since your last check and send them to your team's channel.

Read the same feed on the web at /docs/changelog.

#Generated clients

If you generate a client from the spec, regenerate it when info.version changes and review the diff. Because changes are additive, an old client keeps working; it just cannot see new fields and endpoints.