What changed
API keys
v1 keys (klipy_pk_<id>) and v2 keys (klipy_live_<random>) are different formats and are not interchangeable — a v1 key does not authenticate against /api/v2/*, and a v2 key does not authenticate against /api/v1/*. You’ll need to issue new v2 keys; see Issuing API keys.
Two other differences worth knowing before you migrate:
- Scopes are required. v1 keys were issued with full (
ALL) access. v2 has noALLscope — you choose exactly whichresource:actionscopes a key needs at creation time. - Access level is explicit. v2 keys are either organization-wide or bound to a single user, chosen at creation. v1 had no equivalent concept.
Resource naming
The v1people resource is called contacts in v2 — same underlying object, new name:
| v1 | v2 |
|---|---|
people | contacts |
companies | companies |
interactions | interactions |
New in v2
v2 covers the full CRM object model, not just the three resources v1 exposed:- New resources: deals, pipelines, tasks, notes, segments, meetings, recordings, bookings.
- Relationship sub-resources: link/unlink contacts and companies on a deal, records on a note, members on a segment, and single deal/company associations on a meeting. See Introduction.
- Batch-create:
POST /{resource}/batchfor up to 100 items in one request, on every resource that supports creation. - Idempotency: every
POST/PATCHaccepts anIdempotency-Keyheader so retries are safe.
What didn’t change
- Field naming. Both v1 and v2 use
snake_caseJSON field names. - Envelope shape. Both use the same
{ object, data, meta }pattern for single-resource responses and cursor-basedpage_infofor lists. - Rate limits. Both are 200 req/min per key, 1000 req/min per organization.
Migration checklist
Issue a v2 key
Create a new key at Settings → API with the scopes your integration needs. See Issuing API keys.
Update the base URL
Change requests from
https://api.klipy.ai/api/v1 to https://api.klipy.ai/api/v2.Rename `people` calls to `contacts`
Update any request path or reference from
/people to /contacts. The request/response shape for the equivalent operations is otherwise the same.Switch the auth header value
Swap the v1 key for the new v2 key in your
X-Klipy-Api-Key or Authorization: Bearer header — the header names themselves are unchanged.Related topics
- Introduction — full v2 concepts: envelope, scopes, batch, idempotency, relationships.
- Issuing API keys — the v2 key lifecycle.