Use the Data Enrichment API to refresh company records from trusted web evidence.
POST /v1/enrich endpoint and its interactive playground.Use POST /v1/enrich to refresh a company record with structured data gathered from external web evidence.The endpoint is company-only in v1 and supports two input modes:record_idseed for dry_run proposals without writesAuthorization: Bearer <access_token>companies:write scope for record updatescompanies:read scope for seed-based dry_run requestsX-Workspace-Codeobject_type: must be companyrecord_id or seedrecord_id: the company record UUID when enriching an existing Sanka companyseed: a transient company payload with at least name or url when you want proposals without a Sanka recordobject_type=company onlydry_run returns proposed updates without writingforce_refresh allows overwrite evaluation for existing valuesseed mode accepts a transient company name and/or URL without requiring a Sanka company recordseed mode is dry_run only and does not persist an enrichment runcurl -X POST "https://api.sanka.com/v1/enrich" \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"object_type": "company",
"record_id": "11111111-2222-3333-4444-555555555555",
"custom_field_map": {
"industry": "cf_12345",
"employee_count": "cf_67890"
}
}'
Use the interactive playground in the OpenAPI reference on this page to test the same request.For transient enrichment without a Sanka record, use seed with dry_run=true:{
"object_type": "company",
"seed": {
"name": "Acme",
"external_id": "row_123"
},
"dry_run": true
}
Name-only enrichment is supported. Adding a company URL or domain usually improves evidence quality.updated_builtin_fields: built-in company fields written during the runupdated_custom_fields: mapped custom fields that were updatedproposed_fields: candidate values the pipeline foundfield_evidence: source evidence for each accepted fieldskipped_fields: fields that were rejected because confidence or overwrite rules did not passprovider_meta: request metadata from the enrichment providers{
"data": {
"company_id": "<company_uuid_or_null>",
"seed_external_id": "<external_id_or_null>",
"run_id": "<run_uuid>",
"pipeline_version": "v1",
"updated_builtin_fields": {},
"updated_custom_fields": {},
"proposed_fields": {},
"field_evidence": {},
"skipped_fields": {},
"provider_meta": {}
},
"message": "ok",
"ctx_id": "<ctx_id>"
}
dry_run when you want proposals and evidence without writing data:{
"object_type": "company",
"record_id": "11111111-2222-3333-4444-555555555555",
"dry_run": true
}
seed mode requires dry_run=true and does not persist an enrichment run in Sanka.Use force_refresh when you want the pipeline to overwrite existing values when the write policy allows it:{
"object_type": "company",
"record_id": "11111111-2222-3333-4444-555555555555",
"force_refresh": true
}