Current version
The AgentMark Gateway API is v1. Every endpoint is prefixed with/v1/ (except GET /health, which is unversioned). The current version will remain available as /v1/* for the foreseeable future.
Versioning strategy
Breaking changes are released under a new path prefix. When a future/v2/ is introduced, /v1/ will continue to work in parallel — you upgrade when you’re ready, not when we ship.
This matches how Stripe, Twilio, and most mature public APIs version their endpoints. A path-based scheme is visible in every request, trivial to grep for in consumer code, and easy to pin in configuration.
What’s non-breaking
The following are safe to ship within a version — client code written today will keep working:- Adding a new endpoint
- Adding a new optional response field
- Adding a new optional request parameter
- Adding a new enum value to a request parameter (you send more; we accept more)
- Adding a new response status code (documented)
- Widening a response field’s type (e.g. from
integertonumber) - Relaxing a validation rule (accepting inputs that were previously rejected)
sdk@1.x → sdk@1.y).
What’s breaking
The following changes require a new version (/v2/) if we need them:
- Removing an endpoint
- Removing a response field
- Removing a request parameter
- Changing a response field’s type in a narrowing way (e.g.
string → number) - Adding a new enum value to a response field (you parse; we send something you don’t recognize)
- Tightening a validation rule (rejecting inputs that were previously accepted)
- Changing authentication requirements
- Changing the required
Content-Typeof a request or response - Changing an HTTP status code for an existing response class
/v1/ without a deprecation window (see below).
Deprecation policy
When we need to break something, the timeline is:- Announce in the changelog with the date the change will land.
- Add a deprecation notice to the endpoint’s OpenAPI entry (
deprecated: true) and include aDeprecationheader in live responses pointing at the replacement. - Wait at least 90 days between announcement and removal — longer for auth or billing-affecting changes.
- Ship the new version alongside the old. Both work in parallel during the transition.
- Remove after the notice window, only if telemetry shows usage has migrated.
What’s not versioned
A few things are intentionally outside the version contract — they can change without a/v2/ bump:
-
Error response body contents. The shape is stable: every error returns
{ error: { code: string, message: string } }. But the set ofcodevalues may grow over time (we add new error codes when we add new behaviors). Code themessagefor human display; code thecodefor programmatic dispatch — and always have a fallback branch for codes you don’t recognize yet. -
Error response
extras. Some errors include additional fields (retry_after,required_permission, etc.). New fields may appear; existing ones won’t change shape. -
Rate limit values. Throughput caps adjust based on plan and infrastructure. The
429response is stable; the exact threshold isn’t. - Performance characteristics. Latency targets, batch size guarantees, and read-after-write consistency windows are SLOs, not API contract.
Using the SDK insulates you from most of this
The AgentMark SDK handles version negotiation, retries, and response parsing. If you use the SDK, most of this page is transparent — a minor SDK bump follows a minor gateway release, a major SDK bump follows a major gateway release. The direct HTTP API is supported for custom integrations, but the SDK is the path of least friction.Questions or migration help
- Changelog: /changelog
- Contact: hello@agentmark.co