Enrich Data
Enrich items using web research, with optional taxonomy prediction.
Accepts both application/json (plain JSON body) and multipart/form-data
(with request_json field, optional items_file, and optional
knowledge_base_files).
Two modes of operation:
- Direct mode: Pass items and output_schema directly
- Full-run mode: Pass
source_activity_idfrom a previous run to process all stored items
Example: Direct enrichment
{
"prompt": "Find product specifications",
"items": [{"name": "iPhone 15 Pro"}],
"output_schema": [
{"name": "price", "type": "string", "description": "Current retail price"},
{"name": "weight", "type": "string", "description": "Product weight"}
]
}
Example: Dry run (process first 10 items)
{
"prompt": "Find product specifications",
"items": [... all 1000 items ...],
"output_schema": [...],
"max_rows": 10
}
Example: Full run from previous activity
{
"prompt": "Find product specifications",
"source_activity_id": "abc123-previous-activity-id"
}
Large jobs: send multipart/form-data with a small request_json and
one items_file JSON upload. items_file must be a JSON array, or an
object with an items array. Do not send items_storage_url; it is internal.
All items are stored in the activity, so full runs can be triggered later using source_activity_id.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Body
Request to enrich item data.
Search prompt for web enrichment (e.g., 'Find product specifications'). Optional - defaults to empty string.
List of items to enrich. Required unless source_activity_id or source_catalog_id is provided.
Schema defining fields to extract. Required unless source_activity_id or source_catalog_id is provided.
Canonical registry for requested-attribute jobs. Items carry attribute_set_id; workers expand that id to requested_attributes only at runtime. Per-row requested_attributes payloads are rejected by the public endpoint.
Canonical registry for repeated per-item source hints. Items carry source_hint_set_id; workers expand that id to source_hints only at runtime. Inline source_hints are rejected by the public endpoint.
Restrict web scraping to these domains only
Domains to exclude from web search and URL fetches
Processing speed: 'fast' (quick), 'medium' (balanced), 'deep'/'slow' (thorough default), 'ultra_slow' (maximum reasoning / strongest model path)
If true (default), performs web search to gather content. If false, skips web search and uses input data directly for extraction/validation.
Limit processing to first N items. All items are stored. Use source_activity_id to process remaining items later.
Taxonomy definition for category prediction (TaxonomyInput format)
If true and taxonomy is provided, predict category_id for each item
If true, also predict taxonomy_attributes after classification. Set false for taxonomy classification only.
If true, AI validates that field values make sense given their descriptions (e.g., email field contains valid email format)
Run the enrich review agent after enrichment, apply clear output corrections, and attach activity.output.audit decisions. Public enrichment jobs keep this enabled.
When false, the post-enrichment audit still applies clear output corrections but suppresses human-facing audit decisions/suggestions.
Include source_explanation for each enriched field (and taxonomy attribute) explaining how the value was derived from sources. Always enabled.
Optional add-on for returning low-confidence candidates at the end of each result
Optional catalog ID to link this enrichment job to
Optional organization-scoped enrichment template key. Template extraction fields apply to omitted request fields; template-owned safety controls remain enforced.
If true, returns immediately with job_id instead of waiting for results
Status for staged changes: 'pending' (default, visible to admin) or 'draft' (vendor draft, not visible to admin until submitted)
Activity ID of a previous run. Processes all stored items using saved config.
Catalog UUID to read items FROM as the enrichment input. Independent of catalog_id (the write target).
Original file name if items were loaded from a file
If true, include detailed service_usage metrics (costs, tokens, per-item stats) in response
If true, capture full audit log per item (raw markdown, tool history, LLM responses) and upload to storage
If true, preserve durable copies of consulted source material for audit trails. Web pages are captured as screenshots; PDFs are copied as PDF files.
Activity ID to re-extract from. Skips web gather, reuses stored web research data. Supports prompt/schema overrides and feedback.
Feedback to apply to all items during re-extraction (appended to prompt)
Per-item feedback keyed by row index as string (e.g. {'0': 'Wrong product', '3': 'Price is in EUR not USD'})
Row indices to re-extract (others carried forward from source). Only used with reextract_from_activity_id.
HTTPS URL to POST results to when job completes. Must use https://.
If true, use an uploaded knowledge base (OpenAI vector store) for structured generation.
OpenAI vector store ID containing uploaded knowledge base files.
Optional SOURCE_X -> source URL mapping used for field-level citations (for example {'SOURCE_1': 'https://.../specs.pdf'}).
Optional SOURCE_X -> metadata mapping for uploaded knowledge-base files (for example {'SOURCE_1': {'doc_type': 'approved_marketing'}}).
If true, upload all media URLs (images, PDFs) found in enrichment results to hosted storage, replacing with hosted URLs.
If true, media/document output fields are cleared unless the URL is successfully copied to hosted storage.
Optional deterministic post-processing for hosted images, such as square white-background catalog normalization.
Response
Successful Response
Response with enriched data for all items.
Number of items being processed (may be limited by max_rows)
Job ID for tracking (always returned). Use this with source_activity_id to trigger full run.
Enrichment results for each item (empty if async_mode=true)
Total items passed in the request (before max_rows limit)
Number of successfully enriched items
Number of credits used (1 per successful item)
Job status: 'running' (async) or 'completed' (sync)
Detailed API usage metrics (costs, calls, tokens) - only present when job is complete
Estimated pricing breakdown (for example knowledge-base storage + model runtime costs when available)
Whether this enrichment job used a knowledge base vector store
SOURCE_X -> hosted document URL mapping for knowledge-base files used by the activity
Current page number (1-indexed)
Number of results per page
Total number of pages available
Number of items with results available so far (useful while status=running)