API key management for superadmins, and calls updates
New: List and delete API keys, and archive API users
Superadmins can now manage their company’s API keys through the API. These endpoints authenticate with Basic Auth (your Coperniq email and password), the same as POST /api-keys, not with an API key. Each one takes an optional company_id for logins that belong to more than one company.
- Key values are never returned. Each key’s
idis a non-secret identifier (key_…) used to delete it, andkeyPreviewshows the key’s last 4 characters so you can recognize it. If you’ve lost a key, create a new one withPOST /api-keys, or contact support. - To retire an API user, use
POST /api-users/{user_id}/archiveinstead of archiving it in the Coperniq UI. Archiving it in the UI doesn’t delete its keys. - Archiving doesn’t block future keys: if the person who created the API user calls
POST /api-keysagain, the API user is reactivated with a new key. - These endpoints are for superadmins only. Other users get a
403.
Calls: custom reasons and dispositions, AI summary and transcript
Updated: reason and disposition are company-defined
A call’s reason and disposition now hold the name of one of your company’s call reasons or dispositions, set up in Coperniq. They’re plain strings of up to 255 characters instead of a fixed list.
- Calls logged before custom options existed keep their legacy uppercase values, such as
SERVICEorINFO_PROVIDED. Newer calls hold the option’s name, such asServiceorInfo provided. outcomecan now also beVOICEMAIL.
New: GET /calls
Lists calls across your whole company, paginated with page and page_size (max 100). Filter by updated_after/updated_before, outcome, reason or disposition, and sort by creation time with order_by (newest first by default). Each call includes projectId, opportunityId or accountId for the record it’s logged on.
New: GET /calls/classification-options
Lists your company’s call reasons and dispositions. Pass type=REASON or type=DISPOSITION to get one kind.
New call fields
GET and POST call responses now include:
note is the human-editable note. The per-record call lists (GET /projects/{project_id}/calls and the opportunity and account equivalents) now return calls newest first, and return 502 if Coperniq’s backend errors.
