API Reference
Key Admin
Calls and history

Call history (CDRs)

Call history comes from call detail records (CDRs): one record per call with who called whom, when, how long and how it ended. Always pass a date range.

In the Key Admin this is the Call history (CDRs) switch. Read lets a key call the GET endpoints below. This feature is read only.

This feature holds sensitive data about callers and calls. Keep what you pull secure and only keep it as long as you need it.

List call records for a site

GET/domains/~/cdrs

Returns call records for one site in a date range.

Read Key Admin switch: Call history (CDRs), Read. Read only keys also work. Sensitive data

Parameters

NameInTypeNotes
datetime-startquerystring (rfc3339)Start of the date range, like 2026-10-01 00:00:00. Times are in the account's time zone.
datetime-endquerystring (rfc3339)End of the date range, like 2026-10-31 23:59:59.
sitequerystringThe site name.

Example request

curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/cdrs?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/cdrs?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.get(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/cdrs?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 200

[
  {
    "id": "string",
    "domain": "string",
    "reseller": "string",
    "call-account-code": "string",
    "call-answer-datetime": "2026-11-02 09:00:00",
    "call-audio-codec": "string",
    "call-audio-relay-side-a-local-port": 1,
    "call-audio-relay-side-a-packet-count": 1,
    "...": "91 more fields"
  }
]
Response fields (99)
FieldTypeNotes
idstringThe item's ID.
domainstringThe account the item belongs to.
resellerstringThe parent account group. Set by the platform.
call-account-codestring
call-answer-datetimestringCall answer (date and time).
call-audio-codecstring
call-audio-relay-side-a-local-portinteger
call-audio-relay-side-a-packet-countintegerNumber of call audio relay side a packet.
call-audio-relay-side-a-remote-ipstring
call-audio-relay-side-b-packet-countintegerNumber of call audio relay side b packet.
call-audio-relay-side-b-remote-ipstring
call-batch-answer-datetimestringCall batch answer (date and time).
call-batch-on-hold-duration-secondsintegerCall batch on hold duration, in seconds.
call-batch-sequence-markerstring
call-batch-start-datetimestringCall batch start (date and time).
call-batch-total-duration-secondsintegerCall batch total duration, in seconds.
call-directioninteger
call-disconnect-datetimestringCall disconnect (date and time).
call-disconnect-reason-textstring
call-dispositionnull
call-disposition-notesnull
call-disposition-reasonnull
call-disposition-submitted-datetimenullCall disposition submitted (date and time).
call-disposition-typenull
call-fax-codecnull
call-fax-relay-side-a-local-portnull
call-fax-relay-side-a-packet-countnullNumber of call fax relay side a packet.
call-fax-relay-side-a-remote-ipnull
call-fax-relay-side-b-packet-countnullNumber of call fax relay side b packet.
call-fax-relay-side-b-remote-ipnull
call-intelligence-job-idstringID of the call intelligence job.
call-intelligence-percent-negativestring
call-intelligence-percent-neutralstring
call-intelligence-percent-positivestring
call-intelligence-topics-topstring
call-leg-ordinal-indexinteger
call-on-hold-duration-secondsintegerCall on hold duration, in seconds.
call-orig-call-idstringID of the call orig call.
call-orig-caller-idintegerID of the call orig caller.
call-orig-departmentstring
call-orig-domainstring
call-orig-from-hoststring
call-orig-from-namestringName of the call orig from.
call-orig-from-uristring
call-orig-from-userstring
call-orig-ip-addressstring
call-orig-match-uristring
call-orig-pre-routing-uristring
call-orig-request-hoststring
call-orig-request-uristring
call-orig-request-userstring
call-orig-resellerstring
call-orig-sitestring
call-orig-to-hoststring
call-orig-to-uristring
call-orig-to-userstring
call-orig-userinteger
call-parent-call-idstringID of the call parent call.
call-parent-cdr-idstringID of the call parent cdr.
call-record-creation-datetimenullCall record creation (date and time).
call-ringing-datetimenullCall ringing (date and time).
call-routing-classinteger
call-routing-match-uristring
call-start-datetimestringCall start (date and time).
call-tagstring
call-talking-duration-secondsintegerCall talking duration, in seconds.
call-term-call-idstringID of the call term call.
call-term-caller-idstringID of the call term caller.
call-term-departmentnull
call-term-domainstring
call-term-ip-addressstring
call-term-match-uristring
call-term-pre-reouting-uristring
call-term-resellernull
call-term-sitenull
call-term-to-uristring
call-term-usernull
call-through-actionstring
call-through-call-idnullID of the call through call.
call-through-caller-idnullID of the call through caller.
call-through-departmentnull
call-through-domainnull
call-through-resellernull
call-through-sitenull
call-through-urinull
call-through-usernull
call-total-duration-secondsintegerCall total duration, in seconds.
call-video-codecnull
call-video-relay-side-a-local-portnull
call-video-relay-side-a-packet-countnullNumber of call video relay side a packet.
call-video-relay-side-a-remote-ipnull
call-video-relay-side-b-packet-countnullNumber of call video relay side b packet.
call-video-relay-side-b-remote-ipnull
call-server-mac-addressstring
core-serverstring
hide-from-resultsinteger
is-trace-expectedboolean
prefilled-trace-apistring
prefilled-transcription-apistring

Search call records

GET/domains/~/cdrs

Finds call records in a date range by the number dialed, the caller, site or group.

Read Key Admin switch: Call history (CDRs), Read. Read only keys also work. Sensitive data

Parameters

NameInTypeNotes
datetime-start requiredquerystring (rfc3339)Start of the date range, like 2026-10-01 00:00:00. Times are in the account's time zone.
datetime-end requiredquerystring (rfc3339)End of the date range, like 2026-10-31 23:59:59.
dialledquerystringOnly return calls to this number.
callerquerystringOnly return calls from this number.
sitequerystringThe site name.
groupquerystringOnly return calls for this group.

Example request

curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/cdrs?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/cdrs?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.get(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/cdrs?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 200

[
  {
    "id": "string",
    "domain": "string",
    "reseller": "string",
    "call-account-code": "string",
    "call-answer-datetime": "2026-11-02 09:00:00",
    "call-audio-codec": "string",
    "call-audio-relay-side-a-local-port": 1,
    "call-audio-relay-side-a-packet-count": 1,
    "...": "91 more fields"
  }
]
Response fields (99)
FieldTypeNotes
idstringThe item's ID.
domainstringThe account the item belongs to.
resellerstringThe parent account group. Set by the platform.
call-account-codestring
call-answer-datetimestringCall answer (date and time).
call-audio-codecstring
call-audio-relay-side-a-local-portinteger
call-audio-relay-side-a-packet-countintegerNumber of call audio relay side a packet.
call-audio-relay-side-a-remote-ipstring
call-audio-relay-side-b-packet-countintegerNumber of call audio relay side b packet.
call-audio-relay-side-b-remote-ipstring
call-batch-answer-datetimestringCall batch answer (date and time).
call-batch-on-hold-duration-secondsintegerCall batch on hold duration, in seconds.
call-batch-sequence-markerstring
call-batch-start-datetimestringCall batch start (date and time).
call-batch-total-duration-secondsintegerCall batch total duration, in seconds.
call-directioninteger
call-disconnect-datetimestringCall disconnect (date and time).
call-disconnect-reason-textstring
call-dispositionnull
call-disposition-notesnull
call-disposition-reasonnull
call-disposition-submitted-datetimenullCall disposition submitted (date and time).
call-disposition-typenull
call-fax-codecnull
call-fax-relay-side-a-local-portnull
call-fax-relay-side-a-packet-countnullNumber of call fax relay side a packet.
call-fax-relay-side-a-remote-ipnull
call-fax-relay-side-b-packet-countnullNumber of call fax relay side b packet.
call-fax-relay-side-b-remote-ipnull
call-intelligence-job-idstringID of the call intelligence job.
call-intelligence-percent-negativestring
call-intelligence-percent-neutralstring
call-intelligence-percent-positivestring
call-intelligence-topics-topstring
call-leg-ordinal-indexinteger
call-on-hold-duration-secondsintegerCall on hold duration, in seconds.
call-orig-call-idstringID of the call orig call.
call-orig-caller-idintegerID of the call orig caller.
call-orig-departmentstring
call-orig-domainstring
call-orig-from-hoststring
call-orig-from-namestringName of the call orig from.
call-orig-from-uristring
call-orig-from-userstring
call-orig-ip-addressstring
call-orig-match-uristring
call-orig-pre-routing-uristring
call-orig-request-hoststring
call-orig-request-uristring
call-orig-request-userstring
call-orig-resellerstring
call-orig-sitestring
call-orig-to-hoststring
call-orig-to-uristring
call-orig-to-userstring
call-orig-userinteger
call-parent-call-idstringID of the call parent call.
call-parent-cdr-idstringID of the call parent cdr.
call-record-creation-datetimenullCall record creation (date and time).
call-ringing-datetimenullCall ringing (date and time).
call-routing-classinteger
call-routing-match-uristring
call-start-datetimestringCall start (date and time).
call-tagstring
call-talking-duration-secondsintegerCall talking duration, in seconds.
call-term-call-idstringID of the call term call.
call-term-caller-idstringID of the call term caller.
call-term-departmentnull
call-term-domainstring
call-term-ip-addressstring
call-term-match-uristring
call-term-pre-reouting-uristring
call-term-resellernull
call-term-sitenull
call-term-to-uristring
call-term-usernull
call-through-actionstring
call-through-call-idnullID of the call through call.
call-through-caller-idnullID of the call through caller.
call-through-departmentnull
call-through-domainnull
call-through-resellernull
call-through-sitenull
call-through-urinull
call-through-usernull
call-total-duration-secondsintegerCall total duration, in seconds.
call-video-codecnull
call-video-relay-side-a-local-portnull
call-video-relay-side-a-packet-countnullNumber of call video relay side a packet.
call-video-relay-side-a-remote-ipnull
call-video-relay-side-b-packet-countnullNumber of call video relay side b packet.
call-video-relay-side-b-remote-ipnull
call-server-mac-addressstring
core-serverstring
hide-from-resultsinteger
is-trace-expectedboolean
prefilled-trace-apistring
prefilled-transcription-apistring

List call records

GET/domains/~/cdrs

Returns call detail records (CDRs) for the account in a date range. Page through large ranges with start and limit.

Read Key Admin switch: Call history (CDRs), Read. Read only keys also work. Sensitive data

Parameters

NameInTypeNotes
datetime-start requiredquerystring (rfc3339)Start of the date range, like 2026-10-01 00:00:00. Times are in the account's time zone.
datetime-end requiredquerystring (rfc3339)End of the date range, like 2026-10-31 23:59:59.
startquerynumber (int)How many results to skip. Use with limit to page through results. Default 0 Min 0
limitquerynumber (int)Most results to return in one response. Default 100 Min 1 Max 1000
typequerystringNarrows the results to one type.

Example request

curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/cdrs?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/cdrs?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.get(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/cdrs?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 200

[
  {
    "id": "string",
    "domain": "string",
    "reseller": "string",
    "call-account-code": "string",
    "call-answer-datetime": "2026-11-02 09:00:00",
    "call-audio-codec": "string",
    "call-audio-relay-side-a-local-port": 1,
    "call-audio-relay-side-a-packet-count": 1,
    "...": "91 more fields"
  }
]
Response fields (99)
FieldTypeNotes
idstringThe item's ID.
domainstringThe account the item belongs to.
resellerstringThe parent account group. Set by the platform.
call-account-codestring
call-answer-datetimestringCall answer (date and time).
call-audio-codecstring
call-audio-relay-side-a-local-portinteger
call-audio-relay-side-a-packet-countintegerNumber of call audio relay side a packet.
call-audio-relay-side-a-remote-ipstring
call-audio-relay-side-b-packet-countintegerNumber of call audio relay side b packet.
call-audio-relay-side-b-remote-ipstring
call-batch-answer-datetimestringCall batch answer (date and time).
call-batch-on-hold-duration-secondsintegerCall batch on hold duration, in seconds.
call-batch-sequence-markerstring
call-batch-start-datetimestringCall batch start (date and time).
call-batch-total-duration-secondsintegerCall batch total duration, in seconds.
call-directioninteger
call-disconnect-datetimestringCall disconnect (date and time).
call-disconnect-reason-textstring
call-dispositionnull
call-disposition-notesnull
call-disposition-reasonnull
call-disposition-submitted-datetimenullCall disposition submitted (date and time).
call-disposition-typenull
call-fax-codecnull
call-fax-relay-side-a-local-portnull
call-fax-relay-side-a-packet-countnullNumber of call fax relay side a packet.
call-fax-relay-side-a-remote-ipnull
call-fax-relay-side-b-packet-countnullNumber of call fax relay side b packet.
call-fax-relay-side-b-remote-ipnull
call-intelligence-job-idstringID of the call intelligence job.
call-intelligence-percent-negativestring
call-intelligence-percent-neutralstring
call-intelligence-percent-positivestring
call-intelligence-topics-topstring
call-leg-ordinal-indexinteger
call-on-hold-duration-secondsintegerCall on hold duration, in seconds.
call-orig-call-idstringID of the call orig call.
call-orig-caller-idintegerID of the call orig caller.
call-orig-departmentstring
call-orig-domainstring
call-orig-from-hoststring
call-orig-from-namestringName of the call orig from.
call-orig-from-uristring
call-orig-from-userstring
call-orig-ip-addressstring
call-orig-match-uristring
call-orig-pre-routing-uristring
call-orig-request-hoststring
call-orig-request-uristring
call-orig-request-userstring
call-orig-resellerstring
call-orig-sitestring
call-orig-to-hoststring
call-orig-to-uristring
call-orig-to-userstring
call-orig-userinteger
call-parent-call-idstringID of the call parent call.
call-parent-cdr-idstringID of the call parent cdr.
call-record-creation-datetimenullCall record creation (date and time).
call-ringing-datetimenullCall ringing (date and time).
call-routing-classinteger
call-routing-match-uristring
call-start-datetimestringCall start (date and time).
call-tagstring
call-talking-duration-secondsintegerCall talking duration, in seconds.
call-term-call-idstringID of the call term call.
call-term-caller-idstringID of the call term caller.
call-term-departmentnull
call-term-domainstring
call-term-ip-addressstring
call-term-match-uristring
call-term-pre-reouting-uristring
call-term-resellernull
call-term-sitenull
call-term-to-uristring
call-term-usernull
call-through-actionstring
call-through-call-idnullID of the call through call.
call-through-caller-idnullID of the call through caller.
call-through-departmentnull
call-through-domainnull
call-through-resellernull
call-through-sitenull
call-through-urinull
call-through-usernull
call-total-duration-secondsintegerCall total duration, in seconds.
call-video-codecnull
call-video-relay-side-a-local-portnull
call-video-relay-side-a-packet-countnullNumber of call video relay side a packet.
call-video-relay-side-a-remote-ipnull
call-video-relay-side-b-packet-countnullNumber of call video relay side b packet.
call-video-relay-side-b-remote-ipnull
call-server-mac-addressstring
core-serverstring
hide-from-resultsinteger
is-trace-expectedboolean
prefilled-trace-apistring
prefilled-transcription-apistring

Count call records

GET/domains/~/cdrs/count

Returns how many call records there are on the account, as {"total": n}.

Read Key Admin switch: Call history (CDRs), Read. Read only keys also work. Sensitive data

Parameters

NameInTypeNotes
datetime-start requiredquerystring (rfc3339)Start of the date range, like 2026-10-01 00:00:00. Times are in the account's time zone.
datetime-end requiredquerystring (rfc3339)End of the date range, like 2026-10-31 23:59:59.
typequerystringNarrows the results to one type.

Example request

curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/cdrs/count?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/cdrs/count?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.get(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/cdrs/count?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 200

{
  "total": 1
}
Response fields (1)
FieldTypeNotes
totalintegerHow many items matched.

List a user's call records

GET/domains/~/users/{user}/cdrs

Returns call detail records for one user in a date range.

Read Key Admin switch: Call history (CDRs), Read. Read only keys also work. Sensitive data

Parameters

NameInTypeNotes
user requiredpathstringThe user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16
datetime-start requiredquerystring (rfc3339)Start of the date range, like 2026-10-01 00:00:00. Times are in the account's time zone.
datetime-end requiredquerystring (rfc3339)End of the date range, like 2026-10-31 23:59:59.
startquerynumber (int)How many results to skip. Use with limit to page through results. Default 0 Min 0
limitquerynumber (int)Most results to return in one response. Default 100 Min 1 Max 1000
typequerystringNarrows the results to one type.

Example request

curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/cdrs?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/cdrs?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.get(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/cdrs?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 200

[
  {
    "uid": "string",
    "domain": "string",
    "cdr_id": "string",
    "type": 1,
    "time_start": 1,
    "time_answer": 1,
    "time_release": 1,
    "duration": 1,
    "...": "7 more fields"
  }
]
Response fields (15)
FieldTypeNotes
uidstring
domainstringThe account the item belongs to.
cdr_idstring
typeintegerThe kind of item.
time_startinteger
time_answerinteger
time_releaseinteger
durationinteger
orig_to_uristring
numberstring
namestring
onnetinteger
hideinteger
tagstring
expected_traceboolean

Count call records for a user

GET/domains/~/users/{user}/cdrs/count

Returns how many call records there are for one user, as {"total": n}.

Read Key Admin switch: Call history (CDRs), Read. Read only keys also work. Sensitive data

Parameters

NameInTypeNotes
user requiredpathstringThe user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16
datetime-start requiredquerystring (rfc3339)Start of the date range, like 2026-10-01 00:00:00. Times are in the account's time zone.
datetime-end requiredquerystring (rfc3339)End of the date range, like 2026-10-31 23:59:59.
typequerystringNarrows the results to one type.

Example request

curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/cdrs/count?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/cdrs/count?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.get(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/cdrs/count?datetime-start=2026-10-01%2000%3A00%3A00&datetime-end=2026-10-31%2023%3A59%3A59",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 200

{
  "total": 1
}
Response fields (1)
FieldTypeNotes
totalintegerHow many items matched.