Call Nomi Developer API

Connect Call Nomi to your CRM, reporting tools or internal systems. Read your account's calls, summaries, transcripts and recordings from your server with a dedicated API key.

The call-record endpoints below are read-only. Separate Agent endpoints support drafts and authorized outbound calls; they do not publish profiles, purchase services or change billing.

Production outbound calling does not require approval of each destination. It requires an enabled number, an active Agent grant and a configured route for that account's caller ID. Only supported Australian geographic and mobile numbers are allowed. Test mode retains an exact destination allowlist. Live capability and admission checks determine availability. Agent integration and outbound guide

API reference

API key management

After signing in to the Call Nomi web app, open API & integrations in the main navigation. Each integration can have its own named key, read permissions and expiry date.

The full key is shown only when it is created. You can review recent API activity, create replacement keys and revoke access from that signed-in page. This public guide does not create or manage account credentials.

Authentication

Create a key in API & integrations → Create key. Send it in the Authorization header over HTTPS. Keep the key on your server; never put it in browser code or a URL.

curl 'https://cpapi.21kol.com/nomi/partner/v1/calls?limit=50' --header "Authorization: Bearer $NOMI_API_KEY"

Keys expire after your selected period and can be revoked at any time. To rotate, create a replacement, update your integration, verify it works and revoke the old key. Revocation blocks new requests; it cannot recall previously downloaded data.

Endpoints

GET /calls
List call metadata and permitted summaries. Requires calls:read.
GET /calls/{id}
Get one call, including summary and transcript only when permitted.
GET /calls/{id}/summary
Get the summary. Requires summaries:read.
GET /calls/{id}/transcript
Get the plain text transcript. Requires transcripts:read.
GET /calls/{id}/recording
Download WAV or MP3 audio. Requires recordings:read. Supply the Authorization header again.

Base URL: https://cpapi.21kol.com/nomi/partner/v1

Access is scoped to the account that created the key. Supplying another account ID never changes the account being read. Call recording paths are relative to https://cpapi.21kol.com/nomi.

Agent outbound endpoints

Read GET /agent/outbound/requirements with calls:read for the current schema and gates. Starting or cancelling requires outbound:calls:write; the caller number is resolved from the authenticated account.

Use POST /agent/outbound/calls only for a human-requested call with its task and limits. Persist its idempotency key and never redial after an uncertain result. Read GET /agent/outbound/calls/{id}/result until finalized; summaries require summaries:read and conversation requires transcripts:read. Outbound audio recording is not provided.

A$5/month add-on; A$0.20/min to standard Australian numbers after included outbound minutes. Number activation is separate from granting Agent access. Existing active grants can be reused; new scopes require human approval. Full installation and execution contract.

Pagination and filters

Use limit (1–100, default 50), from (inclusive ISO 8601 time), to (exclusive ISO 8601 time), phone (exact caller number) and status (exact saved status). URL-encode a leading + in phone numbers as %2B.

Results are sorted by call start time, newest first, then call ID. Pass nextCursor as cursor to read the next page. Keep filters unchanged. Cursors expire after 24 hours and are tied to the key. A list response contains data, nextCursor, hasMore and requestId.

Calls can arrive late or receive later summaries. Periodically re-read an overlapping time window and deduplicate by call ID. This API is a current view, not a change feed. Test Nomi preview calls are not saved as call records.

Limits and errors

Each account shares 60 requests per minute across all keys, including a maximum of 10 recording downloads. A separate ingress limit protects the service. On HTTP 429, respect the Retry-After header and use backoff. Do not retry 401 or 403 without correcting the key or permissions.

401: invalid, expired or revoked key. 403: missing scope. 404: resource unavailable or not owned by this account. 410: recording deleted. 400: invalid filters or cursor. 503: temporarily unavailable.

Errors contain error.code, error.message and requestId. Responses are private and must not be cached by a shared proxy. Audio downloads return their content type and length, without public download URLs; byte-range requests are not supported in this version.

API activity is visible in Developer API. The most recent 1,000 events per account are retained; the page shows the latest 50. Logs record operations and results without call content or keys. Downloaded information must follow your customer's consent and retention requirements.