What are extraction categories?
Extractions is the Bolna feature that automatically captures structured data from call transcripts after every call. A category is a named set of dispositions evaluated together in a single LLM pass — one category means one LLM call per conversation. Each disposition is a single question inside its category.model used for its pass: every disposition in the category is evaluated by the category’s model in one call. A category belongs to the agent it was created for, and that agent runs every disposition the category holds.
Endpoints
category_id (preferred) or a category name on create or update — at most one of the two per payload. A category name that does not match one of the agent’s categories creates a fresh category.
Category object
Supported models
A category’smodel must be one of:
Any other value is rejected with a
422 error. GET /dispositions/models returns the same list. A category created implicitly by a category name on a disposition takes that disposition’s model, falling back to gpt-4.1-mini.
Azure OpenAI models
Anazure/ model runs on Bolna’s Azure OpenAI resource, like every other model on this list. To run a category on your own Azure resource instead, connect your Azure account and set the category’s managed_by to "user".
When a category runs on your Azure resource:
- Deployment names: your resource needs a deployment named after the model without the
azure/prefix, for examplegpt-4.1-miniforazure/gpt-4.1-mini. Bolna does not use the deployment name saved on the connection. - API version: extractions use the Azure OpenAI Responses API, which needs API version
2025-03-01-previewor later. If the version saved on your connection is older, extractions use2025-04-01-preview. Your agents’ calls keep the saved version. - Region: the Responses API and each model are available only in some Azure regions. Check Azure OpenAI model availability for your resource’s region.
Lifecycle rules
- Move a disposition between categories: update the disposition with the new
category_id(see Update Disposition). There is no separate move endpoint. - Renaming a category rewrites the
categorylabel on all of its dispositions in the same transaction, so extraction results stay grouped consistently. - Deleting a category deletes its dispositions. The category owns them. Historical call execution results are not affected.
- Empty categories are removed automatically: when a move or delete removes a category’s last disposition, the category itself is deleted.
- Category names are per agent. Two agents can each have a category named
Sales; these are independent categories. - An update must change something.
PATCHacceptsname,model, or both, but an empty body is rejected with a422error.
For a full walkthrough of the Extractions feature, answer types, output format, and best practices, see the Using Extractions guide.

