Skip to main content
POST
Create a saved agent

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

A new saved agent's full configuration.

name
string
required
Required string length: 1 - 255
allow_fetch
boolean
default:true
description
string | null
Maximum string length: 2000
effort
enum<string>
default:standard

How hard the Agent works on each row.

Named levels rather than raw step counts: the level is the user-facing contract, and what each level buys (step and page budgets) is a product decision the loop maps internally — re-tuning budgets never invalidates stored columns.

Available options:
low,
standard,
high
icon
string | null
Required string length: 1 - 16
inputs
AgentInputSchema · object[]

The declared inputs, in the author's order.

Maximum array length: 20
is_template
boolean
default:false

Save as a reusable starting point instead of a working agent. Templates are offered in the template gallery and never run.

model_key
string | null
Required string length: 1 - 64
output_schema
EnrichmentOutputFields · object

The fields-mode output shape: repeatable named typed fields.

The default is Clay's: one text field named response.

prompt
AgentPromptTemplate · object

A saved agent's prompt: literal text with references between the runs.

The same convention every other stored prompt in the product uses (EnrichmentPromptTemplate for columns, template segments for sequences): identity-keyed segments, so renaming what a reference points at never rewrites the prompt. Structurally parallel to the enrichment template rather than importing it — an agent prompt references INPUTS, an enrichment prompt references COLUMNS, and the import hierarchy keeps the two domains apart.

sample_rows
Sample Rows · object[]

Example input rows to remember for the Train screen — the test_cases the build flow just generated. Keyed by input name. Suggestion memory, not configuration: storing them never bumps the agent's version.

Maximum array length: 25
use_business_context
boolean
default:false
use_row_context
boolean
default:false

Response

Successful Response

One org-level saved agent as the editor, picker and library render it.

allow_fetch
boolean
required
created_at
string<date-time>
required
current_version
integer
required
description
string | null
required
effort
enum<string>
required

How hard the Agent works on each row.

Named levels rather than raw step counts: the level is the user-facing contract, and what each level buys (step and page budgets) is a product decision the loop maps internally — re-tuning budgets never invalidates stored columns.

Available options:
low,
standard,
high
favorite
boolean
required
icon
string | null
required
id
string<uuid>
required
inputs
AgentInputSchema · object[]
required
model_key
string | null
required
name
string
required
output_schema
EnrichmentOutputFields · object
required

The fields-mode output shape: repeatable named typed fields.

The default is Clay's: one text field named response.

owner_user_id
string | null
required
prompt
AgentPromptTemplate · object
required

A saved agent's prompt: literal text with references between the runs.

The same convention every other stored prompt in the product uses (EnrichmentPromptTemplate for columns, template segments for sequences): identity-keyed segments, so renaming what a reference points at never rewrites the prompt. Structurally parallel to the enrichment template rather than importing it — an agent prompt references INPUTS, an enrichment prompt references COLUMNS, and the import hierarchy keeps the two domains apart.

updated_at
string<date-time>
required
use_business_context
boolean
required
use_row_context
boolean
required
is_template
boolean
default:false
owner_display_name
string | null