Update an agent
Send only the fields you want to change. web_channel is merged key by
key into the stored web channel (see WebChannel); send
"web_channel": null to remove the web channel altogether.
Authentication
API key from RubricHQ Settings → API Keys. Send it as: Authorization: Bearer <YOUR_API_KEY>.
Path parameters
Query parameters
Optional. RubricHQ client (workspace) ID. Defaults to the workspace your API key belongs to; pass it only to target another workspace you can access.
Request
Human-readable agent name (shown in dashboard).
Required. E.164 phone number the agent answers on / is called on. Its country code also selects the telephony carrier RubricHQ dials over (returned as telephony_carrier).
Optional. Client (workspace) to create the agent under. Defaults to the workspace your API key belongs to.
Where the agent under test comes from. Replaces the old
integration_type / agent_kind fields.
internal— an agent you configure here in RubricHQ (you provide the prompt, language, opening message, and a phone number and/or web transport). This is the default.external_vapi— an existing agent hosted on Vapi. Provide itsassistant_id;instructions/language_idare pulled from Vapi.external_retell— an existing agent hosted on Retell. Provide itsassistant_id.
The external provider’s assistant/agent ID. Required when
agent_source is external_vapi or external_retell; ignored for
internal agents.
Call direction(s) this agent supports.
Language pack ID for the agent (required for internal agents). Call
GET /languages to list the available languages and their IDs. For
English (US) the language_id is 15.
System prompt / behavioral instructions for the agent LLM. Required for internal agents.
How the conversation starts (this is the “Opening Prompt” in the
dashboard). Renamed from first_message.
How RubricHQ reaches an internal agent over the web — the same
settings as the “Web” channel card in the dashboard. Omit it for
phone-only agents. On update it is merged into the stored channel;
send null to remove the web channel.
Hard cap on call length, in seconds. Runtime force-hangs up after this.
Metric IDs to skip when scoring this agent’s calls and runs — one
unified list covering both built-in and custom metrics. Call
GET /metrics to look up metric IDs.
Shorthand for web_channel.transport, kept for backwards
compatibility. Prefer web_channel, which also carries the
settings each transport needs — websocket in particular is
rejected without a web_channel.websocket_url.
Response
Where the agent comes from (see CreateAgentRequest.agent_source).
The agent’s opening-message configuration (see CreateAgentRequest.opening_message).
Web-calling transport, or null for phone-only agents. Same value as web_channel.transport.
The agent’s web channel as stored, or null for a phone-only agent.
Only the fields for the active transport are present. Credentials
are never echoed: each key/secret is reported as a <name>_set boolean.
Read-only. The carrier RubricHQ dials this agent over, derived from the country code of phone_number.
Metric IDs currently disabled for this agent (built-in + custom, unified).