JavaScript
import Surge from '@surgeapi/node';
const client = new Surge({
apiKey: process.env['SURGE_API_KEY'], // This is the default and can be omitted
});
// Automatically fetches more pages as needed.
for await (const recordingListResponse of client.recordings.list(
'acct_01j9a43avnfqzbjfch6pygv1td',
)) {
console.log(recordingListResponse.id);
}import os
from surge import Surge
client = Surge(
api_key=os.environ.get("SURGE_API_KEY"), # This is the default and can be omitted
)
page = client.recordings.list(
account_id="acct_01j9a43avnfqzbjfch6pygv1td",
)
page = page.data[0]
print(page.id)package main
import (
"context"
"fmt"
"github.com/stainless-sdks/surge-go"
"github.com/stainless-sdks/surge-go/option"
)
func main() {
client := surge.NewClient(
option.WithAPIKey("My API Key"),
)
page, err := client.Recordings.List(
context.TODO(),
"acct_01j9a43avnfqzbjfch6pygv1td",
surge.RecordingListParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", page)
}
require "surge_api"
surge = SurgeAPI::Client.new(api_key: "My API Key")
page = surge.recordings.list("acct_01j9a43avnfqzbjfch6pygv1td")
puts(page)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Surge\Client;
use Surge\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('SURGE_API_KEY') ?: 'My API Key');
try {
$page = $client->recordings->list(
'acct_01j9a43avnfqzbjfch6pygv1td', after: 'after', before: 'before'
);
var_dump($page);
} catch (APIException $e) {
echo $e->getMessage();
}curl --request GET \
--url https://api.surge.app/accounts/{account_id}/recordings \
--header 'Authorization: Bearer <token>'HttpResponse<String> response = Unirest.get("https://api.surge.app/accounts/{account_id}/recordings")
.header("Authorization", "Bearer <token>")
.asString();{
"data": [
{
"call": {
"contact": {
"email": "dom@toretto.family",
"first_name": "Dominic",
"id": "ctc_01ja88cboqffhswjx8zbak3ykk",
"last_name": "Toretto",
"metadata": {
"car": "1970 Dodge Charger R/T"
},
"phone_number": "+18015551234"
},
"duration": 184,
"id": "call_01jjnn7s0zfx5tdcsxjfy93et2",
"initiated_at": "2025-03-31T21:01:37Z",
"status": "completed"
},
"duration": 124,
"id": "rec_01kfyc9dgdec1avkgs7tng8htg"
}
],
"pagination": {
"next_cursor": "g3QAAAABZAACaWRtAAAAGnBuXzAxamtzY2s5eDdkeW0wZnBxZjdjYmRyeQ==",
"previous_cursor": null
}
}{
"error": {
"message": "The requested resource could not be found.",
"type": "not_found"
}
}Recordings
List recordings
List call recordings for an account.
GET
/
accounts
/
{account_id}
/
recordings
JavaScript
import Surge from '@surgeapi/node';
const client = new Surge({
apiKey: process.env['SURGE_API_KEY'], // This is the default and can be omitted
});
// Automatically fetches more pages as needed.
for await (const recordingListResponse of client.recordings.list(
'acct_01j9a43avnfqzbjfch6pygv1td',
)) {
console.log(recordingListResponse.id);
}import os
from surge import Surge
client = Surge(
api_key=os.environ.get("SURGE_API_KEY"), # This is the default and can be omitted
)
page = client.recordings.list(
account_id="acct_01j9a43avnfqzbjfch6pygv1td",
)
page = page.data[0]
print(page.id)package main
import (
"context"
"fmt"
"github.com/stainless-sdks/surge-go"
"github.com/stainless-sdks/surge-go/option"
)
func main() {
client := surge.NewClient(
option.WithAPIKey("My API Key"),
)
page, err := client.Recordings.List(
context.TODO(),
"acct_01j9a43avnfqzbjfch6pygv1td",
surge.RecordingListParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", page)
}
require "surge_api"
surge = SurgeAPI::Client.new(api_key: "My API Key")
page = surge.recordings.list("acct_01j9a43avnfqzbjfch6pygv1td")
puts(page)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Surge\Client;
use Surge\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('SURGE_API_KEY') ?: 'My API Key');
try {
$page = $client->recordings->list(
'acct_01j9a43avnfqzbjfch6pygv1td', after: 'after', before: 'before'
);
var_dump($page);
} catch (APIException $e) {
echo $e->getMessage();
}curl --request GET \
--url https://api.surge.app/accounts/{account_id}/recordings \
--header 'Authorization: Bearer <token>'HttpResponse<String> response = Unirest.get("https://api.surge.app/accounts/{account_id}/recordings")
.header("Authorization", "Bearer <token>")
.asString();{
"data": [
{
"call": {
"contact": {
"email": "dom@toretto.family",
"first_name": "Dominic",
"id": "ctc_01ja88cboqffhswjx8zbak3ykk",
"last_name": "Toretto",
"metadata": {
"car": "1970 Dodge Charger R/T"
},
"phone_number": "+18015551234"
},
"duration": 184,
"id": "call_01jjnn7s0zfx5tdcsxjfy93et2",
"initiated_at": "2025-03-31T21:01:37Z",
"status": "completed"
},
"duration": 124,
"id": "rec_01kfyc9dgdec1avkgs7tng8htg"
}
],
"pagination": {
"next_cursor": "g3QAAAABZAACaWRtAAAAGnBuXzAxamtzY2s5eDdkeW0wZnBxZjdjYmRyeQ==",
"previous_cursor": null
}
}{
"error": {
"message": "The requested resource could not be found.",
"type": "not_found"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The account ID to list recordings for.
Example:
"acct_01j9a43avnfqzbjfch6pygv1td"
Query Parameters
Cursor for forward pagination. Use the next_cursor from a previous response.
Cursor for backward pagination. Use the previous_cursor from a previous response.
Response
List of recordings
A paginated list of recordings
⌘I