This page documents how the Alterscope Developer API signals breaking changes, deprecations, and stability stages.Documentation Index
Fetch the complete documentation index at: https://docs.alterscope.org/llms.txt
Use this file to discover all available pages before exploring further.
SemVer at two levels
The API uses semantic versioning at two distinct levels. Path-level major version lives in the URL:/v2/ today, future /v3/. A new path-level major ships only when a breaking change is unavoidable.
Envelope schema version lives at meta._agentic.schema_version on every /v2/* response and is mirrored by the X-Schema-Version response header. The current value is 1.0.0. Patch and minor bumps ship in place; a major bump on schema_version always coincides with a new path-level major (for example /v3/).
| Level | Today | Bumps when |
|---|---|---|
| Path major | /v2 | Removing a field, narrowing an enum, changing a type, tightening request validation, removing an endpoint. |
| Envelope minor | 1.0.0 | Adding an optional field, a new _links entry, a looser validation rule, a new error code in an existing category. |
| Envelope patch | 1.0.0 | A bug fix that does not change response shape. |
Stability stages
| Stage | Path prefix | Stability | SLA coverage |
|---|---|---|---|
| Stable (GA) | /v2/<resource>/ | Subject to the breaking-change policy below. | Yes, per SLA. |
| Beta | /v2/beta/<resource>/ | Schema may change without notice. Promoted to stable after roughly 90 days of customer use. | No. Excluded by design. |
### Added, never as a breaking change.
What is breaking and what is not
Breaking
These changes require a new path-level major version (for example/v3/) and a deprecation window on the old version:
- Removing a field from a response.
- Changing a field’s type or unit (for example seconds to milliseconds).
- Narrowing an enum (removing a value).
- Tightening request validation in a way that previously valid requests would be rejected.
- Removing an endpoint.
- Changing authentication or authorization requirements on an existing endpoint (for example requiring a higher tier).
- Changing default sort order, default page size, or pagination semantics.
- Renaming a query parameter.
- Changing the format of an existing header (for example
X-RateLimit-Resetfrom epoch seconds to RFC 1123 date).
Non-breaking
These ship under the same path-level major:- Adding an optional response field.
- Adding a new endpoint.
- Adding an optional query parameter.
- Loosening request validation.
- Adding a new error code within an existing error category, with a new
codevalue but the same HTTP status class. - Adding entries to
meta._agentic._links. - Adding new response headers. Clients are expected to ignore unknown headers.
- Adding new enum values. Clients are expected to handle unknown enum values gracefully; this is documented per-field.
Deprecation window
A breaking change carries a 180-day (approximately 6-month) deprecation window before the old endpoint is removed. Five steps:- Announce. A changelog entry under
### Deprecatedwith aSunsetdate at least 180 days in the future. - Header roll-out. Every response on the affected endpoint emits the RFC 8594 header triple:
Deprecation: trueflags the response as deprecated.Sunset:carries the removal date in RFC 1123 format.Link:withrel="deprecation"points to the changelog anchor where the migration is documented. - SDK signal. Every response on a deprecated endpoint carries the RFC 8594
Deprecation/Sunset/Linkheader triple — inspect them in your client to detect deprecation. In the TypeScript and Python SDKs, the corresponding request methods and types are marked@deprecated, so editors and compilers surface the hint at build time. - Direct contact. Customers whose API keys hit the deprecated endpoint in the prior 30 days receive an email the day announcement ships and again 30 days before sunset.
- Removal. On the sunset date the endpoint returns
410 Gonewith a body of the form:
What is not promised
To keep the policy honest:- No fixed release cadence. Work ships when ready, not on a calendar.
- No zero-breaking-change guarantee below major. Security fixes may force a faster path. Security fixes ship without the 180-day window and are announced retroactively under
### Security. - Experimental fields under
meta._agentic.experimental.*are not stable. They may move, rename, or disappear without a sunset clock. They exist so the team can preview shape changes in production traffic before committing to them. - Infrastructure-level identifiers (request IDs, trace IDs, internal cache keys) are not stable. Treat them as opaque.
Envelope rollout in progress
The envelope shape ({data, meta, error} with meta._agentic) is the contract this policy defends. The rollout across the API is in progress: a subset of /v2/* endpoints emit the full _agentic extension, and the rest emit the base {data, meta, error} envelope. Both shapes are valid under this policy.