Skip to navigation

Update a call

Update mutable fields on an existing call observation: label, tag, customer_number, call_end_reason, and metadata.

Everything else (call_identifier, agent_id, client_id, recording_url, transcript, …) is fixed at ingestion. Those fields are silently ignored if you send them — the request still succeeds.

Authentication

AuthorizationBearer

API key from RubricHQ Settings → API Keys. Send it as: Authorization: Bearer <YOUR_API_KEY>.

Path parameters

idstringRequired

Your call_identifier, or RubricHQ’s internal integer call ID.

Query parameters

client_idintegerOptional

Optional. RubricHQ client (workspace) ID. Defaults to the workspace your API key belongs to; pass it only to target another workspace you can access.

agent_idintegerOptional

Optional. The call is already identified by its ID within your workspace; pass agent_id only to require that it belongs to that agent (otherwise 404).

Request

This endpoint expects an object.
labelstringOptional

Free-text label for this call (visible in the dashboard).

tagstringOptional

Short tag for grouping/filtering calls.

customer_numberstringOptional
Customer phone number.
call_end_reasonstringOptional

How the call ended (e.g. Completed, Dropped, Transferred).

metadatamap from strings to anyOptional

Merged into the existing metadata (not a full replace). Keys you send are added or overwritten; keys you omit are preserved. Send a key with a null value to delete it.

Response

Updated call
idintegerOptional
Internal RubricHQ call ID.
call_identifierstringOptional
Your provided call identifier.
observation_typeenumOptional

voice when the call has a recording; text for a transcript-only call.

Allowed values:
analysis_statusenumOptional
  • pending — analysis queued
  • processing — analysis in progress
  • computed — the audio pass is done; transcript and custom metrics may still be scoring. Not final — keep polling.
  • completed — every metric has a result (final)
  • failed — analysis encountered an error (final)
  • skipped — not analyzed, e.g. the workspace is out of credits (final)

Stop polling on completed, failed, or skipped.

transcription_statusenumOptional
  • pending — the recording has not been transcribed yet
  • processing — transcription in progress
  • completed — a transcript is available (generated from the recording, or the one you provided on a transcript-only call)
  • failed — transcription failed
Allowed values:
call_directionenumOptional
Allowed values:
call_end_reasonstring or nullOptional
customer_numberstring or nullOptional
duration_secondsinteger or nullOptional
labelstring or nullOptional
tagstring or nullOptional
call_timestampdatetime or nullOptional
recording_urlstring or nullOptional

Presigned URL to the stored recording (valid for a limited time — fetch the call again for a fresh one). null until RubricHQ has finished storing the recording, and always null for transcript-only calls.

metric_idslist of integersOptional
The metric selection this call is scored on, after dropping any IDs that could not be scored. Empty means "every metric enabled for the agent".
ignored_metric_idslist of integersOptional

Only on the POST /calls response, and only when it is not empty: the IDs from your metric_ids that could not be scored on this call and were skipped.

metadatamap from strings to anyOptional
created_atdatetimeOptional
When the call was added to RubricHQ.
agentobjectOptional

Errors

404
Not Found Error