Status: Deprecated — Legacy API keys still work, but will stop working on 2026-05-10. Migrate to Developer Keys before then.
Why we are removing this
Legacysk_ (Project API Key) and buzz_live_ (Integration API Key) were stored in plaintext, scoped only to a project, and could not be audited back to a user. Developer Keys (dk_) are stored as hashes, scoped to a user with project membership, and produce auditable access — the same key model now covers every public API path.
Keeping two parallel auth schemes means every new endpoint has to reason about both. We are consolidating on dk_ so the API surface is consistent and so we can ship per-key scopes (coming after this sunset).
Timeline
The sunset date moves later if legacy traffic has not gone to zero. It does not move earlier.
What is changing
Three things are going away on 2026-05-10:sk_...Project API Keys — created previously in Project Settings → API Keys.buzz_live_...Integration API Keys — created previously in Integrations → API.x-api-keyheader — the only headersk_accepted on the legacy/knowledgebases/*route.
Authorization: Bearer dk_....
How to migrate
1. Create a Developer Key
- Sign in to app.pathors.com.
- Open Developer Keys from the account menu.
- Click Create Key, name it after the integration that will use it, and copy the plaintext value immediately — it is only shown once.
2. Replace the credential in your integration
Old (any of these will stop working on 2026-05-10):- Header: always
Authorization: Bearer. Thex-api-keyheader is being removed entirely. - Knowledgebase path:
/knowledgebases/*→/v1/projects/{projectId}/knowledgebases/*. The old path stops accepting requests on 2026-05-10. Previously the project was inferred from thesk_key; withdk_you specify the project in the URL.
3. Revoke your legacy keys
Once your integration is ondk_, revoke the old keys so accidental fallback can not happen:
- Open Developer Keys.
- Scroll to Legacy Integration Keys (only visible while you still have legacy keys).
- Click Revoke on each row, confirm in the dialog.
dk_ is working in production first.
Edge cases
My integration runs on a server I don’t fully control (n8n, Zapier, custom webhook). Update the credential in the integration’s settings UI, redeploy/save, and send one test request. Watch the response — a 401 after the swap means the newdk_ does not have access to the project the integration is targeting (re-check membership).
I have several integrations sharing the same sk_.
Create one dk_ per integration. Sharing a key across integrations is allowed but makes the audit log less useful and means revoking one integration revokes all of them.
I see a Deprecation / Sunset response header before 2026-05-10.
That is by design. The request still succeeds. The header is the signal that the route or the credential you used is on the legacy path. After 2026-05-10 the same call returns 401.
The user who owns the dk_ leaves the project / company.
The key stops working when the user loses project membership. For long-lived integrations, create the dk_ under a service-account user or a stable owner, not the original engineer.
My dk_ returns 401 even though it is correct.
Check, in order: the prefix is dk_ (not dk_live_), the header is Authorization: Bearer ... (not x-api-key), the user owning the key is a member of the project the request targets, and the key was not revoked. Expired or revoked dk_ requests do not silently fall back to legacy auth — they return 401.
Need help
- Discord: #support
- Email: support@pathors.com
