Skip to Content
API ReferenceRecordingsUpdate Recording

Update Recording

Update metadata for an existing recording.

PATCHhttps://api.identitycall.ai/api/v1/public/recordings/:id

Update the display name of a recording.

Requires write permission

Path Parameters

Parameters

NameTypeRequiredDefaultDescription
idintegerYes-Recording ID

Request Body

Body Parameters (application/json)

NameTypeRequiredDefaultDescription
display_namestringNo-New display name
tagsstring[]No-Replaces the recording's entire tag set. Names are matched case-insensitively against the recording's project and created there if missing.
operator_idinteger | nullNo-Sets the operator credited with the call. Send null to clear it; omit the field to leave it unchanged.

Changing tags

tags replaces the whole set rather than adding to it, so send the tags you want the recording to end up with — not just the new ones:

# recording ends up with exactly vip + escalated, whatever it had before curl -X PATCH "https://api.identitycall.ai/api/v1/public/recordings/$PUBLIC_ID" \ -H "Authorization: Bearer $IDENTITYCALL_API_KEY" \ -H "Content-Type: application/json" \ -d '{"tags": ["vip", "escalated"]}'
You sendResult
"tags": ["a", "b"]Recording carries exactly a and b
"tags": []Every tag is removed from the recording
field omittedTags are left exactly as they were

To add one tag without knowing the current set, read it from Get Recording first and send the union. Removing a tag from one recording this way does not delete it from the project — for that, see Delete Tag.

Changing the operator

Use this to correct attribution after the fact, or to set it on recordings you uploaded before you had the agent roster mapped:

curl -X PATCH "https://api.identitycall.ai/api/v1/public/recordings/{public_id}" \ -H "Authorization: Bearer $IDENTITYCALL_API_KEY" \ -H "Content-Type: application/json" \ -d '{"operator_id": 42}'
You sendResult
"operator_id": 42Operator 42 is credited, with source api
"operator_id": nullThe assignment is cleared
field omittedThe existing assignment is left alone

An operator you set this way is not overwritten by voice identification or routing. See Attributing the call to an operator for how to look up ids.

Request

curl -X PATCH "https://api.identitycall.ai/api/v1/public/recordings/123" \ -H "Authorization: Bearer $IDENTITYCALL_API_KEY" \ -H "Content-Type: application/json" \ -d '{"display_name": "Q1 Sales Call - Updated"}'

Response

Response200 OK
{
"data": {
  "public_id": "018f3a00-0000-7000-8000-0000000000a1",
  "name": "Q1 Sales Call - Updated",
  "status": "completed",
  "language": "en",
  "duration_ms": 185000,
  "created_at": "2025-01-15T10:30:00Z",
  "updated_at": "2025-01-15T15:45:00Z",
  "dialogues_count": 24,
  "goals_evaluated": true,
  "keywords_detected": 8,
  "pauses_detected": 3,
  "audio_attached": true
}
}

Errors

StatusErrorDescription
404“Resource not found”Recording doesn’t exist
422Validation errorsInvalid field values

Try It

Try It