Skip to main content
GET
/
v1
/
core
/
recordings
Get recordings
curl --request GET \
  --url https://api.siro.ai/v1/core/recordings \
  --header 'x-siro-auth-token: <api-key>'
import requests

url = "https://api.siro.ai/v1/core/recordings"

headers = {"x-siro-auth-token": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {'x-siro-auth-token': '<api-key>'}};

fetch('https://api.siro.ai/v1/core/recordings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.siro.ai/v1/core/recordings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-siro-auth-token: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.siro.ai/v1/core/recordings"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("x-siro-auth-token", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.siro.ai/v1/core/recordings")
.header("x-siro-auth-token", "<api-key>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.siro.ai/v1/core/recordings")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-siro-auth-token"] = '<api-key>'

response = http.request(request)
puts response.read_body
{
  "data": [
    {
      "id": "<string>",
      "dateCreated": "<string>",
      "repFirstName": "<string>",
      "repLastName": "<string>",
      "durationInMilliseconds": 123,
      "result": "<string>",
      "title": "<string>",
      "isPrivate": true,
      "userId": "<string>",
      "discoverable": true,
      "isVideo": true,
      "followups": [
        {
          "id": "<string>",
          "score": 123
        }
      ],
      "crmCustomer": {
        "id": "<string>",
        "createdAt": "2023-11-07T05:31:56Z",
        "updatedAt": "2023-11-07T05:31:56Z",
        "organizationId": "<string>",
        "name": "<string>",
        "crmUrl": "<string>",
        "lastActivityAt": "<string>",
        "closedAt": "2023-11-07T05:31:56Z",
        "emailAddress": "<string>",
        "phoneNumber": "<string>",
        "externalId": "<string>",
        "amount": 123,
        "disposition": "<string>",
        "recordingId": "<string>",
        "lastRecordingDate": "2023-11-07T05:31:56Z",
        "numRecordings": 123,
        "accountId": "<string>",
        "opportunityAccountName": "<string>",
        "contactId": "<string>",
        "opportunityContactName": "<string>",
        "opportunityId": "<string>",
        "engagementId": "<string>",
        "opportunity": {
          "id": "<string>",
          "externalId": "<string>",
          "createdAt": "<string>",
          "updatedAt": "<string>",
          "organizationId": "<string>",
          "name": "<string>",
          "amount": 123,
          "closedAt": "<string>",
          "disposition": "<string>",
          "recordingId": "<string>",
          "accountId": "<string>",
          "account": null,
          "opportunityUsers": [
            null
          ]
        },
        "opportunities": {
          "data": [
            {
              "id": "<string>",
              "externalId": "<string>",
              "createdAt": "<string>",
              "updatedAt": "<string>",
              "organizationId": "<string>",
              "name": "<string>",
              "amount": 123,
              "closedAt": "<string>",
              "disposition": "<string>",
              "recordingId": "<string>",
              "accountId": "<string>",
              "account": null,
              "opportunityUsers": [
                null
              ]
            }
          ],
          "cursor": "<string>"
        },
        "opportunityUsers": [
          null
        ],
        "contactAccount": {
          "id": "<string>",
          "name": "<string>",
          "externalId": "<string>"
        },
        "address": "<string>",
        "integrationConnectionId": "<string>",
        "integrationName": "<string>"
      },
      "evaluationScore": 123,
      "universalOutcomeLabel": "<string>",
      "extractedCustomOutcomes": {
        "outcomeExtractionId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "outcomes": [
          {
            "customLabel": "sale_completed",
            "universalLabel": "POSITIVE"
          },
          {
            "customLabel": "appointment_scheduled",
            "universalLabel": "POSITIVE"
          }
        ]
      }
    }
  ],
  "cursor": "<string>"
}
"<string>"
"<string>"
"<string>"
"<string>"
Returns a paginated list of recordings visible to the authenticated user. Admins and coaches see recordings across their organization and teams; regular users see their own recordings.

Pagination

Use limit (default 100, max 100) and the cursor from the previous response to walk pages. The cursor is opaque — pass it back unchanged.

Common filters

ParameterUse
organizationIdScope to one organization
teamIdOne or more team IDs (comma-separated)
conversationTypeFilter by conversation type name(s), comma-separated
resultclosed, not closed, or in progress
dateCreated:gt / dateCreated:ltISO 8601 UTC window on recording creation
crmLinkStatusunlinked — recordings with no confirmed CRM customer link
orderBy / orderDirectionSort by any filterable field (asc or desc)

Optional enrichments

FlagAdds
showCrmCustomer=truecrmCustomer block per recording
showFollowups=truefollowups array per recording
showEvaluationScore=trueEvaluation score per recording
For full recording payloads (summary, entity extractions, signed video URL), use Get recording details. For org-wide bulk sync with CRM link IDs, see the org-scoped Get recordings endpoint. To list followups across recordings, see Get followups.

Authorizations

x-siro-auth-token
string
header
default:<oauth-access-token>
required

OAuth access token for user-scoped requests (Authorization Code or machine-to-machine). Send header x-siro-auth-token: <oauth-access-token>. Not an organization API key.

Query Parameters

limit
string

Number of results to return per page (default is 100, max is 100)

conversationType
string

Filter by conversation type name(s), e.g. "My Best Convo". Multiple types can be specified as comma-separated values

result

Result of the recording (e.g., closed, not closed).

organizationId
string

Filter by organization ID

teamId
string

Filter by team ID(s). Multiple teams can be specified as comma-separated values

dateCreated:gt
string

Return results created after the given date. Format: ISO 8601 timestamp (YYYY-MM-DDTHH:mm:ss.sssZ)

dateCreated:lt
string

Return results created before the given date. Format: ISO 8601 timestamp (YYYY-MM-DDTHH:mm:ss.sssZ)

orderBy
string

Field to order results by. It is possible to order by any filterable field.

orderDirection
enum<string>

Order direction: "asc" or "desc"

Available options:
asc,
desc
cursor
string

Cursor for pagination

Filter by CRM link status: "unlinked" finds recordings with no definitively linked opportunity or engagement that is linked to a customer (account/contact/lead)

Available options:
unlinked
showCrmCustomer
enum<string>

Whether to include CRM customer data for each recording

Available options:
true,
false
showEvaluationScore
enum<string>

Whether to include evaluationScore for each recording (true/false)

Available options:
true,
false
showFollowups
enum<string>

Whether to include followups for each recording

Available options:
true,
false

Response

Get recordings

data
object[]
required
cursor
string | null
required

Opaque cursor for pagination