> Source: https://builder-docs.ema.ai/agent-reference/core/extract-entities
> Title: Extract Entities Agent

# Extract Entities Agent

The Extract Entities agent performs schema-driven entity extraction from documents and text. You define an extraction schema -- a list of columns with names, types, and descriptions -- and the agent uses an LLM to fill each column from the input, returning structured values with source citations.

## Use Cases

-   You need to pull structured data from unstructured documents (invoices, contracts, resumes, forms).
-   A downstream agent or integration requires specific fields extracted from a document.
-   You want to populate a database, CRM, or ticketing system with data extracted from incoming documents.
-   You need to combine a document with additional context (e.g., extracted entities from an upstream agent) before extraction.

## Inputs

Input

Type

Required

Description

`documents`

List of Documents

No

The documents to extract from. Provide either `documents` or `text_input`.

`text_input`

Text With Sources

No

Plain text to extract from. Provide either `documents` or `text_input`.

`named_inputs`

Any (multiple)

No

Additional context from other agents. Shown in the builder as **Additional Context**. Supports Text with Sources, Text, Search Results, JSON, Extraction output, Documents, and Enum.

## Outputs

Output

Type

Description

`extraction_columns`

List of Extraction Columns

The populated extraction columns -- each column from your schema returned with its extracted value and source citation.

## Configurations

Parameter

Description

Default

**Extraction Columns**

The schema defining what to extract. Each column has a name, description, and type. See _Configuring Extraction Columns_ below.

Required

**Instructions**

Additional extraction guidance for the LLM (e.g., "Dates should be in ISO format" or "Treat all prices as USD").

None

### Configuring Extraction Columns

Each extraction column supports:

-   **Name** -- a unique field name used as the output key.
-   **Description** -- tells the LLM how to find this value. Be specific: "The total amount due on the invoice, including tax" is clearer than "Amount".
-   **Type** -- the data type expected for the extracted value. Supported types:
    -   **Text** -- a string value.
    -   **Number** -- an integer or decimal.
    -   **Boolean** -- true or false.
    -   **Group** -- a nested object with its own sub-columns. Useful for extracting structured sub-records (e.g., a list of line items on an invoice).
-   **Enum mode** -- optional toggle that restricts the extracted value to a fixed set of possible values you define.

## Advanced Configurations

Parameter

Description

**Fusion Model Config**

Selects the LLM and reasoning settings used for extraction.

**Data Protection Config**

Privacy controls that filter or mask sensitive content before sending to the LLM.

**Send entire documents as search result**

When enabled, sends the full document to the LLM rather than snippets matched to each column. Useful for short documents or when full context matters; increases token usage.

**Disable Sources**

When enabled, clears source citations from the output. The extraction still uses the source documents, but no citation links are returned.

## How to Use This Agent

Extract key fields from an invoice and create a record:

```
document_trigger -> extract_entities -> intelligent_actions("Create record in accounting system") -> workflow_output
```

## Related Agents

-   [JSON Extractor](/legacy-docs/agent-reference/core/json-extractor) -- for extracting values from already-structured JSON, not from unstructured text.
-   [Custom Agent](/legacy-docs/agent-reference/core/custom-agent) -- for ad-hoc extraction when you do not need a formal schema.
-   [Tag Extractor](/legacy-docs/agent-reference/core/tag-extractor) -- for extracting tags/labels rather than structured entities.
