Skip to main content

2026-06-28

Added: output source citations

Agent run outputs now include a sources[] array when a render uses licensed or external media. Getty b-roll citations include the usage window, query, provider asset ID when resolved, internal render asset ID, placement/layout, and rights metadata. Affected surfaces:
SurfaceField
GET /agent_run/{run_id}outputs[].sources
GET /agent/{agent_id}/runsruns[].outputs[].sources
GET /agent_runsruns[].outputs[].sources
GET /trigger/{trigger_id}/runsruns[].outputs[].sources
RUN_PROGRESS webhookupdated_nodes[].outputs[].sources
RUN_FINISHED webhookoutputs[].sources

2026-05-21

Added: avatar profile API and generation tile docs

The Avatar Profiles API now exposes the public avatar workflow:
EndpointDescription
POST /avatar-profiles/createCreate an avatar from a source video, or an image plus voice reference. Processing starts automatically.
GET /avatar-profiles/{id}Get one avatar, including signed video_preview_url, status, and status_message.
GET /avatar-profilesList avatars available to your organization.
Avatar profile responses use a flat object shape:
{
  "id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
  "video_preview_url": "https://...",
  "name": "Founder Avatar",
  "status": "processing",
  "status_message": null
}
Avatars can be used in AI Avatar tiles immediately after creation. If processing is still running, the agent run waits for the avatar to become ready; failed avatars return an error through status_message. New generation tile documentation is also available for: The Run Agent docs now include node IDs and setup guidance for AI Avatar, Video Generation, Audio Generation, and Image Generation workflows.

2026-04-04

Added: errors field on agent runs and webhooks

Agent run responses and webhook payloads now include an errors field that surfaces error messages from failed tasks, grouped by the template node that produced them. Run-level (GET /agent_run/{run_id} and RUN_FINISHED webhook):
"errors": [
  {
    "original_node_id": "2ba7b810-9dad-11d1-80b4-00c04fd430c8",
    "messages": ["FFmpeg render failed: output format not supported"]
  },
  {
    "original_node_id": "3ca7b810-9dad-11d1-80b4-00c04fd430c8",
    "messages": [
      "Audio transcription timed out after 300s",
      "Retry failed: service unavailable"
    ]
  }
]
Each entry links errors to the original_node_id (template node) so you can map failures back to specific nodes in your agent. Node-level (GET /agent_run/{run_id}/nodes and RUN_PROGRESS webhook updated_nodes[]):
"errors": ["Audio transcription timed out after 300s"]
Per-node errors is a flat string array since the node context is already provided by the parent object. Affected endpoints:
SurfaceFieldType
GET /agent_run/{run_id}errorsarray of { original_node_id, messages[] }
GET /agent_run/{run_id}/nodesnodes[].errorsstring[]
RUN_FINISHED webhookerrorsarray of { original_node_id, messages[] }
RUN_PROGRESS webhookupdated_nodes[].errorsstring[]
Previously, error details from processing tasks were only available internally. The status_message field on runs and nodes continues to work as before and is unaffected by this change.