Create an extractor
create_extractorCreate a saved, reusable extractor (extract group). Three starting points, mutually exclusive: config (inline schema — call get_documentation with https://docs.extend.ai/extraction/schema.md BEFORE writing one by hand), cloneExtractorId (copy another extractor's draft config), or generate (Extend writes the schema from 1-5 sample documents plus optional instructions; no docs needed); name alone creates an empty draft. The draft is the only mutable surface — edit it with update_extractor, freeze it with publish_extractor_version, run it with extract_data. Follow any llmContext guidance included in results.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name for the extractor. | |
| config | No | Inline extraction config: { schema?, extractionRules?, baseProcessor?, advancedOptions?, parseConfig? }. Writing schema by hand? ALWAYS call get_documentation with https://docs.extend.ai/extraction/schema.md FIRST and follow the returned dialect — the rules below are only a summary (field-naming best practices: https://docs.extend.ai/extraction/best-practices/field-names-and-prompt-crafting.md). schema is a JSON Schema: root "type": "object"; primitives nullable via a type array (["string","null"]); objects/arrays keep a plain "type" (never a nullable array) and objects always need "properties"; max depth 5; enums include null; no anyOf/oneOf/allOf/patterns. Date/currency/signature fields add "extend:type" alongside a normal type. A currency field is exactly: { "type": "object", "extend:type": "currency", "properties": { "amount": { "type": ["number", "null"] }, "iso_4217_currency_code": { "type": ["string", "null"] } } } — never a bare number. Omit schema for schema-less mode (no docs needed): extractionRules then doubles as schema-generation instructions. | |
| generate | No | Auto-generate the schema from sample documents. | |
| environment | Yes | "TEST" = the Test (development) environment, "PRODUCTION" = live. Must match a granted target from get_me (an API key pins one environment). | |
| workspaceId | Yes | Target workspace (ws_...). Must be a granted workspace — get_me lists the accepted values. | |
| cloneExtractorId | No | Existing extractor (ex_...) whose draft config to copy. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| name | Yes | ||
| createdAt | No | ||
| updatedAt | No | ||
| draftVersion | No |