Versioning and compatibility
The API version is part of the URL. Every route in this documentation lives under https://api.scribewren.com/v1.
Changes that ship without a new version
Section titled “Changes that ship without a new version”Inside /v1, changes are additive only. These can appear at any time:
- new endpoints;
- new optional request fields;
- new fields in responses;
- new values in an enum, such as a status, a stage or a warning;
- new
error.codevalues.
Your client has to tolerate them. The next section lists what that means in practice.
Breaking changes
Section titled “Breaking changes”A change that could break a working client needs a new version path, such as /v2. That includes:
- removing or renaming a field;
- changing the type of a field;
- making validation stricter.
Scribewren announces a breaking change on the changelog at least 30 days before it takes effect, as the Terms of Service say.
Write a tolerant client
Section titled “Write a tolerant client”- Ignore response fields you do not know. Do not fail on an extra key.
- Treat an unknown enum value as unknown. Give every
switchon a status, stage or warning a default branch. - Branch on the HTTP status and on
error.code, never onmessage. If you meet anerror.codeyou do not know, handle it by its HTTP status. See Errors. - Do not depend on the order of keys in JSON, or on the exact format of an ID beyond treating it as an opaque string.
- Send only the request fields this documentation lists. The API rejects unknown fields in a request body on purpose, so a typo does not pass silently.
- Keep
/v1in your base URL setting, so a move to a later version is a configuration change.
What counts as the API
Section titled “What counts as the API”The documented routes on api.scribewren.com are the API. The first-party routes that the Scribewren app uses are not part of it, and the API host does not serve them: a path that is not documented returns 404 NOT_FOUND. Managing keys and webhook endpoints happens in the app, not through the API.
Not in version 1
Section titled “Not in version 1”These are not available in /v1. They are listed so you do not wait for them in your integration:
- a published OpenAPI file;
- key scopes;
- team keys;
- IP allowlists;
- more webhook event types.
Stay informed
Section titled “Stay informed”Read the changelog when you plan a release of your integration. It is where breaking changes are announced.
Can't find what you need? Contact support, email [email protected], or open Help and then Contact in the app. scribewren.com