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.

ParameterRequiredMeaning
uYesCaller's username.
date_from / date_tillNoUnix timestamps; default to today. date_from can't be after date_till.
destination / sourceNoExact match on the dialled / calling number.
deviceNoNumeric device id — matches either side of the call.
userNoNumeric user id — matches either side of the call.
uniqueidNoOne 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>
Note

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>).

The Recordings list — the same call recordings 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.

ParameterRequiredIn hashMeaning
uYes—Caller's username.
user_idNo1stNumeric 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.

Phonebook — the same entries 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.