lists scope. Smart columns bill per row, so read Bounding the spend before running one over a large list.
Two engines
The engine decides how the answer is found, and how much it costs.standard
Answers from the data already on the row and the model’s own knowledge. Fast and cheap.
deep_research
Researches each row against live sources before answering. Slower, costs more, and can be restricted to chosen providers.
Create one
POST /business/lists/{listId}/smart-columns needs a name, a prompt and a runOn. It answers 202 — the column exists immediately, the answers arrive over the following minutes.
jobId. It is how you follow the run.
Writing a prompt that answers well
The prompt is free text, and the shape of the answer follows the shape of the question. Ask for what you want back:- Say what a good answer looks like. “Answer yes or no and name the role” produces a column you can filter on. “Tell me about their hiring” produces a paragraph.
- Name the subject. The row is a contact or a company; say which one you mean.
- Keep it to one question. Two questions in one prompt gives you two half-answers in one cell.
Choosing what it runs on
runOn decides the initial scope, and it is the main lever on cost:
Start with
first_100, read the answers, fix the prompt, then re-run over everything.
Follow the run
GET /business/lists/{listId}/smart-columns/{jobId}/status reports progress and, importantly, what has been spent so far.
failedRows counts them. The job still completes; those cells stay empty.
Read the answers
The values land on the list rows themselves.GET /business/lists/{listId}/rows returns them alongside every other column, so filtering, sorting and exporting all work on smart column output.
For a deep_research column you can also ask how an individual answer was reached:
Change the question
PATCH /business/lists/{listId}/smart-columns/{columnId} updates the name, prompt, engine or provider restriction.
Re-run it
POST /business/lists/{listId}/smart-columns/{columnId}/rerun fills answers in again. mode decides which rows:
Bounding the spend
Smart columns bill per row answered, anddeep_research costs more than standard. Three habits keep it predictable:
1
Prototype on first_100
Read the answers before spending on the whole list.
2
Top up with new_only
After an import, re-run only the new rows instead of the whole column.
3
Watch creditsUsed on the job
The status endpoint reports spend while the run is still going, so a runaway prompt is visible before it finishes.
GET /business/credits shows the balance the run draws from. See Credits.