How it works
Every request returns aMarky-Version header with the API version used:
When we make changes
- Non-breaking changes (new fields, new endpoints) are added without a version bump. Your existing code won’t break.
- Breaking changes (removed fields, changed behavior) create a new version date. Your pinned version continues working until you’re ready to upgrade.
Deprecations
When we rename an endpoint or field, the old name keeps working. It is markeddeprecated in the OpenAPI document behind the API Reference,
its description says Deprecated: use <new name>, and the
changelog announces it. Renames like this are additive, so they
ship without a version bump, and a pinned Marky-Version gets the same response
shapes from the old and new names. Move to the new name when convenient. Before
any deprecated name stops working, it will be announced in the changelog with
notice.
Renamed: businesses are now workspaces
October 31, 2026. What the dashboard calls a workspace, the API used to call a business. The top-level endpoints now use the workspace name:
Request and response bodies are the same under both names. What did not
change:
- Paths under a workspace keep their shape, for example
/api/businesses/{business_id}/posts. Therebusiness_idis the workspace ID. - Response bodies still carry the workspace ID as
business_id. - Media uploads accept either
workspace_idorbusiness_id. Send one; if you send both they must match, or you get a422.
Current version
Best practices
- Pin your version in production integrations to avoid surprises
- Test against the latest version periodically to adopt improvements
- Check the changelog for new features and deprecation notices
