Recordings & phonebooks
The last two read methods: call recording metadata (with a download link) and an account's phonebook entries.
recordings_get
Lists recorded calls in a time window, with a link to download each one.
Who may call it: any account type. A plain user always sees only their own recordings; staff accounts see everything inside their scope.
| Parameter | Required | Meaning |
|---|---|---|
u | Yes | Caller's username. |
date_from / date_till | No | Unix timestamps; default to today. date_from can't be after date_till. |
destination / source | No | Exact match on the dialled / calling number. |
device | No | Numeric device id — matches either side of the call. |
user | No | Numeric user id — matches either side of the call. |
uniqueid | No | One exact call by its CDR unique id. |
Hash parameter order: deliberately empty, by design (declared that way in the code) — a normal call hashes to SHA1(secret key) alone, whatever filters you send.
curl -X POST https://api.example.com/api/recordings_get \
-d "u=admin" \
-d "hash=PLACEHOLDER_HASH"<page>
<status>
<recordings>
<recording>
<id>18420</id>
<user_id>3031</user_id>
<dst_user_id>0</dst_user_id>
<src_device_id>3327</src_device_id>
<dst_device_id>0</dst_device_id>
<date>2026-09-24 10:03:11</date>
<comment></comment>
<duration>00:00:42</duration>
<source>1010</source>
<destination>...</destination>
<size>338204</size>
<mp3_url>/api/recordings/18420</mp3_url>
</recording>
</recordings>
</status>
</page>mp3_url is a relative path on the same host, not a ready-to-use direct link — it's the same authenticated recordings download route the product's own UI uses, not part of this hash-signed API. Fetching it needs a logged-in session, not the API hash.
Errors: Access Denied (no caller), Date from is greater than date till, No Recordings found (nested in <status>).
recordings_get lists, with the same download route behind mp3_url.phonebooks_get
An account's phonebook entries (speed-dial-style short numbers), including any installation-wide ones.
Who may call it: any account type, for its own phonebook. An admin, reseller or accountant can also read a different account's phonebook inside their scope by passing user_id.
| Parameter | Required | In hash | Meaning |
|---|---|---|---|
u | Yes | — | Caller's username. |
user_id | No | 1st | Numeric id of the account whose phonebook to read, instead of the caller's own. |
Hash parameter order: user_id.
curl -X POST https://api.example.com/api/phonebooks_get \
-d "u=admin" \
-d "user_id=3031" \
-d "hash=PLACEHOLDER_HASH"<page>
<phonebooks>
<phonebook>
<id>7</id>
<name>Demo Contact</name>
<number>41440000099</number>
<speeddial>1</speeddial>
</phonebook>
</phonebooks>
</page>Errors: Bad login (no caller), User was not found, No Phonebooks.
Also reachable as: /api/phonebooks.
phonebooks_get returns.Check
Call recordings_get for today's date range and confirm the count matches what the Reports or calls pages show for recorded calls in the same window.