Guide 11
v0 deprecation and migration
Legacy v0 keys stop working on 31 January 2027. How to move to v1.
Last updated from API version 2026-10-06 at (live spec, refreshed hourly). openapi.json
Keys created before API v1 are legacy v0 keys, pinned to API version 2025-06-01. v0 behaviour ends on 31 January 2027. Until then every v0 response for a v0 key carries the standard deprecation headers:
v0 response headers
Deprecation: @1791244800
Sunset: Sun, 31 Jan 2027 00:00:00 GMT
Link: <https://app.owlbound.ai/api/v1>; rel="deprecation"Deprecation follows RFC 9745 and Sunset RFC 8594. v1 keys and v1 responses never carry them. GET https://app.owlbound.ai/api/v1 lists the dates under deprecations.v0.
Migrate in four steps
- Upgrade or replace the key.In the app, Settings > Developer, upgrade the key to v1 or create a new v1 key (
owl_sk_...) with the scopes you need. A v0 key calling a v1-only operation gets403 INSUFFICIENT_SCOPEwithdetails.upgrade: true. - Send it as a Bearer token (
Authorization: Bearer owl_sk_...) and pinOwlbound-Version: 2026-10-06. - Read the v1 envelope. Successes are
{data, meta}, errors{error: {type, code, message, requestId, docUrl}}. Lists are cursor paginated (meta.page.nextCursor,hasMore). - Move writes to actions. Enrichment, scoring and enrollment now go through
actions.*with a dry run, a plan and, for sends, approval. Add anIdempotency-Keyto every write.
Where things moved
| v0 | v1 |
|---|---|
| Contacts and companies reads | GET /contacts, POST /contacts/search, GET /companies |
| Enrich a contact | POST /actions/enrich/work_email, POST /actions/enrich/mobile_phone |
| Score a contact | POST /actions/score/contact |
| Enroll in a sequence | POST /actions/sequences/enroll |
| Sequence analytics and replies | GET /sequences/{id}/analytics, GET /sequences/{id}/replies |
| Usage | GET /credits, GET /credits/ledger |
After the sunset
On 31 January 2027 v0 behaviour ends for every v0 key. Upgrade your keys and move your calls to v1 before then.