Download OpenAPI specification:Download
The NFON Call History API provides endpoints for retrieving, streaming, and deleting call history records for an authenticated NFON Cloud Telephony user.
This API is currently offered as part of Login with NFON (Early Access). As an early access offering, the API is subject to change. Updates may occur on short notice, though we strive to provide advance notice where possible.
For more information, see: https://www.nfon.com/en/integrations/login-with-nfon/
Get the latest call records. They can be filtered by number, name, time or type.
The response format is controlled by the Accept request header:
application/json (default):
Returns a JSON array of call records.
text/event-stream:
Streams call records as Server-Sent Events (SSE).
Each event carries one JSON-encoded call record in its data field.
A record will be re-sent if it is updated after initial delivery. The most common update case is transcription processing: a call with transcription activated is first streamed with transcription.available: false (audio processing still in progress). Once processing completes, the same record — identified by the same uuid — is streamed again with transcription.available: true and an updated timestamp. Clients should use uuid to detect such updates and replace the previously received record accordingly.
| search | string Search the records. The search looks at the caller and callee names and numbers. Any other call record fields are currently not considered when searching |
| filter | string Enum: "status:missed" "status:answered" "status:cancelled" "direction:inbound" "direction:outbound" "transcription" "internal:<extension-number>" "global:<number>" Filter call records that match certain property values. It is possible to specify multiple filters by providing a comma separated list. In this case only records that match all filters will be returned in the result. For compatibility reasons, the |
| customer | string The K-number for which to return call records. Applies only to admin level access with appropriate permissions |
| extension | string The extension (user) for which to return call records. Applies to admin level access with appropriate permissions |
| from | number Limit the list to records that are newer than this timestamp. |
| to | number Limit the list to records that are older than this timestamp |
| limit | integer Default: 0 Limit the number of call records in the result. |
| offset | integer Default: 0 Generate the list starting from offset |
| complete | boolean Default: false Should the records include the complete transcripts and summaries (for transcribed calls). |
| sort | string Default: "desc" Enum: "asc" "desc" Set creation time sort order |
[- {
- "uuid": "110e8400-e29b-41d4-a716-446655440011",
- "duration": 30,
- "direction": "outbound",
- "caller": {
- "name": "Alice",
- "number": "1001",
- "context": "K9999"
}, - "callee": {
- "name": "Bob",
- "number": "4989123456789",
- "context": "global"
}, - "status": "answered",
- "created": "2025-06-03T10:12:34Z",
- "trunk_code": "07",
- "transcription": {
- "available": false
}
}, - {
- "uuid": "220e8400-e29b-41d4-a716-446655440022",
- "duration": 30,
- "direction": "inbound",
- "caller": {
- "name": "Charlie",
- "number": "1003",
- "context": "K9999"
}, - "callee": {
- "name": "Alice",
- "number": "1001",
- "context": "K9999"
}, - "status": "answered",
- "created": "2025-06-03T10:22:24Z",
- "transcription": {
- "available": true
}
}, - {
- "uuid": "330e8400-e29b-41d4-a716-446655440033",
- "duration": 0,
- "direction": "inbound",
- "caller": {
- "name": "Charlie",
- "number": "1003",
- "context": "K9999"
}, - "callee": {
- "name": "Alice",
- "number": "1001",
- "context": "K9999"
}, - "history": [
- {
- "callee": {
- "name": "Test Group",
- "number": "10",
- "context": "K9999",
- "destination_type": "group"
}, - "updated": "2025-06-03T10:25:26Z"
}
], - "status": "cancelled",
- "created": "2025-06-03T10:25:25Z"
}
]Delete some or all call records (depending on the filters)
| uuid | Array of strings Delete call records with a given |
| filter | string Enum: "status:missed" "status:answered" "status:cancelled" "direction:inbound" "direction:outbound" "transcription" "internal:<extension-number>" "global:<number>" Only delete call records that match the filter. It is possible to specify multiple filters by providing a comma separated list. In this case only the records that match all filters will be deleted. |
| customer | string The K-number for which to return call records. Applies only to admin level access with appropriate permissions |
| extension | string The extension (user) for which to return call records. Applies only to admin level access with appropriate permissions |
| from | number Limit the list to records that are newer than this timestamp. |
| to | number Limit the list to records that are older than this timestamp |
{- "error": "some error message"
}Return call record details for a given call record uuid
| uuid required | string The |
{- "uuid": "000e8400-e29b-41d4-a716-446655440000",
- "duration": 30,
- "direction": "inbound",
- "caller": {
- "name": "Charlie",
- "number": "1003",
- "context": "K9999"
}, - "callee": {
- "name": "Alice",
- "number": "1001",
- "context": "K9999"
}, - "status": "answered",
- "created": "2025-06-03T10:22:24Z"
}