Enrich

update enrichment

Changed on

Edit an enrichment in place: name, prompt, input_columns (the headers its rows must carry; [] = any), budget and budget_locked, only_tools / additional_tools, and output columns by name. Inside output, a name not yet on the enrichment adds a column (typed from the prompts when it has no output_schema and its value is one plain value); { "prompt", "output_schema" } change one; { "tool": "linkedin_person_profile" } pins a tool to it — one call of it per row is the cell, the agent choosing the call's arguments (the ColumnToolPin; "tool": null unpins); { "rename": "New name" } renames one (cells keep their values); { "delete": true } removes one. Every call is one write: version goes up by one and every added or changed column takes it, so cells filled under the old prompt, schema, or pin read stale on datasets bound to this enrichment and are re-run by their next fill. A rename changes nothing on the cells.

The budget follows the columns: adding a column raises budget_credits_per_row by 1.5, removing one lowers it by 1.5 (within 0.1–100), unless budget_locked is true or the same call sets budget. Set budget_locked: true to keep the budget as set from then on.

Refused with 409 enrichment_in_use while a fill runs on it (the fill reads the recipe as it goes): wait for the run or stop it. To edit the columns of one dataset without touching other datasets on the same enrichment, use PATCH /datasets/{id}, which copies a shared enrichment first.

patch/enrichments/{id}

Request

Path parameters

idstring required

The enrichment id (enr_...)

Request body

namestring

Display name. An empty string clears it.

promptstring

The task prompt the row agent reads for every row.

input_columnsstring[]

The headers rows must carry when this enrichment runs (replaces the list; [] = any headers). Names only; no row data.

budgetnumber

Credits the row agent may spend per row. Sent with column changes, it wins over the per-column adjustment.

budget_lockedboolean

true keeps the budget as set when output columns are added or removed; false lets it move by 1.5 per column again.

only_toolsstring[]

Exactly these tools (names from GET /tools). Replaces the default set.

additional_toolsstring[]

The default tools plus these (e.g. linkedin_person_contact; custom_apollo_people_search once enabled on the account and your Apollo key is linked). See GET /v1/tools.

outputOutputColumnOperations

Output column edits keyed by column name. A name not on the enrichment adds a column; prompt / output_schema / tool change one (its filled cells read stale); rename renames it (cells kept); delete: true removes it.

Response

The enrichment after the edit (its version went up)

idstring

enr_...

namestring nullable
promptstring

The task prompt the row agent reads for every row

input_columnsstring[]

The headers rows must carry (empty = any)

toolsstring[]

The tools the row agent may call (names from GET /tools)

budget_credits_per_rownumber

The most the row agent may spend on one row. Moves by 1.5 per output column added or removed unless budget_locked

budget_lockedboolean

true when the budget stays as set through column changes

versioninteger

Goes up by one on every column change; a cell filled under an older version reads stale

created_atstring date-time
updated_atstring date-time

Example response

{
  "id": "enr_018f5b60-1234-7abc-89ab-0123456789ab",
  "name": "Company basics",
  "prompt": "Research each company from its name and website.",
  "input_columns": [
    "Company",
    "Website"
  ],
  "output": [
    {
      "name": "CEO"
    },
    {
      "name": "Employee count",
      "prompt": "Current headcount as an integer",
      "output_schema": {
        "type": "integer",
        "minimum": 0
      }
    },
    {
      "name": "Homepage text",
      "prompt": "The company's homepage, from the Website column",
      "tool": "scrape"
    }
  ],
  "tools": [
    "web_search",
    "scrape",
    "pdf",
    "http_request",
    "code"
  ],
  "budget_credits_per_row": 4.5,
  "budget_locked": false,
  "version": 1,
  "created_at": "2026-10-01T12:00:00Z",
  "updated_at": "2026-10-01T12:00:00Z"
}

Changes

    • warning

      removed the optional property from the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status