Add a column to a list and dispatch background enrichment for every existing row.
enrichmentType + subject:
work_email / mobile_phone (people only) -> list-contact-enrich (FullEnrich)hiring_status (companies only) -> list-hiring-enrichsite_crawl, website_overview, news_articles, linkedin_posts -> list-generic-enrich via the adapter frameworkai (runs sheet-ai-enrich in batches of 100)402 if the caller can’t afford enrichment across every row. Credits are only deducted after the task dispatch succeeds, and contact enrichment defers its deduction to the task itself (charges only rows actually sent to FullEnrich).
When isPreview: true, only the first 3 rows are enriched so the user can preview results before committing. Promote the preview column later with PATCH /api/lists/{id}/columns/{colId} using isPreview: false.
hiring_status column per list — the server returns 400 if another exists.prompt. If no schema is supplied, the server infers one from the prompt.list_cells / list_company_cells rows are created with status: pending for every existing row (or the first 3 when isPreview).trigger_run_ids is persisted on the column row so DELETE /api/lists/{id}/columns/{colId} can cancel in-flight runs.GET /api/lists/{id}/columns/{colId}/preview-cells at ~2 s cadence until every cell reports terminal status.work_email/mobile_phone) tracks credits inside the task, per-row, only for rows actually queried against FullEnrich.Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
List UUID. Must be owned by the caller.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Column creation payload. Rows are enriched in the background by the appropriate Trigger.dev task; an asynchronous enrichment run is dispatched on creation.
Display name. Required, must be non-empty after trim.
1True when the column is AI-populated (has a prompt) vs a static column with no automation.
AI instruction text. Required for dynamic AI columns; ignored otherwise.
Column subject. Defaults to person; invalid values are coerced to person.
person, company For dynamic columns only. web triggers live web search; profile uses internal profile data only. Defaults to web when a prompt is provided.
web, profile Explicit enrichment type. When omitted, dynamic columns default to ai. hiring_status is capped at one per list (400 if another exists).
work_email, mobile_phone, site_crawl, website_overview, hiring_status, news_articles, linkedin_posts Structured schema for cell values — drives UI formatting, enum validation, and list-item type coercion.
Enrichment config. Currently supports { timePeriod: "1m"|"3m"|"6m"|"1y"|"all" } for news columns.
If true, creates a preview column limited to 3 rows. Promote later with PATCH isPreview: false.
Column created. Enrichment task(s) have been dispatched asynchronously — poll GET /api/lists/{id}/columns/{colId}/preview-cells (or read list_cells) for results.
A column on a list. Stored as list_columns; its values live in list_cells (people) or list_company_cells (companies).