Creates or updates up to 100 companies, each found by its domain as companies.upsert finds it: a company created needs name (else the item fails with validation_error at name), and a domain more than one live company has fails the item with conflict, details.codeambiguous_domain. The body is checked as a whole first: a malformed item refuses the request with 422 validation_error at its path, such as items.3.name, and nothing is written. Then the items run one after another, each in its own transaction, so one that fails leaves the others written. The answer is 200 with one result per item, in order, and the counts: a written item has outcomecreated or updated and the record; a failed one has outcomefailed and an error in the error envelope’s shape, with the code and details the single upsert would have answered. Every item is keyed by its natural key, so sending the same body again is harmless: no Idempotency-Key is taken, and a failed request or failed items can simply be sent again. A request counts against the api-key-bulk rate-limit policy as well as api-key.
An Enrik API key, sent as Authorization: Bearer <key>. A key reaches public operations only, and only those whose scopes it holds. A few parameters need a scope beyond their operation’s, which the parameter names. The scopes:
setup:read: Read the workspace setup and its company profile.
setup:run: Change the setup: confirm the company profile, authorize sponsored drafting and background company research, choose what to set up and complete setup.
workspace:read: Read the workspace’s own profile: its health summary and setup state.
crm:read: Read companies with their signals, contacts and the saved views over them.
crm:write: Create, update and restore companies and contacts, and create, update and delete saved views.
crm:delete: Delete companies and contacts.
twin:read: Read the Company Twin: structured company knowledge and its signals.
discovery:read: Read ICP profiles, ICP assessments, discovery briefs, discovery jobs, candidates and the signal library.
discovery:write: Create and change ICP profiles, discovery briefs and signal-definition drafts, and review discovery candidates.
discovery:run: Create, start and cancel discovery jobs, and edit a draft one. Uses provider budget.
enrichment:read: Read the enrichment configuration and its results, including a record’s enrichment, formula and custom-API cells.
enrichment:run: Launch and cancel enrichment. Spends enrichment credits.
automation:read: Read workflows and agents with their run history, including a record’s agent cells.
automation:run: Run existing workflows and agents.
exports:read: Read export jobs and the fields an export can carry.
exports:run: Create, preview, start, cancel and archive CSV exports of companies, contacts and candidates, and download the file. Also needs crm:read. Delivering an export to a webhook destination stays in the app.
integrations:read: Read connections, field mappings, CRM sync jobs and webhook destinations.
webhooks:read: Read webhook subscriptions, the event types they can name and their delivery log.
webhooks:write: Subscribe a receiver URL to webhook events; edit, test, pause, resume and archive a subscription and rotate its signing secret; redeliver an event. Only workspace owners and admins can grant it.
reporting:read: Read analytics and dashboards.
assistant:read: Read the Assistant: its threads, messages and pending approvals.
assistant:run: Converse with the Assistant. Uses the workspace’s AI quota.
assistant:write: Approve or reject the changes the Assistant proposes.
Body
application/json
Up to 100 companies to create or update by domain.
The companies, each as companies.upsert takes it, 1 to 100. The whole body is checked first: one malformed item refuses the request with 422 validation_error at its path, such as items.3.name, and nothing is written.
Required range: -9007199254740991 <= x <= 9007199254740991
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Enrik","colors":{"primary":"#4f46e5","light":"#818cf8","dark":"#4338ca"},"favicon":"https://mintlify.s3.us-west-1.amazonaws.com/enrik/favicon.svg","navbar":{"links":[{"href":"mailto:support@enrik.ai","label":"Contact support"}]},"footer":{"socials":{"website":"https://enrik.ai"}},"contextual":{"options":["copy"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"enrik","hasAudioNarration":false,"actualSubdomain":"enrik","customDomains":["docs.enrik.ai"],"gitSource":{"type":"github","owner":"simonrueba","repo":"enrik-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"a74d4468-3307-40c8-ac78-13cf5a523c78","liveDeploymentHistoryId":"6ac90f75d01a2240ccc78b3d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ac90f75d01a2240ccc78b3d"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ac90f75d01a2240ccc78b3d","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"API reference","count":135},{"language":"default","tag":"Endpoints","count":130},{"language":"default","tag":"companies","count":20},{"language":"default","tag":"contacts","count":16},{"language":"default","tag":"companyCandidates","count":10},{"language":"default","tag":"companyDiscoveryJobs","count":10},{"language":"default","tag":"webhookSubscriptions","count":10},{"language":"default","tag":"icpProfiles","count":9},{"language":"default","tag":"signalDefinitions","count":9},{"language":"default","tag":"websiteOnboarding","count":9}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/companies/create-or-update-up-to-100-companies-by-domain","slug":"/api-reference/companies/create-or-update-up-to-100-companies-by-domain","pageMetadata":{"title":"Create or update up to 100 companies by domain","description":"Creates or updates up to 100 companies, each found by its `domain` as `companies.upsert` finds it: a company created needs `name` (else the item fails with `validation_error` at `name`), and a domain more than one live company has fails the item with `conflict`, `details.code` `ambiguous_domain`. The body is checked as a whole first: a malformed item refuses the request with 422 `validation_error` at its path, such as `items.3.name`, and nothing is written. Then the items run one after another, each in its own transaction, so one that fails leaves the others written. The answer is 200 with one result per item, in order, and the counts: a written item has `outcome` `created` or `updated` and the record; a failed one has `outcome` `failed` and an `error` in the error envelope’s shape, with the code and details the single upsert would have answered. Every item is keyed by its natural key, so sending the same body again is harmless: no `Idempotency-Key` is taken, and a failed request or failed items can simply be sent again. A request counts against the `api-key-bulk` rate-limit policy as well as `api-key`.","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/companies/bulk-upsert","href":"/api-reference/companies/create-or-update-up-to-100-companies-by-domain","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Creates or updates up to 100 companies, each found by its \", _jsx(_components.code, {\n children: \"domain\"\n }), \" as \", _jsx(_components.code, {\n children: \"companies.upsert\"\n }), \" finds it: a company created needs \", _jsx(_components.code, {\n children: \"name\"\n }), \" (else the item fails with \", _jsx(_components.code, {\n children: \"validation_error\"\n }), \" at \", _jsx(_components.code, {\n children: \"name\"\n }), \"), and a domain more than one live company has fails the item with \", _jsx(_components.code, {\n children: \"conflict\"\n }), \", \", _jsx(_components.code, {\n children: \"details.code\"\n }), \" \", _jsx(_components.code, {\n children: \"ambiguous_domain\"\n }), \". The body is checked as a whole first: a malformed item refuses the request with 422 \", _jsx(_components.code, {\n children: \"validation_error\"\n }), \" at its path, such as \", _jsx(_components.code, {\n children: \"items.3.name\"\n }), \", and nothing is written. Then the items run one after another, each in its own transaction, so one that fails leaves the others written. The answer is 200 with one result per item, in order, and the counts: a written item has \", _jsx(_components.code, {\n children: \"outcome\"\n }), \" \", _jsx(_components.code, {\n children: \"created\"\n }), \" or \", _jsx(_components.code, {\n children: \"updated\"\n }), \" and the record; a failed one has \", _jsx(_components.code, {\n children: \"outcome\"\n }), \" \", _jsx(_components.code, {\n children: \"failed\"\n }), \" and an \", _jsx(_components.code, {\n children: \"error\"\n }), \" in the error envelope’s shape, with the code and details the single upsert would have answered. Every item is keyed by its natural key, so sending the same body again is harmless: no \", _jsx(_components.code, {\n children: \"Idempotency-Key\"\n }), \" is taken, and a failed request or failed items can simply be sent again. A request counts against the \", _jsx(_components.code, {\n children: \"api-key-bulk\"\n }), \" rate-limit policy as well as \", _jsx(_components.code, {\n children: \"api-key\"\n }), \".\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create or update up to 100 companies by domain","description":"Creates or updates up to 100 companies, each found by its `domain` as `companies.upsert` finds it: a company created needs `name` (else the item fails with `validation_error` at `name`), and a domain more than one live company has fails the item with `conflict`, `details.code` `ambiguous_domain`. The body is checked as a whole first: a malformed item refuses the request with 422 `validation_error` at its path, such as `items.3.name`, and nothing is written. Then the items run one after another, each in its own transaction, so one that fails leaves the others written. The answer is 200 with one result per item, in order, and the counts: a written item has `outcome` `created` or `updated` and the record; a failed one has `outcome` `failed` and an `error` in the error envelope’s shape, with the code and details the single upsert would have answered. Every item is keyed by its natural key, so sending the same body again is harmless: no `Idempotency-Key` is taken, and a failed request or failed items can simply be sent again. A request counts against the `api-key-bulk` rate-limit policy as well as `api-key`.","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/companies/bulk-upsert","href":"/api-reference/companies/create-or-update-up-to-100-companies-by-domain","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"companies.bulkUpsert","summary":"Create or update up to 100 companies by domain","description":"Creates or updates up to 100 companies, each found by its `domain` as `companies.upsert` finds it: a company created needs `name` (else the item fails with `validation_error` at `name`), and a domain more than one live company has fails the item with `conflict`, `details.code` `ambiguous_domain`. The body is checked as a whole first: a malformed item refuses the request with 422 `validation_error` at its path, such as `items.3.name`, and nothing is written. Then the items run one after another, each in its own transaction, so one that fails leaves the others written. The answer is 200 with one result per item, in order, and the counts: a written item has `outcome` `created` or `updated` and the record; a failed one has `outcome` `failed` and an `error` in the error envelope’s shape, with the code and details the single upsert would have answered. Every item is keyed by its natural key, so sending the same body again is harmless: no `Idempotency-Key` is taken, and a failed request or failed items can simply be sent again. A request counts against the `api-key-bulk` rate-limit policy as well as `api-key`.","tags":["companies"],"security":["7fc95797-b61b-4131-8c0e-f240c1c23646"],"requestBody":"8b1735bd-ca32-4657-a50f-03601c1d7987","responses":{"200":"71d0dbb9-8421-4aa5-994c-9ed4c4222a25","400":"d21f4262-528d-4926-a6f9-e64080599c20","401":"c0f6cb3f-7b37-4383-aa8a-23b249c9cf2d","403":"db25449f-db6c-4277-b2aa-9bb18c47397d","409":"15b70873-9c21-471e-8968-4dccf12b4877","413":"36692881-3f58-4007-b34c-ebeb2e47c772","415":"900dc552-71f2-4019-9c6e-6f78f15aa0e3","422":"b5c18ac4-0d35-47d3-83a9-8568b5051b69","429":"36ea3b1a-8239-47f2-a791-f4b88d0977dd","500":"0613cb95-0ff8-436b-9f16-a05ef4623253","503":"3d6a3e68-3371-4558-9898-dbe1820e0b76","default":"23805417-4f8d-4400-bf5d-a4cc20fd7435"},"x-mutation-class":"idempotent-by-nature","x-rate-class":"bulk","x-stability-level":"beta","method":"post","type":"path","servers":["d4b75ac2-20fc-4060-84ae-9370689f03ae"],"path":"/v1/companies/bulk-upsert","baseUrlOptions":["https://api.enrik.ai"],"title":"Create or update up to 100 companies by domain","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"domain":{"description":"The key: the company’s domain, such as `example.com`; a URL is reduced to its host. The live company with this domain is updated, or a company is created when there is none.","type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].domain","typeLabel":"string"},"name":{"description":"The company’s name, 1 to 120 characters. Required when the company is created.","type":"string","minLength":1,"maxLength":120,"uniqueKey":"\\items.items.[INDEX].name","typeLabel":"string"},"website":{"description":"The website address; blank means none. `domain` is not derived from it.","type":"string","maxLength":2048,"uniqueKey":"\\items.items.[INDEX].website","typeLabel":"string"},"industry":{"oneOf":[{"type":"string","description":"The industry, at most 255 characters.","maxLength":255,"uniqueKey":"\\items.items.[INDEX].industry.oneOf.0","typeLabel":"string"},{"type":"null","description":"The industry, at most 255 characters.","uniqueKey":"\\items.items.[INDEX].industry.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].industry","typeLabel":"string | null"},"employeeCount":{"oneOf":[{"type":"integer","description":"How many people the company employs.","maximum":2147483647,"minimum":0,"uniqueKey":"\\items.items.[INDEX].employeeCount.oneOf.0","typeLabel":"integer"},{"type":"null","description":"How many people the company employs.","uniqueKey":"\\items.items.[INDEX].employeeCount.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].employeeCount","typeLabel":"integer | null"},"annualRevenue":{"oneOf":[{"type":"number","description":"The annual revenue, with at most two decimals.","maximum":999999999999.99,"minimum":0,"uniqueKey":"\\items.items.[INDEX].annualRevenue.oneOf.0","typeLabel":"number"},{"type":"null","description":"The annual revenue, with at most two decimals.","uniqueKey":"\\items.items.[INDEX].annualRevenue.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].annualRevenue","typeLabel":"number | null"},"linkedinUrl":{"description":"The LinkedIn page address; blank means none.","type":"string","maxLength":2048,"uniqueKey":"\\items.items.[INDEX].linkedinUrl","typeLabel":"string"},"country":{"description":"The country, as free text; blank means none.","type":"string","maxLength":120,"uniqueKey":"\\items.items.[INDEX].country","typeLabel":"string"},"summary":{"oneOf":[{"type":"string","description":"A short description of the company.","maxLength":5000,"uniqueKey":"\\items.items.[INDEX].summary.oneOf.0","typeLabel":"string"},{"type":"null","description":"A short description of the company.","uniqueKey":"\\items.items.[INDEX].summary.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].summary","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","description":"The city the company is based in.","maxLength":255,"uniqueKey":"\\items.items.[INDEX].city.oneOf.0","typeLabel":"string"},{"type":"null","description":"The city the company is based in.","uniqueKey":"\\items.items.[INDEX].city.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].city","typeLabel":"string | null"},"legalForm":{"oneOf":[{"type":"string","description":"The legal form, such as `GmbH`.","maxLength":255,"uniqueKey":"\\items.items.[INDEX].legalForm.oneOf.0","typeLabel":"string"},{"type":"null","description":"The legal form, such as `GmbH`.","uniqueKey":"\\items.items.[INDEX].legalForm.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].legalForm","typeLabel":"string | null"},"registerNumber":{"oneOf":[{"type":"string","description":"The commercial register number.","maxLength":255,"uniqueKey":"\\items.items.[INDEX].registerNumber.oneOf.0","typeLabel":"string"},{"type":"null","description":"The commercial register number.","uniqueKey":"\\items.items.[INDEX].registerNumber.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].registerNumber","typeLabel":"string | null"},"ownerUserId":{"description":"The member who owns the company, by user id. List the members, and their ids, with `GET /v1/workspace-members` (needs `crm:write`).","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","uniqueKey":"\\items.items.[INDEX].ownerUserId","typeLabel":"string\u003cuuid>"},"address":{"description":"The postal address, as an object of your choosing; it replaces the whole address.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].address.additionalProperties","typeLabel":"any"},"uniqueKey":"\\items.items.[INDEX].address","typeLabel":"object"},"customFields":{"description":"Custom field values by key, checked against the workspace’s company custom fields; the keys left out keep their values.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].customFields.additionalProperties","typeLabel":"any"},"uniqueKey":"\\items.items.[INDEX].customFields","typeLabel":"object"}},"required":["domain"],"additionalProperties":false,"description":"A company to create or update, found by its `domain`. A field left out keeps its value; `name` is required when the company is created.","uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"description":"The companies, each as `companies.upsert` takes it, 1 to 100. The whole body is checked first: one malformed item refuses the request with 422 `validation_error` at its path, such as `items.3.name`, and nothing is written.","isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"}},"required":["items"],"additionalProperties":false,"description":"Up to 100 companies to create or update by domain.","uniqueKey":"","typeLabel":"object"},"example":{"items":[{"domain":"https://www.example.com","name":"Analytical Engines","industry":"Software"},{"domain":"shared.example","industry":"Energy"}]},"examples":{"Example":{"title":"Example","value":{"items":[{"domain":"https://www.example.com","name":"Analytical Engines","industry":"Software"},{"domain":"shared.example","industry":"Energy"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"71d0dbb9-8421-4aa5-994c-9ed4c4222a25":{"description":"What a bulk write did, item by item.","headers":{"RateLimit":{"description":"What the API key has left under each rate-limit policy that counted this request: a Structured Field list with one `\"\u003cpolicy>\";r=\u003cremaining>;t=\u003cseconds>` item per policy. Read it as a list and honour every item, not only the smallest: continued traffic must satisfy each policy. `t` is the effective window in seconds (IETF RateLimit header fields, draft 11): quota is not guaranteed to be fully restored when it ends. When the answer also carries `Retry-After`, that takes priority. This operation writes many records in one request, so two policies count it: `api-key`, every request the key makes, and `api-key-bulk`, every request to a bulk operation.","schema":{"type":"string"},"example":"\"api-key\";r=599;t=60, \"api-key-bulk\";r=29;t=60"},"RateLimit-Policy":{"description":"The rate-limit policies that counted this request: a Structured Field list with one `\"\u003cpolicy>\";q=\u003crequests>;w=\u003cwindow in seconds>` item per policy. The limits belong to the key, not to the address it calls from. This operation writes many records in one request, so two policies count it: `api-key`, every request the key makes, and `api-key-bulk`, every request to a bulk operation.","schema":{"type":"string"},"example":"\"api-key\";q=600;w=60, \"api-key-bulk\";q=30;w=60"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"oneOf":[{"type":"object","description":"A company a bulk write created or updated.","required":["index","outcome","company"],"properties":{"index":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The item’s position in `items`, from 0.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.index","typeLabel":"integer"},"outcome":{"type":"string","enum":["created","updated"],"description":"`created` when the item created the company; `updated` when the fields sent were written to an existing one. A bulk upsert creates when no live company had the domain; a bulk create only creates and a bulk update only updates.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.outcome","typeLabel":"enum\u003cstring>"},"company":{"type":"object","properties":{"id":{"type":"string","description":"The company’s id.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.id","typeLabel":"string"},"workspaceId":{"type":"string","description":"The workspace the company belongs to.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.workspaceId","typeLabel":"string"},"name":{"type":"string","description":"The company’s name.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.name","typeLabel":"string"},"domain":{"oneOf":[{"description":"The company’s domain, such as `example.com`.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.domain.oneOf.0","typeLabel":"string"},{"description":"The company’s domain, such as `example.com`.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.domain.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.domain","typeLabel":"string | null"},"website":{"oneOf":[{"description":"The website address.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.website.oneOf.0","typeLabel":"string"},{"description":"The website address.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.website.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.website","typeLabel":"string | null"},"industry":{"oneOf":[{"description":"The industry.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.industry.oneOf.0","typeLabel":"string"},{"description":"The industry.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.industry.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.industry","typeLabel":"string | null"},"employeeCount":{"oneOf":[{"type":"integer","description":"How many people the company employs.","maximum":9007199254740991,"minimum":-9007199254740991,"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.employeeCount.oneOf.0","typeLabel":"integer"},{"type":"null","description":"How many people the company employs.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.employeeCount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.employeeCount","typeLabel":"integer | null"},"annualRevenue":{"oneOf":[{"description":"The annual revenue.","type":"number","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.annualRevenue.oneOf.0","typeLabel":"number"},{"description":"The annual revenue.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.annualRevenue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.annualRevenue","typeLabel":"number | null"},"address":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"results.items.[INDEX].oneOf.0.company.address.additionalProperties","typeLabel":"any"},"description":"The postal address, as it was given.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.address","typeLabel":"object"},"linkedinUrl":{"oneOf":[{"description":"The LinkedIn page address.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.linkedinUrl.oneOf.0","typeLabel":"string"},{"description":"The LinkedIn page address.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.linkedinUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.linkedinUrl","typeLabel":"string | null"},"country":{"oneOf":[{"description":"The country.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.country.oneOf.0","typeLabel":"string"},{"description":"The country.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.country.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.country","typeLabel":"string | null"},"ownerUserId":{"oneOf":[{"description":"The member who owns the company, by user id. List the members, and their ids, with `GET /v1/workspace-members` (needs `crm:write`).","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.ownerUserId.oneOf.0","typeLabel":"string"},{"description":"The member who owns the company, by user id. List the members, and their ids, with `GET /v1/workspace-members` (needs `crm:write`).","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.ownerUserId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.ownerUserId","typeLabel":"string | null"},"customFields":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"results.items.[INDEX].oneOf.0.company.customFields.additionalProperties","typeLabel":"any"},"description":"Custom field values, by the custom field’s key.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.customFields","typeLabel":"object"},"createdBy":{"oneOf":[{"description":"The user who created the company; `null` when an API key did.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.createdBy.oneOf.0","typeLabel":"string"},{"description":"The user who created the company; `null` when an API key did.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.createdBy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.createdBy","typeLabel":"string | null"},"updatedBy":{"oneOf":[{"description":"The user who changed the company last.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.updatedBy.oneOf.0","typeLabel":"string"},{"description":"The user who changed the company last.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.updatedBy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.updatedBy","typeLabel":"string | null"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","description":"When the company was created.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","description":"When the company last changed. Send it back as `expectedUpdatedAt` to update safely.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.updatedAt","typeLabel":"string\u003cdate-time>"},"deletedAt":{"oneOf":[{"type":"string","description":"When the company was deleted; `null` while it is live.","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.deletedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the company was deleted; `null` while it is live.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.deletedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.deletedAt","typeLabel":"string\u003cdate-time> | null"},"signalSummary":{"oneOf":[{"type":"object","description":"What the company’s active signals add up to: set on a list page, `null` elsewhere and for a company with no signals.","required":["companyId","latestSignalTitle","latestSignalCategory","latestSignalDate","latestSignalStrength","latestSignalConfidence","latestSignalRelevanceScore","activeSignalCount","strongSignalCount","signalPriorityScore","scoringVersion"],"properties":{"companyId":{"type":"string","description":"The company the summary is of.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.companyId","typeLabel":"string"},"latestSignalTitle":{"oneOf":[{"description":"The title of the latest active signal.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalTitle.oneOf.0","typeLabel":"string"},{"description":"The title of the latest active signal.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalTitle.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalTitle","typeLabel":"string | null"},"latestSignalCategory":{"oneOf":[{"type":"string","description":"The latest active signal’s category. What kind of signal it is, such as `hiring` or `funding`.","enum":["hiring","expansion","new_location","product_launch","event_participation","certification","partnership","technology","website_change","regulatory","leadership_change","funding","content_activity","customer_reference","other"],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalCategory.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The latest active signal’s category. What kind of signal it is, such as `hiring` or `funding`.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalCategory.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalCategory","typeLabel":"enum\u003cstring> | null"},"latestSignalDate":{"oneOf":[{"description":"When the latest active signal happened, as a date (`YYYY-MM-DD`).","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalDate.oneOf.0","typeLabel":"string"},{"description":"When the latest active signal happened, as a date (`YYYY-MM-DD`).","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalDate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalDate","typeLabel":"string | null"},"latestSignalStrength":{"oneOf":[{"type":"string","description":"The latest active signal’s strength: `weak`, `medium` or `strong`.","enum":["weak","medium","strong"],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalStrength.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The latest active signal’s strength: `weak`, `medium` or `strong`.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalStrength.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalStrength","typeLabel":"enum\u003cstring> | null"},"latestSignalConfidence":{"oneOf":[{"type":"string","description":"How sure the latest active signal is: `low`, `medium` or `high`.","enum":["low","medium","high"],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalConfidence.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"How sure the latest active signal is: `low`, `medium` or `high`.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalConfidence.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalConfidence","typeLabel":"enum\u003cstring> | null"},"latestSignalRelevanceScore":{"oneOf":[{"type":"integer","description":"The latest active signal’s relevance, 0 to 100.","maximum":9007199254740991,"minimum":-9007199254740991,"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalRelevanceScore.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The latest active signal’s relevance, 0 to 100.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalRelevanceScore.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.latestSignalRelevanceScore","typeLabel":"integer | null"},"activeSignalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"How many active signals the company has.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.activeSignalCount","typeLabel":"integer"},"strongSignalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"How many of them are strong.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.strongSignalCount","typeLabel":"integer"},"signalPriorityScore":{"oneOf":[{"type":"integer","description":"The highest relevance among the active signals, 0 to 100.","maximum":9007199254740991,"minimum":-9007199254740991,"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.signalPriorityScore.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The highest relevance among the active signals, 0 to 100.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.signalPriorityScore.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.signalPriorityScore","typeLabel":"integer | null"},"scoringVersion":{"type":"string","description":"The scoring rules the scores were computed under.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0.scoringVersion","typeLabel":"string"}},"additionalProperties":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.0","typeLabel":"object"},{"type":"null","description":"What the company’s active signals add up to: set on a list page, `null` elsewhere and for a company with no signals.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.signalSummary","typeLabel":"object | null"},"summary":{"oneOf":[{"description":"A short description of the company.","type":"string","uniqueKey":"results.items.[INDEX].oneOf.0.company.summary.oneOf.0","typeLabel":"string"},{"description":"A short description of the company.","type":"null","uniqueKey":"results.items.[INDEX].oneOf.0.company.summary.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].oneOf.0.company.summary","typeLabel":"string | null"},"city":{"oneOf":[{"description":"The city the company is based in.","type":"string","uniqueKey":"results.items.[INDEX].oneOf.0.company.city.oneOf.0","typeLabel":"string"},{"description":"The city the company is based in.","type":"null","uniqueKey":"results.items.[INDEX].oneOf.0.company.city.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].oneOf.0.company.city","typeLabel":"string | null"},"legalForm":{"oneOf":[{"description":"The legal form, such as `GmbH`.","type":"string","uniqueKey":"results.items.[INDEX].oneOf.0.company.legalForm.oneOf.0","typeLabel":"string"},{"description":"The legal form, such as `GmbH`.","type":"null","uniqueKey":"results.items.[INDEX].oneOf.0.company.legalForm.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].oneOf.0.company.legalForm","typeLabel":"string | null"},"registerNumber":{"oneOf":[{"description":"The commercial register number.","type":"string","uniqueKey":"results.items.[INDEX].oneOf.0.company.registerNumber.oneOf.0","typeLabel":"string"},{"description":"The commercial register number.","type":"null","uniqueKey":"results.items.[INDEX].oneOf.0.company.registerNumber.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].oneOf.0.company.registerNumber","typeLabel":"string | null"},"buildingEnergyTags":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].oneOf.0.company.buildingEnergyTags.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Building-energy markets the company is known to work in. Read-only.","uniqueKey":"results.items.[INDEX].oneOf.0.company.buildingEnergyTags.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"Building-energy markets the company is known to work in. Read-only.","uniqueKey":"results.items.[INDEX].oneOf.0.company.buildingEnergyTags.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].oneOf.0.company.buildingEnergyTags","typeLabel":"string[] | null"},"canonicalCompanyId":{"oneOf":[{"description":"The Enrik Data company this one is linked to; `null` when it is not. Read-only.","type":"string","uniqueKey":"results.items.[INDEX].oneOf.0.company.canonicalCompanyId.oneOf.0","typeLabel":"string"},{"description":"The Enrik Data company this one is linked to; `null` when it is not. Read-only.","type":"null","uniqueKey":"results.items.[INDEX].oneOf.0.company.canonicalCompanyId.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].oneOf.0.company.canonicalCompanyId","typeLabel":"string | null"},"enrikUpdateAvailable":{"description":"Whether Enrik Data has newer facts about the company than this workspace applied.","type":"boolean","uniqueKey":"results.items.[INDEX].oneOf.0.company.enrikUpdateAvailable","typeLabel":"boolean"},"enrikSnapshotVersion":{"oneOf":[{"description":"The Enrik Data version the company’s facts were last taken from.","type":"string","uniqueKey":"results.items.[INDEX].oneOf.0.company.enrikSnapshotVersion.oneOf.0","typeLabel":"string"},{"description":"The Enrik Data version the company’s facts were last taken from.","type":"null","uniqueKey":"results.items.[INDEX].oneOf.0.company.enrikSnapshotVersion.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].oneOf.0.company.enrikSnapshotVersion","typeLabel":"string | null"},"enrichmentCells":{"description":"With `include=enrichmentCells`: each enrichment column’s state for this record, by column id.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"definitionId":{"type":"string","description":"The column’s id.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.enrichmentCells.additionalProperties.definitionId","typeLabel":"string"},"fieldId":{"type":"string","description":"The custom field the column writes its value into.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.enrichmentCells.additionalProperties.fieldId","typeLabel":"string"},"status":{"type":"string","enum":["empty","queued","running","succeeded","failed","skipped","stale"],"description":"Where the cell stands: `empty`, `queued`, `running`, `succeeded`, `failed`, `skipped` or `stale`.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.enrichmentCells.additionalProperties.status","typeLabel":"enum\u003cstring>"},"lastErrorCode":{"oneOf":[{"description":"Why the last attempt failed, as a stable code; `null` when it did not.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.enrichmentCells.additionalProperties.lastErrorCode.oneOf.0","typeLabel":"string"},{"description":"Why the last attempt failed, as a stable code; `null` when it did not.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.enrichmentCells.additionalProperties.lastErrorCode.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.enrichmentCells.additionalProperties.lastErrorCode","typeLabel":"string | null"},"lastAppliedAt":{"oneOf":[{"description":"When a value was last written into the field, as an ISO 8601 instant.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.enrichmentCells.additionalProperties.lastAppliedAt.oneOf.0","typeLabel":"string"},{"description":"When a value was last written into the field, as an ISO 8601 instant.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.enrichmentCells.additionalProperties.lastAppliedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.enrichmentCells.additionalProperties.lastAppliedAt","typeLabel":"string | null"},"latestRunId":{"oneOf":[{"description":"The run that last worked on this cell; `null` when none has.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.enrichmentCells.additionalProperties.latestRunId.oneOf.0","typeLabel":"string"},{"description":"The run that last worked on this cell; `null` when none has.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.enrichmentCells.additionalProperties.latestRunId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.enrichmentCells.additionalProperties.latestRunId","typeLabel":"string | null"}},"required":["definitionId","fieldId","status","lastErrorCode","lastAppliedAt","latestRunId"],"additionalProperties":true,"description":"The state of one enrichment column for one record. The value is in its field.","uniqueKey":"results.items.[INDEX].oneOf.0.company.enrichmentCells.additionalProperties","typeLabel":"object"},"uniqueKey":"results.items.[INDEX].oneOf.0.company.enrichmentCells","typeLabel":"object"},"formulaCells":{"description":"With `include=formulaCells`: each formula column’s state, by column id.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"definitionId":{"type":"string","description":"The column’s id.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.formulaCells.additionalProperties.definitionId","typeLabel":"string"},"fieldId":{"type":"string","description":"The custom field the column writes its value into.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.formulaCells.additionalProperties.fieldId","typeLabel":"string"},"status":{"type":"string","enum":["empty","queued","running","succeeded","failed","skipped","stale"],"description":"Where the cell stands: `empty`, `queued`, `running`, `succeeded`, `failed`, `skipped` or `stale`.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.formulaCells.additionalProperties.status","typeLabel":"enum\u003cstring>"},"lastErrorCode":{"oneOf":[{"description":"Why the last attempt failed, as a stable code; `null` when it did not.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.formulaCells.additionalProperties.lastErrorCode.oneOf.0","typeLabel":"string"},{"description":"Why the last attempt failed, as a stable code; `null` when it did not.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.formulaCells.additionalProperties.lastErrorCode.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.formulaCells.additionalProperties.lastErrorCode","typeLabel":"string | null"},"lastAppliedAt":{"oneOf":[{"description":"When a value was last written into the field, as an ISO 8601 instant.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.formulaCells.additionalProperties.lastAppliedAt.oneOf.0","typeLabel":"string"},{"description":"When a value was last written into the field, as an ISO 8601 instant.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.formulaCells.additionalProperties.lastAppliedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.formulaCells.additionalProperties.lastAppliedAt","typeLabel":"string | null"}},"required":["definitionId","fieldId","status","lastErrorCode","lastAppliedAt"],"additionalProperties":true,"description":"The state of one formula column for one record. The value is in its field.","uniqueKey":"results.items.[INDEX].oneOf.0.company.formulaCells.additionalProperties","typeLabel":"object"},"uniqueKey":"results.items.[INDEX].oneOf.0.company.formulaCells","typeLabel":"object"},"customApiCells":{"description":"With `include=customApiCells`: each custom-API column’s state, by column id.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"definitionId":{"type":"string","description":"The column’s id.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.customApiCells.additionalProperties.definitionId","typeLabel":"string"},"fieldId":{"type":"string","description":"The custom field the column writes its value into.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.customApiCells.additionalProperties.fieldId","typeLabel":"string"},"status":{"type":"string","enum":["empty","queued","running","succeeded","failed","skipped","stale"],"description":"Where the cell stands: `empty`, `queued`, `running`, `succeeded`, `failed`, `skipped` or `stale`.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.customApiCells.additionalProperties.status","typeLabel":"enum\u003cstring>"},"lastErrorCode":{"oneOf":[{"description":"Why the last attempt failed, as a stable code; `null` when it did not.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.customApiCells.additionalProperties.lastErrorCode.oneOf.0","typeLabel":"string"},{"description":"Why the last attempt failed, as a stable code; `null` when it did not.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.customApiCells.additionalProperties.lastErrorCode.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.customApiCells.additionalProperties.lastErrorCode","typeLabel":"string | null"},"lastAppliedAt":{"oneOf":[{"description":"When a value was last written into the field, as an ISO 8601 instant.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.customApiCells.additionalProperties.lastAppliedAt.oneOf.0","typeLabel":"string"},{"description":"When a value was last written into the field, as an ISO 8601 instant.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.customApiCells.additionalProperties.lastAppliedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.customApiCells.additionalProperties.lastAppliedAt","typeLabel":"string | null"},"latestRunId":{"oneOf":[{"description":"The run that last worked on this cell; `null` when none has.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.customApiCells.additionalProperties.latestRunId.oneOf.0","typeLabel":"string"},{"description":"The run that last worked on this cell; `null` when none has.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.customApiCells.additionalProperties.latestRunId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.customApiCells.additionalProperties.latestRunId","typeLabel":"string | null"}},"required":["definitionId","fieldId","status","lastErrorCode","lastAppliedAt","latestRunId"],"additionalProperties":true,"description":"The state of one custom-API column for one record. The value is in its field.","uniqueKey":"results.items.[INDEX].oneOf.0.company.customApiCells.additionalProperties","typeLabel":"object"},"uniqueKey":"results.items.[INDEX].oneOf.0.company.customApiCells","typeLabel":"object"},"agentCells":{"description":"With `include=agentCells`: each agent column’s state, by column id.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"definitionId":{"type":"string","description":"The column’s id.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.agentCells.additionalProperties.definitionId","typeLabel":"string"},"fieldId":{"type":"string","description":"The custom field the column writes its value into.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.agentCells.additionalProperties.fieldId","typeLabel":"string"},"status":{"type":"string","enum":["empty","queued","running","succeeded","failed","skipped","stale"],"description":"Where the cell stands: `empty`, `queued`, `running`, `succeeded`, `failed`, `skipped` or `stale`.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.agentCells.additionalProperties.status","typeLabel":"enum\u003cstring>"},"lastErrorCode":{"oneOf":[{"description":"Why the last attempt failed, as a stable code; `null` when it did not.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.agentCells.additionalProperties.lastErrorCode.oneOf.0","typeLabel":"string"},{"description":"Why the last attempt failed, as a stable code; `null` when it did not.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.agentCells.additionalProperties.lastErrorCode.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.agentCells.additionalProperties.lastErrorCode","typeLabel":"string | null"},"lastAppliedAt":{"oneOf":[{"description":"When a value was last written into the field, as an ISO 8601 instant.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.agentCells.additionalProperties.lastAppliedAt.oneOf.0","typeLabel":"string"},{"description":"When a value was last written into the field, as an ISO 8601 instant.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.agentCells.additionalProperties.lastAppliedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.agentCells.additionalProperties.lastAppliedAt","typeLabel":"string | null"},"latestRunId":{"oneOf":[{"description":"The run that last worked on this cell; `null` when none has.","type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.agentCells.additionalProperties.latestRunId.oneOf.0","typeLabel":"string"},{"description":"The run that last worked on this cell; `null` when none has.","type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.agentCells.additionalProperties.latestRunId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company.agentCells.additionalProperties.latestRunId","typeLabel":"string | null"}},"required":["definitionId","fieldId","status","lastErrorCode","lastAppliedAt","latestRunId"],"additionalProperties":true,"description":"The state of one agent column for one record. The value is in its field.","uniqueKey":"results.items.[INDEX].oneOf.0.company.agentCells.additionalProperties","typeLabel":"object"},"uniqueKey":"results.items.[INDEX].oneOf.0.company.agentCells","typeLabel":"object"}},"required":["id","workspaceId","name","domain","website","industry","employeeCount","annualRevenue","address","linkedinUrl","country","ownerUserId","customFields","createdBy","updatedBy","createdAt","updatedAt","deletedAt","signalSummary"],"additionalProperties":true,"description":"The company as it is now.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.0.company","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"results.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"A bulk item that failed on its own.","required":["index","outcome","error"],"properties":{"index":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The item’s position in `items`, from 0.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.1.index","typeLabel":"integer"},"outcome":{"type":"string","const":"failed","description":"The item was not written; nothing changed for it.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.1.outcome","typeLabel":"string"},"error":{"type":"object","properties":{"code":{"type":"string","x-extensible-enum":["malformed_json","invalid_sort","unauthenticated","insufficient_scope","permission_denied","beta_access_required","not_a_member","not_found","method_not_allowed","conflict","stale_version","idempotency_key_reused","request_in_flight","company_twin_research_already_running","company_twin_own_domain_conflict","concurrent_run_limit","gone","payload_too_large","unsupported_media_type","validation_error","rate_limited","internal_error","response_contract_violation","service_unavailable"],"description":"A stable, machine-readable code such as `not_found`. Branch on this, not on `message`. The known values are every code a public operation answers; more may be added, so handle an unknown one by its HTTP status.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.1.error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation. It may change; do not parse it.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.1.error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request that failed. Quote it when you contact support.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.1.error.requestId","typeLabel":"string"},"details":{"description":"Structured detail for some codes. For `validation_error` it is usually an array with one entry per problem: `path` (the field, dotted), `message` and, where the case has a name, `code` (such as `related_record_not_found`). Other codes that cover several cases carry an object whose `code` names the case (such as `invalid_cursor`).","uniqueKey":"results.items.[INDEX].oneOf.1.error.details","typeLabel":"any"}},"required":["code","message","requestId"],"additionalProperties":true,"description":"Why, as the error envelope says it: the `code`, `message` and `details` the single call would have answered for this item, and the request’s `requestId`.","isRequired":true,"uniqueKey":"results.items.[INDEX].oneOf.1.error","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"results.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"results.items.[INDEX]","typeLabel":"object"},"description":"One result per item, in the order of `items`.","isRequired":true,"uniqueKey":"results","typeLabel":"object[]"},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"How many items created a record.","isRequired":true,"uniqueKey":"created","typeLabel":"integer"},"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"How many items updated a record.","isRequired":true,"uniqueKey":"updated","typeLabel":"integer"},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"How many items failed.","isRequired":true,"uniqueKey":"failed","typeLabel":"integer"}},"required":["results","created","updated","failed"],"additionalProperties":true,"description":"What a bulk write did, item by item.","uniqueKey":"","typeLabel":"object"},"example":{"results":[{"index":0,"outcome":"created","company":{"id":"0199a1b2-0000-7000-8000-00000000d101","workspaceId":"0199a1b2-0000-7000-8000-00000000b001","name":"Analytical Engines","domain":"example.com","website":"https://example.com","industry":"Software","employeeCount":120,"annualRevenue":12500000,"address":{"city":"Vienna","country":"AT"},"linkedinUrl":null,"country":"Austria","summary":"Builds engines that compute.","city":"Vienna","legalForm":"GmbH","registerNumber":"FN 123456a","buildingEnergyTags":null,"ownerUserId":"0199a1b2-0000-7000-8000-00000000c001","customFields":{"segment":"enterprise"},"canonicalCompanyId":null,"enrikUpdateAvailable":false,"enrikSnapshotVersion":null,"createdBy":"0199a1b2-0000-7000-8000-00000000c001","updatedBy":"0199a1b2-0000-7000-8000-00000000c001","createdAt":"2026-09-29T08:00:00.000Z","updatedAt":"2026-09-29T08:00:00.000Z","deletedAt":null,"signalSummary":null}},{"index":1,"outcome":"failed","error":{"code":"conflict","message":"More than one live company has this domain","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10","details":{"code":"ambiguous_domain","companyIds":["0199a1b2-0000-7000-8000-00000000d102","0199a1b2-0000-7000-8000-00000000d103"]}}}],"created":1,"updated":0,"failed":1},"examples":{"Example":{"title":"Example","value":{"results":[{"index":0,"outcome":"created","company":{"id":"0199a1b2-0000-7000-8000-00000000d101","workspaceId":"0199a1b2-0000-7000-8000-00000000b001","name":"Analytical Engines","domain":"example.com","website":"https://example.com","industry":"Software","employeeCount":120,"annualRevenue":12500000,"address":{"city":"Vienna","country":"AT"},"linkedinUrl":null,"country":"Austria","summary":"Builds engines that compute.","city":"Vienna","legalForm":"GmbH","registerNumber":"FN 123456a","buildingEnergyTags":null,"ownerUserId":"0199a1b2-0000-7000-8000-00000000c001","customFields":{"segment":"enterprise"},"canonicalCompanyId":null,"enrikUpdateAvailable":false,"enrikSnapshotVersion":null,"createdBy":"0199a1b2-0000-7000-8000-00000000c001","updatedBy":"0199a1b2-0000-7000-8000-00000000c001","createdAt":"2026-09-29T08:00:00.000Z","updatedAt":"2026-09-29T08:00:00.000Z","deletedAt":null,"signalSummary":null}},{"index":1,"outcome":"failed","error":{"code":"conflict","message":"More than one live company has this domain","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10","details":{"code":"ambiguous_domain","companyIds":["0199a1b2-0000-7000-8000-00000000d102","0199a1b2-0000-7000-8000-00000000d103"]}}}],"created":1,"updated":0,"failed":1}}},"exampleType":"examples"}},"exampleType":"examples"},"d21f4262-528d-4926-a6f9-e64080599c20":{"description":"The request could not be read. Branch on `error.code`; quote `error.requestId` to support.\n\nThe codes a public operation answers with it:\n\n- `malformed_json`: The body is not valid JSON, or is empty while `Content-Type` is `application/json`. Send valid JSON; omit `Content-Type` when there is no body.\n- `invalid_sort`: A sort names a field or direction the list does not support. Sort only by the fields the operation lists.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","x-extensible-enum":["malformed_json","invalid_sort","unauthenticated","insufficient_scope","permission_denied","beta_access_required","not_a_member","not_found","method_not_allowed","conflict","stale_version","idempotency_key_reused","request_in_flight","company_twin_research_already_running","company_twin_own_domain_conflict","concurrent_run_limit","gone","payload_too_large","unsupported_media_type","validation_error","rate_limited","internal_error","response_contract_violation","service_unavailable"],"description":"A stable, machine-readable code such as `not_found`. Branch on this, not on `message`. The known values are every code a public operation answers; more may be added, so handle an unknown one by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation. It may change; do not parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request that failed. Quote it when you contact support.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"description":"Structured detail for some codes. For `validation_error` it is usually an array with one entry per problem: `path` (the field, dotted), `message` and, where the case has a name, `code` (such as `related_record_not_found`). Other codes that cover several cases carry an object whose `code` names the case (such as `invalid_cursor`).","uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message","requestId"],"additionalProperties":true,"description":"What went wrong: the code to branch on, a message and the request id.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"description":"The body of every error response.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"malformed_json","message":"Bad Request","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"malformed_json","message":"Bad Request","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}}}},"exampleType":"examples"}},"exampleType":"examples"},"c0f6cb3f-7b37-4383-aa8a-23b249c9cf2d":{"description":"The request is not authenticated. Branch on `error.code`; quote `error.requestId` to support.\n\nThe codes a public operation answers with it:\n\n- `unauthenticated`: The key is missing, invalid, expired or revoked. Send a valid, unexpired key.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","x-extensible-enum":["malformed_json","invalid_sort","unauthenticated","insufficient_scope","permission_denied","beta_access_required","not_a_member","not_found","method_not_allowed","conflict","stale_version","idempotency_key_reused","request_in_flight","company_twin_research_already_running","company_twin_own_domain_conflict","concurrent_run_limit","gone","payload_too_large","unsupported_media_type","validation_error","rate_limited","internal_error","response_contract_violation","service_unavailable"],"description":"A stable, machine-readable code such as `not_found`. Branch on this, not on `message`. The known values are every code a public operation answers; more may be added, so handle an unknown one by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation. It may change; do not parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request that failed. Quote it when you contact support.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"description":"Structured detail for some codes. For `validation_error` it is usually an array with one entry per problem: `path` (the field, dotted), `message` and, where the case has a name, `code` (such as `related_record_not_found`). Other codes that cover several cases carry an object whose `code` names the case (such as `invalid_cursor`).","uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message","requestId"],"additionalProperties":true,"description":"What went wrong: the code to branch on, a message and the request id.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"description":"The body of every error response.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"unauthenticated","message":"Unauthorized","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unauthenticated","message":"Unauthorized","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}}}},"exampleType":"examples"}},"exampleType":"examples"},"db25449f-db6c-4277-b2aa-9bb18c47397d":{"description":"The caller may not do this. Branch on `error.code`; quote `error.requestId` to support.\n\nThe codes a public operation answers with it:\n\n- `insufficient_scope`: The key lacks a scope the operation, or a parameter such as `include` or `rankingMode`, needs. `details.missingScopes` names it; `WWW-Authenticate` lists every scope the request needs. Create a key with the missing scope.\n- `permission_denied`: The key’s scopes admit the operation, but its permissions do not cover this request: replaying a create needs `crm:read`, and a key keeps the permissions its scopes had when it was created. The message names the scope. Create a new key with the scope the message names.\n- `beta_access_required`: The workspace is not admitted to the beta, which every write except `feedback.submit` needs. Contact support.\n- `not_a_member`: `websiteOnboarding.getAccess`: the key’s workspace has been deleted. Use a key of a live workspace.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","x-extensible-enum":["malformed_json","invalid_sort","unauthenticated","insufficient_scope","permission_denied","beta_access_required","not_a_member","not_found","method_not_allowed","conflict","stale_version","idempotency_key_reused","request_in_flight","company_twin_research_already_running","company_twin_own_domain_conflict","concurrent_run_limit","gone","payload_too_large","unsupported_media_type","validation_error","rate_limited","internal_error","response_contract_violation","service_unavailable"],"description":"A stable, machine-readable code such as `not_found`. Branch on this, not on `message`. The known values are every code a public operation answers; more may be added, so handle an unknown one by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation. It may change; do not parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request that failed. Quote it when you contact support.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"description":"Structured detail for some codes. For `validation_error` it is usually an array with one entry per problem: `path` (the field, dotted), `message` and, where the case has a name, `code` (such as `related_record_not_found`). Other codes that cover several cases carry an object whose `code` names the case (such as `invalid_cursor`).","uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message","requestId"],"additionalProperties":true,"description":"What went wrong: the code to branch on, a message and the request id.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"description":"The body of every error response.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"insufficient_scope","message":"Forbidden","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"insufficient_scope","message":"Forbidden","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}}}},"exampleType":"examples"}},"exampleType":"examples"},"15b70873-9c21-471e-8968-4dccf12b4877":{"description":"The request conflicts with the current state. Branch on `error.code`; quote `error.requestId` to support.\n\nThe codes a public operation answers with it:\n\n- `conflict`: The request clashes with the current state, such as a duplicate domain or e-mail, a changed setup or a ranked list that changed. `details.code` names the case where there is one. Read fresh state, then decide.\n- `stale_version`: The record changed since the `expectedUpdatedAt` you sent. `details.currentUpdatedAt` is its current version. Read the record again and reapply your change.\n- `idempotency_key_reused`: The `Idempotency-Key` was used for a different command or body. Use a new key for a new command.\n- `request_in_flight`: The first request with this `Idempotency-Key` is still running. Retry shortly with the same key.\n- `company_twin_research_already_running`: `websiteOnboarding.confirmProfile`: research for this setup or website is already running. Read fresh setup state.\n- `company_twin_own_domain_conflict`: `websiteOnboarding.confirmProfile`: the website does not match the workspace’s company profile. Read fresh setup state, then confirm the profile with its own website.\n- `concurrent_run_limit`: `companyDiscoveryJobs.start` by an API key: the workspace already has as many discovery jobs queued or running as a key may start beside. `details.code` names the cap. Wait for a job to finish, or cancel one, then start again.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","x-extensible-enum":["malformed_json","invalid_sort","unauthenticated","insufficient_scope","permission_denied","beta_access_required","not_a_member","not_found","method_not_allowed","conflict","stale_version","idempotency_key_reused","request_in_flight","company_twin_research_already_running","company_twin_own_domain_conflict","concurrent_run_limit","gone","payload_too_large","unsupported_media_type","validation_error","rate_limited","internal_error","response_contract_violation","service_unavailable"],"description":"A stable, machine-readable code such as `not_found`. Branch on this, not on `message`. The known values are every code a public operation answers; more may be added, so handle an unknown one by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation. It may change; do not parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request that failed. Quote it when you contact support.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"description":"Structured detail for some codes. For `validation_error` it is usually an array with one entry per problem: `path` (the field, dotted), `message` and, where the case has a name, `code` (such as `related_record_not_found`). Other codes that cover several cases carry an object whose `code` names the case (such as `invalid_cursor`).","uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message","requestId"],"additionalProperties":true,"description":"What went wrong: the code to branch on, a message and the request id.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"description":"The body of every error response.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"conflict","message":"Conflict","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"conflict","message":"Conflict","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}}}},"exampleType":"examples"}},"exampleType":"examples"},"36692881-3f58-4007-b34c-ebeb2e47c772":{"description":"The body is over the size limit. Branch on `error.code`; quote `error.requestId` to support.\n\nThe codes a public operation answers with it:\n\n- `payload_too_large`: The body is over the size limit, currently 1 MiB. Send a smaller body.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","x-extensible-enum":["malformed_json","invalid_sort","unauthenticated","insufficient_scope","permission_denied","beta_access_required","not_a_member","not_found","method_not_allowed","conflict","stale_version","idempotency_key_reused","request_in_flight","company_twin_research_already_running","company_twin_own_domain_conflict","concurrent_run_limit","gone","payload_too_large","unsupported_media_type","validation_error","rate_limited","internal_error","response_contract_violation","service_unavailable"],"description":"A stable, machine-readable code such as `not_found`. Branch on this, not on `message`. The known values are every code a public operation answers; more may be added, so handle an unknown one by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation. It may change; do not parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request that failed. Quote it when you contact support.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"description":"Structured detail for some codes. For `validation_error` it is usually an array with one entry per problem: `path` (the field, dotted), `message` and, where the case has a name, `code` (such as `related_record_not_found`). Other codes that cover several cases carry an object whose `code` names the case (such as `invalid_cursor`).","uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message","requestId"],"additionalProperties":true,"description":"What went wrong: the code to branch on, a message and the request id.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"description":"The body of every error response.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"payload_too_large","message":"Payload Too Large","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"payload_too_large","message":"Payload Too Large","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}}}},"exampleType":"examples"}},"exampleType":"examples"},"900dc552-71f2-4019-9c6e-6f78f15aa0e3":{"description":"The body’s media type cannot be read. Branch on `error.code`; quote `error.requestId` to support.\n\nThe codes a public operation answers with it:\n\n- `unsupported_media_type`: The `Content-Type` header is not a media type. Send `Content-Type: application/json`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","x-extensible-enum":["malformed_json","invalid_sort","unauthenticated","insufficient_scope","permission_denied","beta_access_required","not_a_member","not_found","method_not_allowed","conflict","stale_version","idempotency_key_reused","request_in_flight","company_twin_research_already_running","company_twin_own_domain_conflict","concurrent_run_limit","gone","payload_too_large","unsupported_media_type","validation_error","rate_limited","internal_error","response_contract_violation","service_unavailable"],"description":"A stable, machine-readable code such as `not_found`. Branch on this, not on `message`. The known values are every code a public operation answers; more may be added, so handle an unknown one by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation. It may change; do not parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request that failed. Quote it when you contact support.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"description":"Structured detail for some codes. For `validation_error` it is usually an array with one entry per problem: `path` (the field, dotted), `message` and, where the case has a name, `code` (such as `related_record_not_found`). Other codes that cover several cases carry an object whose `code` names the case (such as `invalid_cursor`).","uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message","requestId"],"additionalProperties":true,"description":"What went wrong: the code to branch on, a message and the request id.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"description":"The body of every error response.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"unsupported_media_type","message":"Unsupported Media Type","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unsupported_media_type","message":"Unsupported Media Type","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}}}},"exampleType":"examples"}},"exampleType":"examples"},"b5c18ac4-0d35-47d3-83a9-8568b5051b69":{"description":"The request cannot be used as sent. Branch on `error.code`; quote `error.requestId` to support.\n\nThe codes a public operation answers with it:\n\n- `validation_error`: The request does not match the operation’s schema, a field names something that does not exist, or a value cannot be used, such as an id that is not a UUID, a date outside the years 0001–9999 in a filter, or an edited cursor. See `details`. Fix the request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","x-extensible-enum":["malformed_json","invalid_sort","unauthenticated","insufficient_scope","permission_denied","beta_access_required","not_a_member","not_found","method_not_allowed","conflict","stale_version","idempotency_key_reused","request_in_flight","company_twin_research_already_running","company_twin_own_domain_conflict","concurrent_run_limit","gone","payload_too_large","unsupported_media_type","validation_error","rate_limited","internal_error","response_contract_violation","service_unavailable"],"description":"A stable, machine-readable code such as `not_found`. Branch on this, not on `message`. The known values are every code a public operation answers; more may be added, so handle an unknown one by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation. It may change; do not parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request that failed. Quote it when you contact support.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"description":"Structured detail for some codes. For `validation_error` it is usually an array with one entry per problem: `path` (the field, dotted), `message` and, where the case has a name, `code` (such as `related_record_not_found`). Other codes that cover several cases carry an object whose `code` names the case (such as `invalid_cursor`).","uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message","requestId"],"additionalProperties":true,"description":"What went wrong: the code to branch on, a message and the request id.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"description":"The body of every error response.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"validation_error","message":"Unprocessable Entity","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"validation_error","message":"Unprocessable Entity","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}}}},"exampleType":"examples"}},"exampleType":"examples"},"36ea3b1a-8239-47f2-a791-f4b88d0977dd":{"description":"Too many requests (`error.code` is `rate_limited`): the API key spent a rate-limit policy, or the network it calls from presented too many invalid keys. Wait `Retry-After` seconds before retrying; it takes priority over `RateLimit`.","headers":{"Retry-After":{"description":"Seconds to wait before retrying. It takes priority over the `t` of every `RateLimit` item.","schema":{"type":"integer","minimum":1},"example":60},"RateLimit":{"description":"What the API key has left under each rate-limit policy that counted this request: a Structured Field list with one `\"\u003cpolicy>\";r=\u003cremaining>;t=\u003cseconds>` item per policy. Read it as a list and honour every item, not only the smallest: continued traffic must satisfy each policy. `t` is the effective window in seconds (IETF RateLimit header fields, draft 11): quota is not guaranteed to be fully restored when it ends. When the answer also carries `Retry-After`, that takes priority. This operation writes many records in one request, so two policies count it: `api-key`, every request the key makes, and `api-key-bulk`, every request to a bulk operation.","schema":{"type":"string"},"example":"\"api-key\";r=599;t=60, \"api-key-bulk\";r=29;t=60"},"RateLimit-Policy":{"description":"The rate-limit policies that counted this request: a Structured Field list with one `\"\u003cpolicy>\";q=\u003crequests>;w=\u003cwindow in seconds>` item per policy. The limits belong to the key, not to the address it calls from. This operation writes many records in one request, so two policies count it: `api-key`, every request the key makes, and `api-key-bulk`, every request to a bulk operation.","schema":{"type":"string"},"example":"\"api-key\";q=600;w=60, \"api-key-bulk\";q=30;w=60"}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","x-extensible-enum":["malformed_json","invalid_sort","unauthenticated","insufficient_scope","permission_denied","beta_access_required","not_a_member","not_found","method_not_allowed","conflict","stale_version","idempotency_key_reused","request_in_flight","company_twin_research_already_running","company_twin_own_domain_conflict","concurrent_run_limit","gone","payload_too_large","unsupported_media_type","validation_error","rate_limited","internal_error","response_contract_violation","service_unavailable"],"description":"A stable, machine-readable code such as `not_found`. Branch on this, not on `message`. The known values are every code a public operation answers; more may be added, so handle an unknown one by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation. It may change; do not parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request that failed. Quote it when you contact support.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"description":"Structured detail for some codes. For `validation_error` it is usually an array with one entry per problem: `path` (the field, dotted), `message` and, where the case has a name, `code` (such as `related_record_not_found`). Other codes that cover several cases carry an object whose `code` names the case (such as `invalid_cursor`).","uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message","requestId"],"additionalProperties":true,"description":"What went wrong: the code to branch on, a message and the request id.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"description":"The body of every error response.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"rate_limited","message":"Too many requests","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"rate_limited","message":"Too many requests","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}}}},"exampleType":"examples"}},"exampleType":"examples"},"0613cb95-0ff8-436b-9f16-a05ef4623253":{"description":"The request failed on the server. Branch on `error.code`; quote `error.requestId` to support.\n\nThe codes a public operation answers with it:\n\n- `internal_error`: Something failed on our side. Retry later; reuse a command’s idempotency key.\n- `response_contract_violation`: Our answer broke its own schema, so it was withheld. `details.committed` says whether a change was saved. If `committed` is true, read the state instead of resending. Quote the request id.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","x-extensible-enum":["malformed_json","invalid_sort","unauthenticated","insufficient_scope","permission_denied","beta_access_required","not_a_member","not_found","method_not_allowed","conflict","stale_version","idempotency_key_reused","request_in_flight","company_twin_research_already_running","company_twin_own_domain_conflict","concurrent_run_limit","gone","payload_too_large","unsupported_media_type","validation_error","rate_limited","internal_error","response_contract_violation","service_unavailable"],"description":"A stable, machine-readable code such as `not_found`. Branch on this, not on `message`. The known values are every code a public operation answers; more may be added, so handle an unknown one by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation. It may change; do not parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request that failed. Quote it when you contact support.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"description":"Structured detail for some codes. For `validation_error` it is usually an array with one entry per problem: `path` (the field, dotted), `message` and, where the case has a name, `code` (such as `related_record_not_found`). Other codes that cover several cases carry an object whose `code` names the case (such as `invalid_cursor`).","uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message","requestId"],"additionalProperties":true,"description":"What went wrong: the code to branch on, a message and the request id.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"description":"The body of every error response.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"internal_error","message":"Internal Server Error","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"internal_error","message":"Internal Server Error","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}}}},"exampleType":"examples"}},"exampleType":"examples"},"3d6a3e68-3371-4558-9898-dbe1820e0b76":{"description":"The service is briefly unavailable. Branch on `error.code`; quote `error.requestId` to support.\n\nThe codes a public operation answers with it:\n\n- `service_unavailable`: A create ran out of time, or the service is briefly unavailable. Retry later with the same idempotency key.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","x-extensible-enum":["malformed_json","invalid_sort","unauthenticated","insufficient_scope","permission_denied","beta_access_required","not_a_member","not_found","method_not_allowed","conflict","stale_version","idempotency_key_reused","request_in_flight","company_twin_research_already_running","company_twin_own_domain_conflict","concurrent_run_limit","gone","payload_too_large","unsupported_media_type","validation_error","rate_limited","internal_error","response_contract_violation","service_unavailable"],"description":"A stable, machine-readable code such as `not_found`. Branch on this, not on `message`. The known values are every code a public operation answers; more may be added, so handle an unknown one by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation. It may change; do not parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request that failed. Quote it when you contact support.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"description":"Structured detail for some codes. For `validation_error` it is usually an array with one entry per problem: `path` (the field, dotted), `message` and, where the case has a name, `code` (such as `related_record_not_found`). Other codes that cover several cases carry an object whose `code` names the case (such as `invalid_cursor`).","uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message","requestId"],"additionalProperties":true,"description":"What went wrong: the code to branch on, a message and the request id.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"description":"The body of every error response.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"service_unavailable","message":"Service Unavailable","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"service_unavailable","message":"Service Unavailable","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}}}},"exampleType":"examples"}},"exampleType":"examples"},"23805417-4f8d-4400-bf5d-a4cc20fd7435":{"description":"The request failed. Branch on `error.code`; quote `error.requestId` to support.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","x-extensible-enum":["malformed_json","invalid_sort","unauthenticated","insufficient_scope","permission_denied","beta_access_required","not_a_member","not_found","method_not_allowed","conflict","stale_version","idempotency_key_reused","request_in_flight","company_twin_research_already_running","company_twin_own_domain_conflict","concurrent_run_limit","gone","payload_too_large","unsupported_media_type","validation_error","rate_limited","internal_error","response_contract_violation","service_unavailable"],"description":"A stable, machine-readable code such as `not_found`. Branch on this, not on `message`. The known values are every code a public operation answers; more may be added, so handle an unknown one by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation. It may change; do not parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request that failed. Quote it when you contact support.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"description":"Structured detail for some codes. For `validation_error` it is usually an array with one entry per problem: `path` (the field, dotted), `message` and, where the case has a name, `code` (such as `related_record_not_found`). Other codes that cover several cases carry an object whose `code` names the case (such as `invalid_cursor`).","uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message","requestId"],"additionalProperties":true,"description":"What went wrong: the code to branch on, a message and the request id.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":true,"description":"The body of every error response.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"not_found","message":"Not found","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Not found","requestId":"5b1d3c1e-8d6f-4f2a-9a57-3a9b1f2c7d10"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"7fc95797-b61b-4131-8c0e-f240c1c23646":{"apiKey":{"type":"http","scheme":"bearer","description":"An Enrik API key, sent as `Authorization: Bearer \u003ckey>`. A key reaches public operations only, and only those whose scopes it holds. A few parameters need a scope beyond their operation’s, which the parameter names. The scopes:\n\n- `setup:read`: Read the workspace setup and its company profile.\n- `setup:run`: Change the setup: confirm the company profile, authorize sponsored drafting and background company research, choose what to set up and complete setup.\n- `workspace:read`: Read the workspace’s own profile: its health summary and setup state.\n- `crm:read`: Read companies with their signals, contacts and the saved views over them.\n- `crm:write`: Create, update and restore companies and contacts, and create, update and delete saved views.\n- `crm:delete`: Delete companies and contacts.\n- `twin:read`: Read the Company Twin: structured company knowledge and its signals.\n- `discovery:read`: Read ICP profiles, ICP assessments, discovery briefs, discovery jobs, candidates and the signal library.\n- `discovery:write`: Create and change ICP profiles, discovery briefs and signal-definition drafts, and review discovery candidates.\n- `discovery:run`: Create, start and cancel discovery jobs, and edit a draft one. Uses provider budget.\n- `enrichment:read`: Read the enrichment configuration and its results, including a record’s enrichment, formula and custom-API cells.\n- `enrichment:run`: Launch and cancel enrichment. Spends enrichment credits.\n- `automation:read`: Read workflows and agents with their run history, including a record’s agent cells.\n- `automation:run`: Run existing workflows and agents.\n- `exports:read`: Read export jobs and the fields an export can carry.\n- `exports:run`: Create, preview, start, cancel and archive CSV exports of companies, contacts and candidates, and download the file. Also needs `crm:read`. Delivering an export to a webhook destination stays in the app.\n- `integrations:read`: Read connections, field mappings, CRM sync jobs and webhook destinations.\n- `webhooks:read`: Read webhook subscriptions, the event types they can name and their delivery log.\n- `webhooks:write`: Subscribe a receiver URL to webhook events; edit, test, pause, resume and archive a subscription and rotate its signing secret; redeliver an event. Only workspace owners and admins can grant it.\n- `reporting:read`: Read analytics and dashboards.\n- `assistant:read`: Read the Assistant: its threads, messages and pending approvals.\n- `assistant:run`: Converse with the Assistant. Uses the workspace’s AI quota.\n- `assistant:write`: Approve or reject the changes the Assistant proposes.","scopes":["crm:write"],"schemeName":"apiKey"}}},"servers":{"d4b75ac2-20fc-4060-84ae-9370689f03ae":{"url":"https://api.enrik.ai","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An Enrik API key, sent as `Authorization: Bearer \u003ckey>`. A key reaches public operations only, and only those whose scopes it holds. A few parameters need a scope beyond their operation’s, which the parameter names. The scopes:\n\n- `setup:read`: Read the workspace setup and its company profile.\n- `setup:run`: Change the setup: confirm the company profile, authorize sponsored drafting and background company research, choose what to set up and complete setup.\n- `workspace:read`: Read the workspace’s own profile: its health summary and setup state.\n- `crm:read`: Read companies with their signals, contacts and the saved views over them.\n- `crm:write`: Create, update and restore companies and contacts, and create, update and delete saved views.\n- `crm:delete`: Delete companies and contacts.\n- `twin:read`: Read the Company Twin: structured company knowledge and its signals.\n- `discovery:read`: Read ICP profiles, ICP assessments, discovery briefs, discovery jobs, candidates and the signal library.\n- `discovery:write`: Create and change ICP profiles, discovery briefs and signal-definition drafts, and review discovery candidates.\n- `discovery:run`: Create, start and cancel discovery jobs, and edit a draft one. Uses provider budget.\n- `enrichment:read`: Read the enrichment configuration and its results, including a record’s enrichment, formula and custom-API cells.\n- `enrichment:run`: Launch and cancel enrichment. Spends enrichment credits.\n- `automation:read`: Read workflows and agents with their run history, including a record’s agent cells.\n- `automation:run`: Run existing workflows and agents.\n- `exports:read`: Read export jobs and the fields an export can carry.\n- `exports:run`: Create, preview, start, cancel and archive CSV exports of companies, contacts and candidates, and download the file. Also needs `crm:read`. Delivering an export to a webhook destination stays in the app.\n- `integrations:read`: Read connections, field mappings, CRM sync jobs and webhook destinations.\n- `webhooks:read`: Read webhook subscriptions, the event types they can name and their delivery log.\n- `webhooks:write`: Subscribe a receiver URL to webhook events; edit, test, pause, resume and archive a subscription and rotate its signing secret; redeliver an event. Only workspace owners and admins can grant it.\n- `reporting:read`: Read analytics and dashboards.\n- `assistant:read`: Read the Assistant: its threads, messages and pending approvals.\n- `assistant:run`: Converse with the Assistant. Uses the workspace’s AI quota.\n- `assistant:write`: Approve or reject the changes the Assistant proposes.","scopes":["crm:write"],"schemeName":"apiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An Enrik API key, sent as `Authorization: Bearer \u003ckey>`. A key reaches public operations only, and only those whose scopes it holds. A few parameters need a scope beyond their operation’s, which the parameter names. The scopes:\n\n- `setup:read`: Read the workspace setup and its company profile.\n- `setup:run`: Change the setup: confirm the company profile, authorize sponsored drafting and background company research, choose what to set up and complete setup.\n- `workspace:read`: Read the workspace’s own profile: its health summary and setup state.\n- `crm:read`: Read companies with their signals, contacts and the saved views over them.\n- `crm:write`: Create, update and restore companies and contacts, and create, update and delete saved views.\n- `crm:delete`: Delete companies and contacts.\n- `twin:read`: Read the Company Twin: structured company knowledge and its signals.\n- `discovery:read`: Read ICP profiles, ICP assessments, discovery briefs, discovery jobs, candidates and the signal library.\n- `discovery:write`: Create and change ICP profiles, discovery briefs and signal-definition drafts, and review discovery candidates.\n- `discovery:run`: Create, start and cancel discovery jobs, and edit a draft one. Uses provider budget.\n- `enrichment:read`: Read the enrichment configuration and its results, including a record’s enrichment, formula and custom-API cells.\n- `enrichment:run`: Launch and cancel enrichment. Spends enrichment credits.\n- `automation:read`: Read workflows and agents with their run history, including a record’s agent cells.\n- `automation:run`: Run existing workflows and agents.\n- `exports:read`: Read export jobs and the fields an export can carry.\n- `exports:run`: Create, preview, start, cancel and archive CSV exports of companies, contacts and candidates, and download the file. Also needs `crm:read`. Delivering an export to a webhook destination stays in the app.\n- `integrations:read`: Read connections, field mappings, CRM sync jobs and webhook destinations.\n- `webhooks:read`: Read webhook subscriptions, the event types they can name and their delivery log.\n- `webhooks:write`: Subscribe a receiver URL to webhook events; edit, test, pause, resume and archive a subscription and rotate its signing secret; redeliver an event. Only workspace owners and admins can grant it.\n- `reporting:read`: Read analytics and dashboards.\n- `assistant:read`: Read the Assistant: its threads, messages and pending approvals.\n- `assistant:run`: Converse with the Assistant. Uses the workspace’s AI quota.\n- `assistant:write`: Approve or reject the changes the Assistant proposes.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"https://api.enrik.ai/v1/openapi.json"},"subdomain":"enrik","siteName":"Enrik","title":"Create or update up to 100 companies by domain - Enrik","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-09T15:59:55.345Z","originalFileLocation":"api-reference/companies/create-or-update-up-to-100-companies-by-domain.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Creates or updates up to 100 companies, each found by its domain as companies.upsert finds it: a company created needs name (else the item fails with validation_error at name), and a domain more than one live company has fails the item with conflict, details.code ambiguous_domain. The body is checked as a whole first: a malformed item refuses the request with 422 validation_error at its path, such as items.3.name, and nothing is written. Then the items run one after another, each in its own transaction, so one that fails leaves the others written. The answer is 200 with one result per item, in order, and the counts: a written item has outcome created or updated and the record; a failed one has outcome failed and an error in the error envelope’s shape, with the code and details the single upsert would have answered. Every item is keyed by its natural key, so sending the same body again is harmless: no Idempotency-Key is taken, and a failed request or failed items can simply be sent again. A request counts against the api-key-bulk rate-limit policy as well as api-key.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Enrik\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/svg+xml\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/enrik/favicon.svg\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/enrik/favicon.svg\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/enrik/favicon.svg\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/enrik/favicon.svg\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create or update up to 100 companies by domain - Enrik\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates or updates up to 100 companies, each found by its domain as companies.upsert finds it: a company created needs name (else the item fails with validation_error at name), and a domain more than one live company has fails the item with conflict, details.code ambiguous_domain. The body is checked as a whole first: a malformed item refuses the request with 422 validation_error at its path, such as items.3.name, and nothing is written. Then the items run one after another, each in its own transaction, so one that fails leaves the others written. The answer is 200 with one result per item, in order, and the counts: a written item has outcome created or updated and the record; a failed one has outcome failed and an error in the error envelope’s shape, with the code and details the single upsert would have answered. Every item is keyed by its natural key, so sending the same body again is harmless: no Idempotency-Key is taken, and a failed request or failed items can simply be sent again. A request counts against the api-key-bulk rate-limit policy as well as api-key.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Enrik\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.enrik.ai/api-reference/companies/create-or-update-up-to-100-companies-by-domain\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://enrik.mintlify.site/_mintlify/api/og/v2?division=companies\u0026amp;title=Create+or+update+up+to+100+companies+by+domain\u0026amp;description=Creates+or+updates+up+to+100+companies%2C+each+found+by+its+%60domain%60+as+%60companies.upsert%60+finds+it%3A+a+company+created+needs+%60name%60+%28else+the+item+fails+with+%60val\u0026amp;theme=1a1b5b8bdbe71a79282f5f36\u0026amp;signature=a2b2177e713d6c414dbd7b30410d4886a0b862b0585cfd2025c074f2a71f193e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create or update up to 100 companies by domain - Enrik\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates or updates up to 100 companies, each found by its domain as companies.upsert finds it: a company created needs name (else the item fails with validation_error at name), and a domain more than one live company has fails the item with conflict, details.code ambiguous_domain. The body is checked as a whole first: a malformed item refuses the request with 422 validation_error at its path, such as items.3.name, and nothing is written. Then the items run one after another, each in its own transaction, so one that fails leaves the others written. The answer is 200 with one result per item, in order, and the counts: a written item has outcome created or updated and the record; a failed one has outcome failed and an error in the error envelope’s shape, with the code and details the single upsert would have answered. Every item is keyed by its natural key, so sending the same body again is harmless: no Idempotency-Key is taken, and a failed request or failed items can simply be sent again. A request counts against the api-key-bulk rate-limit policy as well as api-key.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://enrik.mintlify.site/_mintlify/api/og/v2?division=companies\u0026amp;title=Create+or+update+up+to+100+companies+by+domain\u0026amp;description=Creates+or+updates+up+to+100+companies%2C+each+found+by+its+%60domain%60+as+%60companies.upsert%60+finds+it%3A+a+company+created+needs+%60name%60+%28else+the+item+fails+with+%60val\u0026amp;theme=1a1b5b8bdbe71a79282f5f36\u0026amp;signature=a2b2177e713d6c414dbd7b30410d4886a0b862b0585cfd2025c074f2a71f193e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/enrik/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Enrik\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4f46e5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.enrik.ai/api-reference/companies/create-or-update-up-to-100-companies-by-domain\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/companies/create-or-update-up-to-100-companies-by-domain.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.enrik.ai/#organization\",\"name\":\"Enrik\",\"url\":\"https://docs.enrik.ai\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.enrik.ai#website\",\"name\":\"Enrik\",\"url\":\"https://docs.enrik.ai\",\"publisher\":{\"@id\":\"https://docs.enrik.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.enrik.ai/api-reference/companies/create-or-update-up-to-100-companies-by-domain#webpage\",\"url\":\"https://docs.enrik.ai/api-reference/companies/create-or-update-up-to-100-companies-by-domain\",\"name\":\"Create or update up to 100 companies by domain\",\"description\":\"Creates or updates up to 100 companies, each found by its domain as companies.upsert finds it: a company created needs name (else the item fails with validation_error at name), and a domain more than one live company has fails the item with conflict, details.code ambiguous_domain. The body is checked as a whole first: a malformed item refuses the request with 422 validation_error at its path, such as items.3.name, and nothing is written. Then the items run one after another, each in its own transaction, so one that fails leaves the others written. The answer is 200 with one result per item, in order, and the counts: a written item has outcome created or updated and the record; a failed one has outcome failed and an error in the error envelope’s shape, with the code and details the single upsert would have answered. Every item is keyed by its natural key, so sending the same body again is harmless: no Idempotency-Key is taken, and a failed request or failed items can simply be sent again. A request counts against the api-key-bulk rate-limit policy as well as api-key.\",\"dateModified\":\"2026-10-09T15:59:55.345Z\",\"isPartOf\":{\"@id\":\"https://docs.enrik.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.enrik.ai/api-reference/companies/create-or-update-up-to-100-companies-by-domain#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.enrik.ai/api-reference/companies/create-or-update-up-to-100-companies-by-domain#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API reference\",\"item\":\"https://docs.enrik.ai/api-reference/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Endpoints\",\"item\":\"https://docs.enrik.ai/api-reference/companies/list-companies\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"companies\",\"item\":\"https://docs.enrik.ai/api-reference/companies/list-companies\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Create or update up to 100 companies by domain\",\"item\":\"https://docs.enrik.ai/api-reference/companies/create-or-update-up-to-100-companies-by-domain\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.enrik.ai/api-reference/companies/create-or-update-up-to-100-companies-by-domain#apireference\",\"headline\":\"Create or update up to 100 companies by domain\",\"name\":\"Create or update up to 100 companies by domain\",\"description\":\"Creates or updates up to 100 companies, each found by its domain as companies.upsert finds it: a company created needs name (else the item fails with validation_error at name), and a domain more than one live company has fails the item with conflict, details.code ambiguous_domain. The body is checked as a whole first: a malformed item refuses the request with 422 validation_error at its path, such as items.3.name, and nothing is written. Then the items run one after another, each in its own transaction, so one that fails leaves the others written. The answer is 200 with one result per item, in order, and the counts: a written item has outcome created or updated and the record; a failed one has outcome failed and an error in the error envelope’s shape, with the code and details the single upsert would have answered. Every item is keyed by its natural key, so sending the same body again is harmless: no Idempotency-Key is taken, and a failed request or failed items can simply be sent again. A request counts against the api-key-bulk rate-limit policy as well as api-key.\",\"url\":\"https://docs.enrik.ai/api-reference/companies/create-or-update-up-to-100-companies-by-domain\",\"mainEntityOfPage\":{\"@id\":\"https://docs.enrik.ai/api-reference/companies/create-or-update-up-to-100-companies-by-domain#webpage\"},\"dateModified\":\"2026-10-09T15:59:55.345Z\",\"publisher\":{\"@id\":\"https://docs.enrik.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.enrik.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Enrik\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Enrik","nav":{"global":null,"groups":[{"group":"Get started","pages":[{"title":"Getting started","href":"/index"},{"title":"Create your workspace","href":"/create-your-workspace"}]},{"group":"Find and qualify companies","pages":[{"title":"Define your ICP","href":"/define-your-icp"},{"title":"Create a source","href":"/create-a-source"},{"title":"Review candidates","href":"/review-candidates"},{"title":"Promote companies","href":"/promote-companies"}]},{"group":"Enrich and act","pages":[{"title":"Run enrichment","href":"/run-enrichment"},{"title":"Use signals","href":"/use-signals"},{"title":"Create activation assets","href":"/create-activation-assets"},{"title":"Export data","href":"/export-data"},{"title":"Sync to HubSpot","href":"/sync-hubspot"}]},{"group":"Power features","pages":[{"title":"Use the Assistant","href":"/use-copilot"},{"title":"Formula columns","href":"/formula-columns"},{"title":"Custom API columns","href":"/custom-api-columns"},{"title":"Workflows","href":"/workflows"},{"title":"AI agents","href":"/ai-agents"}]},{"group":"Account and trust","pages":[{"title":"Billing \u0026 the free trial","href":"/billing-and-trial"},{"title":"Security \u0026 data handling","href":"/security-and-data-handling"},{"title":"FAQ","href":"/faq"}]},{"group":"API reference","pages":[{"title":"Authentication and quick start","href":"/api-reference/introduction"},{"title":"Set up Enrik with an agent","href":"/api-reference/agent-setup"},{"title":"Send feedback about the API","href":"/api-reference/feedback"},{"title":"Versioning and deprecation","href":"/api-reference/versioning"},{"title":"Changelog","href":"/api-reference/changelog"},{"group":"Endpoints","pages":[{"group":"companies","pages":[{"title":"List companies","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/companies","href":"/api-reference/companies/list-companies"},{"title":"Create a company","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/companies","href":"/api-reference/companies/create-a-company"},{"title":"Create up to 100 companies","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/companies/bulk-create","href":"/api-reference/companies/create-up-to-100-companies"},{"title":"Update up to 100 companies","description":"Changes up to 100 companies, each item the body `companies.update` takes plus the `id` of the record to change. The body is checked as a whole first: a malformed item refuses the request with 422 `validation_error` at its path, such as `items.3.name`, and nothing is written. Then the items run one after another, each in its own transaction, so one that fails leaves the others written: an `id` that is not a live record of the workspace fails with `not_found`, and an `expectedUpdatedAt` the record has changed since fails with `stale_version`, nothing written for it. The answer is 200 with one result per item, in order, and the counts: a written item has `outcome` `updated` and the record; a failed one has `outcome` `failed` and an `error` in the error envelope’s shape, with the code and details `companies.update` would have answered. Like `companies.update`, it takes no `Idempotency-Key`: sending the same body again is harmless, though an item sent with `expectedUpdatedAt` then fails with `stale_version` when the first request changed the record. A request counts against the `api-key-bulk` rate-limit policy as well as `api-key`.","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/companies/bulk-update","href":"/api-reference/companies/update-up-to-100-companies"},{"title":"Create or update up to 100 companies by domain","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/companies/bulk-upsert","href":"/api-reference/companies/create-or-update-up-to-100-companies-by-domain"},{"title":"List deleted companies","description":"Pages through the workspace’s deleted companies, most recently deleted first. A deleted company can be restored.","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/companies/trash","href":"/api-reference/companies/list-deleted-companies"},{"title":"Create or update a company by domain","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/companies/upsert","href":"/api-reference/companies/create-or-update-a-company-by-domain"},{"title":"Get a company","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/companies/{companyId}","href":"/api-reference/companies/get-a-company"},{"title":"Delete a company","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json delete /v1/companies/{companyId}","href":"/api-reference/companies/delete-a-company"},{"title":"Update a company","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json patch /v1/companies/{companyId}","href":"/api-reference/companies/update-a-company"},{"title":"List a company’s contacts","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/companies/{companyId}/contacts","href":"/api-reference/companies/list-a-company’s-contacts"},{"title":"Get where a company’s fields came from","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/companies/{companyId}/provenance","href":"/api-reference/companies/get-where-a-company’s-fields-came-from"},{"title":"Restore a deleted company","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/companies/{companyId}/restore","href":"/api-reference/companies/restore-a-deleted-company"},{"title":"Get a company’s signal summary","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/companies/{companyId}/signal-summary","href":"/api-reference/companies/get-a-company’s-signal-summary"},{"title":"List a company’s signals","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/companies/{companyId}/signals","href":"/api-reference/companies/list-a-company’s-signals"},{"title":"List a company’s timeline","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/companies/{companyId}/timeline","href":"/api-reference/companies/list-a-company’s-timeline"},{"title":"A company was created","version":null,"deprecated":null,"openapi":"https://api.enrik.ai/v1/openapi.json webhook company.created","href":"/api-reference/companies/a-company-was-created"},{"title":"A company was deleted","version":null,"deprecated":null,"openapi":"https://api.enrik.ai/v1/openapi.json webhook company.deleted","href":"/api-reference/companies/a-company-was-deleted"},{"title":"A company was restored","version":null,"deprecated":null,"openapi":"https://api.enrik.ai/v1/openapi.json webhook company.restored","href":"/api-reference/companies/a-company-was-restored"},{"title":"A company changed","version":null,"deprecated":null,"openapi":"https://api.enrik.ai/v1/openapi.json webhook company.updated","href":"/api-reference/companies/a-company-changed"}]},{"group":"icpAssessments","pages":[{"title":"Get a company’s ICP assessment","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/companies/{companyId}/icp-assessment","href":"/api-reference/icpassessments/get-a-company’s-icp-assessment"}]},{"group":"companyCandidates","pages":[{"title":"List candidates","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/company-candidates","href":"/api-reference/companycandidates/list-candidates"},{"title":"Accept candidates","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/company-candidates/bulk-accept","href":"/api-reference/companycandidates/accept-candidates"},{"title":"Archive candidates","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/company-candidates/bulk-archive","href":"/api-reference/companycandidates/archive-candidates"},{"title":"Promote candidates","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/company-candidates/bulk-promote","href":"/api-reference/companycandidates/promote-candidates"},{"title":"Reject candidates","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/company-candidates/bulk-reject","href":"/api-reference/companycandidates/reject-candidates"},{"title":"Get a candidate","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/company-candidates/{candidateId}","href":"/api-reference/companycandidates/get-a-candidate"},{"title":"Accept a candidate","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/company-candidates/{candidateId}/accept","href":"/api-reference/companycandidates/accept-a-candidate"},{"title":"Archive a candidate","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/company-candidates/{candidateId}/archive","href":"/api-reference/companycandidates/archive-a-candidate"},{"title":"Promote a candidate","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/company-candidates/{candidateId}/promote","href":"/api-reference/companycandidates/promote-a-candidate"},{"title":"Reject a candidate","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/company-candidates/{candidateId}/reject","href":"/api-reference/companycandidates/reject-a-candidate"}]},{"group":"companyDiscoveryJobs","pages":[{"title":"List discovery jobs","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/company-discovery-jobs","href":"/api-reference/companydiscoveryjobs/list-discovery-jobs"},{"title":"Create a discovery job","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/company-discovery-jobs","href":"/api-reference/companydiscoveryjobs/create-a-discovery-job"},{"title":"Get a discovery job","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/company-discovery-jobs/{jobId}","href":"/api-reference/companydiscoveryjobs/get-a-discovery-job"},{"title":"Update a draft discovery job","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json patch /v1/company-discovery-jobs/{jobId}","href":"/api-reference/companydiscoveryjobs/update-a-draft-discovery-job"},{"title":"Archive a discovery job","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/company-discovery-jobs/{jobId}/archive","href":"/api-reference/companydiscoveryjobs/archive-a-discovery-job"},{"title":"Cancel a discovery job","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/company-discovery-jobs/{jobId}/cancel","href":"/api-reference/companydiscoveryjobs/cancel-a-discovery-job"},{"title":"List a discovery job’s candidates","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/company-discovery-jobs/{jobId}/candidates","href":"/api-reference/companydiscoveryjobs/list-a-discovery-job’s-candidates"},{"title":"Get a discovery job’s quality summary","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/company-discovery-jobs/{jobId}/quality-summary","href":"/api-reference/companydiscoveryjobs/get-a-discovery-job’s-quality-summary"},{"title":"Start a discovery job","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/company-discovery-jobs/{jobId}/start","href":"/api-reference/companydiscoveryjobs/start-a-discovery-job"},{"title":"A discovery job reached its outcome","version":null,"deprecated":null,"openapi":"https://api.enrik.ai/v1/openapi.json webhook company-discovery-job.terminal","href":"/api-reference/companydiscoveryjobs/a-discovery-job-reached-its-outcome"}]},{"group":"companySignals","pages":[{"title":"Get a company signal","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/company-signals/{id}","href":"/api-reference/companysignals/get-a-company-signal"},{"title":"A signal was applied to a company","version":null,"deprecated":null,"openapi":"https://api.enrik.ai/v1/openapi.json webhook company-signal.created","href":"/api-reference/companysignals/a-signal-was-applied-to-a-company"}]},{"group":"contacts","pages":[{"title":"List contacts","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/contacts","href":"/api-reference/contacts/list-contacts"},{"title":"Create a contact","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/contacts","href":"/api-reference/contacts/create-a-contact"},{"title":"Create up to 100 contacts","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/contacts/bulk-create","href":"/api-reference/contacts/create-up-to-100-contacts"},{"title":"Update up to 100 contacts","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/contacts/bulk-update","href":"/api-reference/contacts/update-up-to-100-contacts"},{"title":"Create or update up to 100 contacts by e-mail","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/contacts/bulk-upsert","href":"/api-reference/contacts/create-or-update-up-to-100-contacts-by-e-mail"},{"title":"List deleted contacts","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/contacts/trash","href":"/api-reference/contacts/list-deleted-contacts"},{"title":"Create or update a contact by e-mail","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/contacts/upsert","href":"/api-reference/contacts/create-or-update-a-contact-by-e-mail"},{"title":"Get a contact","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/contacts/{contactId}","href":"/api-reference/contacts/get-a-contact"},{"title":"Delete a contact","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json delete /v1/contacts/{contactId}","href":"/api-reference/contacts/delete-a-contact"},{"title":"Update a contact","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json patch /v1/contacts/{contactId}","href":"/api-reference/contacts/update-a-contact"},{"title":"Restore a deleted contact","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/contacts/{contactId}/restore","href":"/api-reference/contacts/restore-a-deleted-contact"},{"title":"List a contact’s timeline","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/contacts/{contactId}/timeline","href":"/api-reference/contacts/list-a-contact’s-timeline"},{"title":"A contact was created","version":null,"deprecated":null,"openapi":"https://api.enrik.ai/v1/openapi.json webhook contact.created","href":"/api-reference/contacts/a-contact-was-created"},{"title":"A contact was deleted","version":null,"deprecated":null,"openapi":"https://api.enrik.ai/v1/openapi.json webhook contact.deleted","href":"/api-reference/contacts/a-contact-was-deleted"},{"title":"A contact was restored","version":null,"deprecated":null,"openapi":"https://api.enrik.ai/v1/openapi.json webhook contact.restored","href":"/api-reference/contacts/a-contact-was-restored"},{"title":"A contact changed","version":null,"deprecated":null,"openapi":"https://api.enrik.ai/v1/openapi.json webhook contact.updated","href":"/api-reference/contacts/a-contact-changed"}]},{"group":"customFieldDefinitions","pages":[{"title":"List custom fields","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/custom-field-definitions","href":"/api-reference/customfielddefinitions/list-custom-fields"}]},{"group":"discoveryBriefs","pages":[{"title":"List discovery briefs","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/discovery-briefs","href":"/api-reference/discoverybriefs/list-discovery-briefs"},{"title":"Create a discovery brief","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/discovery-briefs","href":"/api-reference/discoverybriefs/create-a-discovery-brief"},{"title":"Get a discovery brief","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/discovery-briefs/{discoveryBriefId}","href":"/api-reference/discoverybriefs/get-a-discovery-brief"},{"title":"Update a discovery brief","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json patch /v1/discovery-briefs/{discoveryBriefId}","href":"/api-reference/discoverybriefs/update-a-discovery-brief"},{"title":"Archive a discovery brief","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/discovery-briefs/{discoveryBriefId}/archive","href":"/api-reference/discoverybriefs/archive-a-discovery-brief"},{"title":"List a discovery brief’s versions","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/discovery-briefs/{discoveryBriefId}/versions","href":"/api-reference/discoverybriefs/list-a-discovery-brief’s-versions"},{"title":"Add a discovery brief version","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/discovery-briefs/{discoveryBriefId}/versions","href":"/api-reference/discoverybriefs/add-a-discovery-brief-version"},{"title":"Get a discovery brief version","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/discovery-briefs/{discoveryBriefId}/versions/{versionId}","href":"/api-reference/discoverybriefs/get-a-discovery-brief-version"}]},{"group":"exportFields","pages":[{"title":"Get the export field catalogue","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/export-fields","href":"/api-reference/exportfields/get-the-export-field-catalogue"}]},{"group":"exportJobs","pages":[{"title":"List export jobs","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/export-jobs","href":"/api-reference/exportjobs/list-export-jobs"},{"title":"Create a draft export","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/export-jobs","href":"/api-reference/exportjobs/create-a-draft-export"},{"title":"Preview an export","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/export-jobs/preview","href":"/api-reference/exportjobs/preview-an-export"},{"title":"Get an export job","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/export-jobs/{id}","href":"/api-reference/exportjobs/get-an-export-job"},{"title":"Archive an export","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/export-jobs/{id}/archive","href":"/api-reference/exportjobs/archive-an-export"},{"title":"Cancel an export","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/export-jobs/{id}/cancel","href":"/api-reference/exportjobs/cancel-an-export"},{"title":"Download an export’s CSV file","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/export-jobs/{id}/download","href":"/api-reference/exportjobs/download-an-export’s-csv-file"},{"title":"Start an export","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/export-jobs/{id}/start","href":"/api-reference/exportjobs/start-an-export"}]},{"group":"feedback","pages":[{"title":"Send anonymous feedback","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/feedback","href":"/api-reference/feedback/send-anonymous-feedback"}]},{"group":"health","pages":[{"title":"Check that the API is up","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/health","href":"/api-reference/health/check-that-the-api-is-up"}]},{"group":"icpProfiles","pages":[{"title":"List ICP profiles","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/icp-profiles","href":"/api-reference/icpprofiles/list-icp-profiles"},{"title":"Create an ICP profile","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/icp-profiles","href":"/api-reference/icpprofiles/create-an-icp-profile"},{"title":"Get an ICP profile","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/icp-profiles/{icpProfileId}","href":"/api-reference/icpprofiles/get-an-icp-profile"},{"title":"Update an ICP profile","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json patch /v1/icp-profiles/{icpProfileId}","href":"/api-reference/icpprofiles/update-an-icp-profile"},{"title":"Archive an ICP profile","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/icp-profiles/{icpProfileId}/archive","href":"/api-reference/icpprofiles/archive-an-icp-profile"},{"title":"Restore an ICP profile","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/icp-profiles/{icpProfileId}/restore","href":"/api-reference/icpprofiles/restore-an-icp-profile"},{"title":"List an ICP profile’s versions","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/icp-profiles/{icpProfileId}/versions","href":"/api-reference/icpprofiles/list-an-icp-profile’s-versions"},{"title":"Add an ICP profile version","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/icp-profiles/{icpProfileId}/versions","href":"/api-reference/icpprofiles/add-an-icp-profile-version"},{"title":"Get an ICP profile version","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/icp-profiles/{icpProfileId}/versions/{versionId}","href":"/api-reference/icpprofiles/get-an-icp-profile-version"}]},{"group":"apiKeys","pages":[{"title":"Describe the calling API key","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/me","href":"/api-reference/apikeys/describe-the-calling-api-key"},{"title":"Revoke the calling API key","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/me/revoke","href":"/api-reference/apikeys/revoke-the-calling-api-key"},{"title":"Rotate the calling API key","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/me/rotate","href":"/api-reference/apikeys/rotate-the-calling-api-key"}]},{"group":"websiteOnboarding","pages":[{"title":"Read workspace company setup","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/onboarding/setup","href":"/api-reference/websiteonboarding/read-workspace-company-setup"},{"title":"Read workspace setup access","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/onboarding/setup/access","href":"/api-reference/websiteonboarding/read-workspace-setup-access"},{"title":"Confirm workspace company profile","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/onboarding/setup/company-profile/confirm","href":"/api-reference/websiteonboarding/confirm-workspace-company-profile"},{"title":"Draft workspace company profile from website or description","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/onboarding/setup/company-profile/draft","href":"/api-reference/websiteonboarding/draft-workspace-company-profile-from-website-or-description"},{"title":"Complete workspace setup","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/onboarding/setup/complete","href":"/api-reference/websiteonboarding/complete-workspace-setup"},{"title":"Read workspace setup completion","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/onboarding/setup/completion","href":"/api-reference/websiteonboarding/read-workspace-setup-completion"},{"title":"Reset workspace company setup","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/onboarding/setup/reset","href":"/api-reference/websiteonboarding/reset-workspace-company-setup"},{"title":"Choose workspace setups","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/onboarding/setup/setups","href":"/api-reference/websiteonboarding/choose-workspace-setups"},{"title":"Start workspace company setup","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/onboarding/setup/start","href":"/api-reference/websiteonboarding/start-workspace-company-setup"}]},{"group":"savedViews","pages":[{"title":"List saved views","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/saved-views","href":"/api-reference/savedviews/list-saved-views"},{"title":"Create a saved view","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/saved-views","href":"/api-reference/savedviews/create-a-saved-view"},{"title":"Get a saved view","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/saved-views/{savedViewId}","href":"/api-reference/savedviews/get-a-saved-view"},{"title":"Delete a saved view","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json delete /v1/saved-views/{savedViewId}","href":"/api-reference/savedviews/delete-a-saved-view"},{"title":"Update a saved view","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json patch /v1/saved-views/{savedViewId}","href":"/api-reference/savedviews/update-a-saved-view"}]},{"group":"signalDefinitions","pages":[{"title":"List signal definitions","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/signal-definitions","href":"/api-reference/signaldefinitions/list-signal-definitions"},{"title":"Create a signal definition","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/signal-definitions","href":"/api-reference/signaldefinitions/create-a-signal-definition"},{"title":"Get a signal definition","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/signal-definitions/{signalDefinitionId}","href":"/api-reference/signaldefinitions/get-a-signal-definition"},{"title":"Update a signal definition","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json patch /v1/signal-definitions/{signalDefinitionId}","href":"/api-reference/signaldefinitions/update-a-signal-definition"},{"title":"Archive a signal definition","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/signal-definitions/{signalDefinitionId}/archive","href":"/api-reference/signaldefinitions/archive-a-signal-definition"},{"title":"Restore a signal definition","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/signal-definitions/{signalDefinitionId}/restore","href":"/api-reference/signaldefinitions/restore-a-signal-definition"},{"title":"List a signal definition’s versions","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/signal-definitions/{signalDefinitionId}/versions","href":"/api-reference/signaldefinitions/list-a-signal-definition’s-versions"},{"title":"Add a signal definition version","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/signal-definitions/{signalDefinitionId}/versions","href":"/api-reference/signaldefinitions/add-a-signal-definition-version"},{"title":"Get a signal definition version","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/signal-definitions/{signalDefinitionId}/versions/{versionId}","href":"/api-reference/signaldefinitions/get-a-signal-definition-version"}]},{"group":"signalDetectors","pages":[{"title":"Get the signal detector catalogue","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/signal-detectors","href":"/api-reference/signaldetectors/get-the-signal-detector-catalogue"}]},{"group":"webhookEventDeliveries","pages":[{"title":"List event deliveries of a subscription","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/webhook-event-deliveries","href":"/api-reference/webhookeventdeliveries/list-event-deliveries-of-a-subscription"},{"title":"Get an event delivery","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/webhook-event-deliveries/{id}","href":"/api-reference/webhookeventdeliveries/get-an-event-delivery"},{"title":"Redeliver an event","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/webhook-event-deliveries/{id}/redeliver","href":"/api-reference/webhookeventdeliveries/redeliver-an-event"}]},{"group":"webhookEventTypes","pages":[{"title":"List event types","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/webhook-event-types","href":"/api-reference/webhookeventtypes/list-event-types"}]},{"group":"webhookSubscriptions","pages":[{"title":"List event subscriptions","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/webhook-subscriptions","href":"/api-reference/webhooksubscriptions/list-event-subscriptions"},{"title":"Create an event subscription","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/webhook-subscriptions","href":"/api-reference/webhooksubscriptions/create-an-event-subscription"},{"title":"Get an event subscription","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/webhook-subscriptions/{id}","href":"/api-reference/webhooksubscriptions/get-an-event-subscription"},{"title":"Update an event subscription","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json patch /v1/webhook-subscriptions/{id}","href":"/api-reference/webhooksubscriptions/update-an-event-subscription"},{"title":"Archive an event subscription","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/webhook-subscriptions/{id}/archive","href":"/api-reference/webhooksubscriptions/archive-an-event-subscription"},{"title":"Disable an event subscription","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/webhook-subscriptions/{id}/disable","href":"/api-reference/webhooksubscriptions/disable-an-event-subscription"},{"title":"Enable an event subscription","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/webhook-subscriptions/{id}/enable","href":"/api-reference/webhooksubscriptions/enable-an-event-subscription"},{"title":"Rotate the signing secret","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/webhook-subscriptions/{id}/rotate-secret","href":"/api-reference/webhooksubscriptions/rotate-the-signing-secret"},{"title":"Test an event subscription","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/webhook-subscriptions/{id}/test","href":"/api-reference/webhooksubscriptions/test-an-event-subscription"},{"title":"A subscription was tested","version":null,"deprecated":null,"openapi":"https://api.enrik.ai/v1/openapi.json webhook webhook.ping","href":"/api-reference/webhooksubscriptions/a-subscription-was-tested"}]},{"group":"workspaceMembers","pages":[{"title":"List workspace members","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json get /v1/workspace-members","href":"/api-reference/workspacemembers/list-workspace-members"}]}]}]}]},"basePath":"","title":"Create or update up to 100 companies by domain - Enrik","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Myd8dsju.js","utils-C2HkQgW0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-8rSppmTv.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B6MjiCFm.js","snippetPresets-DwrSAONL.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-1-a5UQKQ.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C541m7wZ.js","shallow-CWELCZ77.js","getApiPlaygroundDisplay-CTo5Zn03.js","CodeSnippet-D--dzvnl.js","CodeSnippets-DM3cXEDh.js","Page-CxAy5y67.js","getPastedJson-C-VECgcL.js","icon-BPq2-Mg3.js","MethodPill-D9J5cUHd.js","DuplicateIcon-BqHaxUnD.js","createIcon-CIbcZHp9.js","DynamicMarkdown-BKiHAm_d.js","SectionHeading-DstQXt3H.js","axios-vUo_bRtp.js","Markdown-CpxgzsKA.js","clsx-C5EfhVm0.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CJ9Oly2E.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Mk6P3qvh.js"]}