Requires one UUID Idempotency-Key matching body operationId. Records immutable choices once per confirmed generation. API-key selection also acknowledges the handoff atomically; browser selection requires prior acknowledgement. Target segments require ICP profiles. Explicitly selecting nothing is valid. Reset starts a new selection; exact receipt replay preserves historical responses.
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.
Only on a websiteOnboarding.confirmProfile answer: whether it started company research from the saved website. Absent on other commands and on replays of Confirm answers given before this field existed.
Option 1
Option 2
Show child attributes
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/websiteonboarding/choose-workspace-setups","slug":"/api-reference/websiteonboarding/choose-workspace-setups","pageMetadata":{"title":"Choose workspace setups","description":"Requires one UUID Idempotency-Key matching body operationId. Records immutable choices once per confirmed generation. API-key selection also acknowledges the handoff atomically; browser selection requires prior acknowledgement. Target segments require ICP profiles. Explicitly selecting nothing is valid. Reset starts a new selection; exact receipt replay preserves historical responses.","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/onboarding/setup/setups","href":"/api-reference/websiteonboarding/choose-workspace-setups","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Requires one UUID Idempotency-Key matching body operationId. Records immutable choices once per confirmed generation. API-key selection also acknowledges the handoff atomically; browser selection requires prior acknowledgement. Target segments require ICP profiles. Explicitly selecting nothing is valid. Reset starts a new selection; exact receipt replay preserves historical responses.\"\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":"Choose workspace setups","description":"Requires one UUID Idempotency-Key matching body operationId. Records immutable choices once per confirmed generation. API-key selection also acknowledges the handoff atomically; browser selection requires prior acknowledgement. Target segments require ICP profiles. Explicitly selecting nothing is valid. Reset starts a new selection; exact receipt replay preserves historical responses.","deprecated":null,"version":null,"openapi":"https://api.enrik.ai/v1/openapi.json post /v1/onboarding/setup/setups","href":"/api-reference/websiteonboarding/choose-workspace-setups","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"websiteOnboarding.chooseSetups","summary":"Choose workspace setups","description":"Requires one UUID Idempotency-Key matching body operationId. Records immutable choices once per confirmed generation. API-key selection also acknowledges the handoff atomically; browser selection requires prior acknowledgement. Target segments require ICP profiles. Explicitly selecting nothing is valid. Reset starts a new selection; exact receipt replay preserves historical responses.","tags":["websiteOnboarding"],"security":["fc837672-6847-48f0-8aab-4017fc5e9fab"],"parameters":["34ba3bb8-4ae9-459b-bc72-d81db7fb9fcf"],"requestBody":"6ca605f8-06fe-422a-9528-cd05f3e9a7ad","responses":{"200":"d94a6d2f-8b8a-4cb4-9d42-06b3c91914c6","400":"da1d9213-bed6-45ce-8f3b-62fab4ac21b3","401":"70156649-9e97-40b1-8243-051bd1a42ac5","403":"6d105b2b-da95-45e2-b9f0-b0ba5faab758","409":"0f95f1a4-4756-402c-8f26-c2adea3ed486","413":"8d7d8a40-05db-4000-8c9d-e1e64927591f","415":"ecd16806-3889-497f-8fea-ca0c56e6c1f8","422":"4cf54987-416c-4942-9c2d-5dd6c740f0f9","429":"81b895e1-ecf4-42e9-936e-6e70880ab494","500":"d141dc8c-8d26-4289-acb0-d75e72650dd1","503":"119c3776-ae4e-45f3-b242-8406b22adccc","default":"d0491720-bde9-4c8f-b4a3-b421f3f25fc0"},"x-mutation-class":"validate-before-commit","x-stability-level":"beta","method":"post","type":"path","servers":["d4b75ac2-20fc-4060-84ae-9370689f03ae"],"path":"/v1/onboarding/setup/setups","baseUrlOptions":["https://api.enrik.ai"],"title":"Choose workspace setups","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"34ba3bb8-4ae9-459b-bc72-d81db7fb9fcf":{"name":"Idempotency-Key","in":"header","required":true,"description":"A key you choose for this request, such as a UUID. Retrying with the same key returns the first result instead of doing the work twice.","schema":{"type":"string","minLength":1,"maxLength":200,"isRequired":true,"description":"A key you choose for this request, such as a UUID. Retrying with the same key returns the first result instead of doing the work twice.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"operationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"The command’s id: the same UUID as its `Idempotency-Key` header.","isRequired":true,"uniqueKey":"operationId","typeLabel":"string\u003cuuid>"},"generation":{"type":"integer","minimum":1,"maximum":2147483647,"description":"The current setup generation.","isRequired":true,"uniqueKey":"generation","typeLabel":"integer"},"expectedRevision":{"type":"integer","minimum":0,"maximum":2147483647,"description":"The setup revision last read; a stale revision is refused.","isRequired":true,"uniqueKey":"expectedRevision","typeLabel":"integer"},"setups":{"type":"object","properties":{"icpProfiles":{"type":"boolean","description":"Whether to set up ICP profiles.","isRequired":true,"uniqueKey":"setups.icpProfiles","typeLabel":"boolean"},"targetSegments":{"type":"boolean","description":"Whether to set up target segments; needs `icpProfiles`.","isRequired":true,"uniqueKey":"setups.targetSegments","typeLabel":"boolean"},"buyingSignals":{"type":"boolean","description":"Whether to set up buying signals.","isRequired":true,"uniqueKey":"setups.buyingSignals","typeLabel":"boolean"}},"required":["icpProfiles","targetSegments","buyingSignals"],"additionalProperties":false,"description":"The setups to run.","isRequired":true,"uniqueKey":"setups","typeLabel":"object"}},"required":["operationId","generation","expectedRevision","setups"],"additionalProperties":false,"description":"The setups chosen for the confirmed generation.","uniqueKey":"","typeLabel":"object"},"example":{"operationId":"0199b5e0-0000-7000-8000-00000000e004","generation":1,"expectedRevision":2,"setups":{"icpProfiles":true,"targetSegments":true,"buyingSignals":false}},"examples":{"Example":{"title":"Example","value":{"operationId":"0199b5e0-0000-7000-8000-00000000e004","generation":1,"expectedRevision":2,"setups":{"icpProfiles":true,"targetSegments":true,"buyingSignals":false}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"d94a6d2f-8b8a-4cb4-9d42-06b3c91914c6":{"description":"The workspace’s company setup and the hash of its saved company profile.","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 needs a `run` scope, so two policies count it: `api-key`, every request the key makes, and `api-key-run`, every request to an operation that needs a `run` scope.","schema":{"type":"string"},"example":"\"api-key\";r=599;t=60, \"api-key-run\";r=59;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 needs a `run` scope, so two policies count it: `api-key`, every request the key makes, and `api-key-run`, every request to an operation that needs a `run` scope.","schema":{"type":"string"},"example":"\"api-key\";q=600;w=60, \"api-key-run\";q=60;w=60"}},"content":{"application/json":{"schema":{"type":"object","properties":{"state":{"oneOf":[{"type":"object","description":"The company setup; `null` when the workspace has not started one.","required":["id","generation","revision","confirmed","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"The setup’s id.","isRequired":true,"uniqueKey":"state.oneOf.0.id","typeLabel":"string\u003cuuid>"},"generation":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The setup generation. A reset starts the next one.","isRequired":true,"uniqueKey":"state.oneOf.0.generation","typeLabel":"integer"},"revision":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The setup revision. Every change advances it; send it as `expectedRevision`.","isRequired":true,"uniqueKey":"state.oneOf.0.revision","typeLabel":"integer"},"confirmed":{"oneOf":[{"type":"object","description":"The confirmed company profile; `null` until confirmed.","required":["profileId","profile","confirmedAt"],"properties":{"profileId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"The saved company profile’s id.","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profileId","typeLabel":"string\u003cuuid>"},"profile":{"type":"object","properties":{"companyName":{"oneOf":[{"description":"The company’s name; `null` when not set.","type":"string","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.companyName.oneOf.0","typeLabel":"string"},{"description":"The company’s name; `null` when not set.","type":"null","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.companyName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.companyName","typeLabel":"string | null"},"website":{"oneOf":[{"description":"The company’s website; `null` when not set.","type":"string","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.website.oneOf.0","typeLabel":"string"},{"description":"The company’s website; `null` when not set.","type":"null","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.website.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.website","typeLabel":"string | null"},"productDescription":{"oneOf":[{"description":"What the company sells; `null` when not set.","type":"string","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.productDescription.oneOf.0","typeLabel":"string"},{"description":"What the company sells; `null` when not set.","type":"null","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.productDescription.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.productDescription","typeLabel":"string | null"},"valueProposition":{"oneOf":[{"description":"Why customers buy from the company; `null` when not set.","type":"string","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.valueProposition.oneOf.0","typeLabel":"string"},{"description":"Why customers buy from the company; `null` when not set.","type":"null","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.valueProposition.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.valueProposition","typeLabel":"string | null"},"targetRegion":{"oneOf":[{"description":"The regions the company sells into; `null` when not set.","type":"string","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.targetRegion.oneOf.0","typeLabel":"string"},{"description":"The regions the company sells into; `null` when not set.","type":"null","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.targetRegion.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.targetRegion","typeLabel":"string | null"},"buyerPersonas":{"type":"array","items":{"type":"string","uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.buyerPersonas.items.[INDEX]","typeLabel":"string"},"description":"The people the company sells to.","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.buyerPersonas","typeLabel":"string[]"},"mainPainSolved":{"oneOf":[{"description":"The main problem the company solves; `null` when not set.","type":"string","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.mainPainSolved.oneOf.0","typeLabel":"string"},{"description":"The main problem the company solves; `null` when not set.","type":"null","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.mainPainSolved.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.mainPainSolved","typeLabel":"string | null"},"salesMotion":{"oneOf":[{"description":"How the company sells; `null` when not set.","type":"string","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.salesMotion.oneOf.0","typeLabel":"string"},{"description":"How the company sells; `null` when not set.","type":"null","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.salesMotion.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.salesMotion","typeLabel":"string | null"},"exclusionNotes":{"oneOf":[{"description":"Who the company does not sell to; `null` when not set.","type":"string","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.exclusionNotes.oneOf.0","typeLabel":"string"},{"description":"Who the company does not sell to; `null` when not set.","type":"null","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.exclusionNotes.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile.exclusionNotes","typeLabel":"string | null"}},"required":["companyName","website","productDescription","valueProposition","targetRegion","buyerPersonas","mainPainSolved","salesMotion","exclusionNotes"],"additionalProperties":true,"description":"The profile as confirmed.","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.profile","typeLabel":"object"},"confirmedAt":{"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 profile was confirmed.","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0.confirmedAt","typeLabel":"string\u003cdate-time>"}},"additionalProperties":true,"isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.0","typeLabel":"object"},{"type":"null","description":"The confirmed company profile; `null` until confirmed.","isRequired":true,"uniqueKey":"state.oneOf.0.confirmed.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"state.oneOf.0.confirmed","typeLabel":"object | 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 setup was created.","isRequired":true,"uniqueKey":"state.oneOf.0.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 setup last changed.","isRequired":true,"uniqueKey":"state.oneOf.0.updatedAt","typeLabel":"string\u003cdate-time>"},"draft":{"oneOf":[{"type":"object","description":"The latest drafted profile; `null` when none. Absent only in replays of older commands.","required":["website","locale","findings"],"properties":{"website":{"oneOf":[{"description":"The website drafted from; `null` when none.","type":"string","isRequired":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.website.oneOf.0","typeLabel":"string"},{"description":"The website drafted from; `null` when none.","type":"null","isRequired":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.website.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.website","typeLabel":"string | null"},"locale":{"type":"string","enum":["en","de"],"description":"The language of the findings: `en` or `de`.","isRequired":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.locale","typeLabel":"enum\u003cstring>"},"findings":{"type":"object","properties":{"companyName":{"oneOf":[{"description":"The company’s name; `null` when none was found.","type":"string","isRequired":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.findings.companyName.oneOf.0","typeLabel":"string"},{"description":"The company’s name; `null` when none was found.","type":"null","isRequired":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.findings.companyName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.findings.companyName","typeLabel":"string | null"},"productDescription":{"type":"string","description":"What the company sells.","isRequired":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.findings.productDescription","typeLabel":"string"},"buyerRoles":{"type":"array","items":{"type":"string","uniqueKey":"state.oneOf.0.draft.oneOf.0.findings.buyerRoles.items.[INDEX]","typeLabel":"string"},"description":"The roles of the people who buy from the company.","isRequired":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.findings.buyerRoles","typeLabel":"string[]"},"markets":{"type":"array","items":{"type":"string","uniqueKey":"state.oneOf.0.draft.oneOf.0.findings.markets.items.[INDEX]","typeLabel":"string"},"description":"The countries the company sells into.","isRequired":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.findings.markets","typeLabel":"string[]"}},"required":["companyName","productDescription","buyerRoles","markets"],"additionalProperties":true,"description":"What the draft found.","isRequired":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.findings","typeLabel":"object"},"source":{"description":"What the draft was made from: the `website` or a `description`. Absent on older drafts, which were made from the website.","type":"string","enum":["website","description"],"uniqueKey":"state.oneOf.0.draft.oneOf.0.source","typeLabel":"enum\u003cstring>"},"aiOutcome":{"oneOf":[{"type":"object","description":"Whether a model drafted the findings. Absent on older drafts.","required":["status"],"properties":{"status":{"type":"string","const":"drafted","description":"A model drafted the findings.","isRequired":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.aiOutcome.oneOf.0.status","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.aiOutcome.oneOf.0","typeLabel":"object"},{"type":"object","description":"Whether a model drafted the findings. Absent on older drafts.","required":["status","reason"],"properties":{"status":{"type":"string","const":"manual_required","description":"No model draft: the profile is filled in by hand.","isRequired":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.aiOutcome.oneOf.1.status","typeLabel":"string"},"reason":{"type":"string","enum":["unavailable","budget_exhausted","timeout","website_unreadable","invalid_output"],"description":"Why no model draft was made.","isRequired":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.aiOutcome.oneOf.1.reason","typeLabel":"enum\u003cstring>"}},"additionalProperties":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0.aiOutcome.oneOf.1","typeLabel":"object"}],"uniqueKey":"state.oneOf.0.draft.oneOf.0.aiOutcome","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"state.oneOf.0.draft.oneOf.0","typeLabel":"object"},{"type":"null","description":"The latest drafted profile; `null` when none. Absent only in replays of older commands.","uniqueKey":"state.oneOf.0.draft.oneOf.1","typeLabel":"null"}],"uniqueKey":"state.oneOf.0.draft","typeLabel":"object | null"},"setups":{"oneOf":[{"type":"object","description":"The setups chosen in this generation; `null` until chosen. Absent only in replays of older commands.","required":["icpProfiles","targetSegments","buyingSignals"],"properties":{"icpProfiles":{"type":"boolean","description":"Whether to set up ICP profiles.","isRequired":true,"uniqueKey":"state.oneOf.0.setups.oneOf.0.icpProfiles","typeLabel":"boolean"},"targetSegments":{"type":"boolean","description":"Whether to set up target segments; needs `icpProfiles`.","isRequired":true,"uniqueKey":"state.oneOf.0.setups.oneOf.0.targetSegments","typeLabel":"boolean"},"buyingSignals":{"type":"boolean","description":"Whether to set up buying signals.","isRequired":true,"uniqueKey":"state.oneOf.0.setups.oneOf.0.buyingSignals","typeLabel":"boolean"}},"additionalProperties":true,"uniqueKey":"state.oneOf.0.setups.oneOf.0","typeLabel":"object"},{"type":"null","description":"The setups chosen in this generation; `null` until chosen. Absent only in replays of older commands.","uniqueKey":"state.oneOf.0.setups.oneOf.1","typeLabel":"null"}],"uniqueKey":"state.oneOf.0.setups","typeLabel":"object | null"}},"additionalProperties":true,"isRequired":true,"uniqueKey":"state.oneOf.0","typeLabel":"object"},{"type":"null","description":"The company setup; `null` when the workspace has not started one.","isRequired":true,"uniqueKey":"state.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"state","typeLabel":"object | null"},"profileHash":{"type":"string","description":"The hash of the saved company profile. Send it as `expectedProfileHash` to confirm.","isRequired":true,"uniqueKey":"profileHash","typeLabel":"string"},"research":{"oneOf":[{"type":"object","description":"Only on a `websiteOnboarding.confirmProfile` answer: whether it started company research from the saved website. Absent on other commands and on replays of Confirm answers given before this field existed.","required":["status"],"properties":{"status":{"type":"string","const":"started","description":"Company research from the website started.","isRequired":true,"uniqueKey":"research.oneOf.0.status","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"research.oneOf.0","typeLabel":"object"},{"type":"object","description":"Only on a `websiteOnboarding.confirmProfile` answer: whether it started company research from the saved website. Absent on other commands and on replays of Confirm answers given before this field existed.","required":["status","reason"],"properties":{"status":{"type":"string","const":"not_started","description":"No company research started.","isRequired":true,"uniqueKey":"research.oneOf.1.status","typeLabel":"string"},"reason":{"type":"string","enum":["no_website","unavailable"],"description":"Why: `no_website`, the saved profile has no website; `unavailable`, website research is not available to this workspace yet.","isRequired":true,"uniqueKey":"research.oneOf.1.reason","typeLabel":"enum\u003cstring>"}},"additionalProperties":true,"uniqueKey":"research.oneOf.1","typeLabel":"object"}],"uniqueKey":"research","typeLabel":"object"}},"required":["state","profileHash"],"additionalProperties":true,"description":"The workspace’s company setup and the hash of its saved company profile.","uniqueKey":"","typeLabel":"object"},"example":{"state":{"id":"0199b5e0-0000-7000-8000-00000000d001","generation":1,"revision":3,"draft":{"website":"https://example.com","source":"website","locale":"en","aiOutcome":{"status":"drafted"},"findings":{"companyName":"Analytical Engines","productDescription":"Builds engines that compute.","buyerRoles":["Head of Engineering","Chief Technology Officer"],"markets":["Austria","Germany"]}},"setups":{"icpProfiles":true,"targetSegments":true,"buyingSignals":false},"confirmed":{"profileId":"0199b5e0-0000-7000-8000-00000000d002","profile":{"companyName":"Analytical Engines","website":"https://example.com","productDescription":"Builds engines that compute.","valueProposition":null,"targetRegion":"Austria, Germany","buyerPersonas":["Head of Engineering","Chief Technology Officer"],"mainPainSolved":null,"salesMotion":null,"exclusionNotes":null},"confirmedAt":"2026-10-07T09:05:00.000Z"},"createdAt":"2026-10-07T09:00:00.000Z","updatedAt":"2026-10-07T09:06:00.000Z"},"profileHash":"bb55bb4ded3975cf8a62c0da6d87c7a83723ac5b1226de6b629b0bbe08fc297b"},"examples":{"Example":{"title":"Example","value":{"state":{"id":"0199b5e0-0000-7000-8000-00000000d001","generation":1,"revision":3,"draft":{"website":"https://example.com","source":"website","locale":"en","aiOutcome":{"status":"drafted"},"findings":{"companyName":"Analytical Engines","productDescription":"Builds engines that compute.","buyerRoles":["Head of Engineering","Chief Technology Officer"],"markets":["Austria","Germany"]}},"setups":{"icpProfiles":true,"targetSegments":true,"buyingSignals":false},"confirmed":{"profileId":"0199b5e0-0000-7000-8000-00000000d002","profile":{"companyName":"Analytical Engines","website":"https://example.com","productDescription":"Builds engines that compute.","valueProposition":null,"targetRegion":"Austria, Germany","buyerPersonas":["Head of Engineering","Chief Technology Officer"],"mainPainSolved":null,"salesMotion":null,"exclusionNotes":null},"confirmedAt":"2026-10-07T09:05:00.000Z"},"createdAt":"2026-10-07T09:00:00.000Z","updatedAt":"2026-10-07T09:06:00.000Z"},"profileHash":"bb55bb4ded3975cf8a62c0da6d87c7a83723ac5b1226de6b629b0bbe08fc297b"}}},"exampleType":"examples"}},"exampleType":"examples"},"da1d9213-bed6-45ce-8f3b-62fab4ac21b3":{"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"},"70156649-9e97-40b1-8243-051bd1a42ac5":{"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"},"6d105b2b-da95-45e2-b9f0-b0ba5faab758":{"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"},"0f95f1a4-4756-402c-8f26-c2adea3ed486":{"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"},"8d7d8a40-05db-4000-8c9d-e1e64927591f":{"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"},"ecd16806-3889-497f-8fea-ca0c56e6c1f8":{"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"},"4cf54987-416c-4942-9c2d-5dd6c740f0f9":{"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"},"81b895e1-ecf4-42e9-936e-6e70880ab494":{"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 needs a `run` scope, so two policies count it: `api-key`, every request the key makes, and `api-key-run`, every request to an operation that needs a `run` scope.","schema":{"type":"string"},"example":"\"api-key\";r=599;t=60, \"api-key-run\";r=59;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 needs a `run` scope, so two policies count it: `api-key`, every request the key makes, and `api-key-run`, every request to an operation that needs a `run` scope.","schema":{"type":"string"},"example":"\"api-key\";q=600;w=60, \"api-key-run\";q=60;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"},"d141dc8c-8d26-4289-acb0-d75e72650dd1":{"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"},"119c3776-ae4e-45f3-b242-8406b22adccc":{"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"},"d0491720-bde9-4c8f-b4a3-b421f3f25fc0":{"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":{"fc837672-6847-48f0-8aab-4017fc5e9fab":{"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":["setup:run"],"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":["setup:run"],"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":"Choose workspace setups - Enrik","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-09T15:59:56.917Z","originalFileLocation":"api-reference/websiteonboarding/choose-workspace-setups.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=\"Requires one UUID Idempotency-Key matching body operationId. Records immutable choices once per confirmed generation. API-key selection also acknowledges the handoff atomically; browser selection requires prior acknowledgement. Target segments require ICP profiles. Explicitly selecting nothing is valid. Reset starts a new selection; exact receipt replay preserves historical responses.\">\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=\"Choose workspace setups - Enrik\">\u003cmeta data-mint-head property=\"og:description\" content=\"Requires one UUID Idempotency-Key matching body operationId. Records immutable choices once per confirmed generation. API-key selection also acknowledges the handoff atomically; browser selection requires prior acknowledgement. Target segments require ICP profiles. Explicitly selecting nothing is valid. Reset starts a new selection; exact receipt replay preserves historical responses.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Enrik\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.enrik.ai/api-reference/websiteonboarding/choose-workspace-setups\">\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=websiteOnboarding\u0026amp;title=Choose+workspace+setups\u0026amp;description=Requires+one+UUID+Idempotency-Key+matching+body+operationId.+Records+immutable+choices+once+per+confirmed+generation.+API-key+selection+also+acknowledges+the+ha\u0026amp;theme=1a1b5b8bdbe71a79282f5f36\u0026amp;signature=4bf58ff4d4bafbcdab4a190d81f5df2206bb6e284d36d8efe7a94a5194958d73\">\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=\"Choose workspace setups - Enrik\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Requires one UUID Idempotency-Key matching body operationId. Records immutable choices once per confirmed generation. API-key selection also acknowledges the handoff atomically; browser selection requires prior acknowledgement. Target segments require ICP profiles. Explicitly selecting nothing is valid. Reset starts a new selection; exact receipt replay preserves historical responses.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://enrik.mintlify.site/_mintlify/api/og/v2?division=websiteOnboarding\u0026amp;title=Choose+workspace+setups\u0026amp;description=Requires+one+UUID+Idempotency-Key+matching+body+operationId.+Records+immutable+choices+once+per+confirmed+generation.+API-key+selection+also+acknowledges+the+ha\u0026amp;theme=1a1b5b8bdbe71a79282f5f36\u0026amp;signature=4bf58ff4d4bafbcdab4a190d81f5df2206bb6e284d36d8efe7a94a5194958d73\">\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/websiteonboarding/choose-workspace-setups\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/websiteonboarding/choose-workspace-setups.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/websiteonboarding/choose-workspace-setups#webpage\",\"url\":\"https://docs.enrik.ai/api-reference/websiteonboarding/choose-workspace-setups\",\"name\":\"Choose workspace setups\",\"description\":\"Requires one UUID Idempotency-Key matching body operationId. Records immutable choices once per confirmed generation. API-key selection also acknowledges the handoff atomically; browser selection requires prior acknowledgement. Target segments require ICP profiles. Explicitly selecting nothing is valid. Reset starts a new selection; exact receipt replay preserves historical responses.\",\"dateModified\":\"2026-10-09T15:59:56.917Z\",\"isPartOf\":{\"@id\":\"https://docs.enrik.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.enrik.ai/api-reference/websiteonboarding/choose-workspace-setups#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.enrik.ai/api-reference/websiteonboarding/choose-workspace-setups#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\":\"websiteOnboarding\",\"item\":\"https://docs.enrik.ai/api-reference/websiteonboarding/read-workspace-company-setup\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Choose workspace setups\",\"item\":\"https://docs.enrik.ai/api-reference/websiteonboarding/choose-workspace-setups\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.enrik.ai/api-reference/websiteonboarding/choose-workspace-setups#apireference\",\"headline\":\"Choose workspace setups\",\"name\":\"Choose workspace setups\",\"description\":\"Requires one UUID Idempotency-Key matching body operationId. Records immutable choices once per confirmed generation. API-key selection also acknowledges the handoff atomically; browser selection requires prior acknowledgement. Target segments require ICP profiles. Explicitly selecting nothing is valid. Reset starts a new selection; exact receipt replay preserves historical responses.\",\"url\":\"https://docs.enrik.ai/api-reference/websiteonboarding/choose-workspace-setups\",\"mainEntityOfPage\":{\"@id\":\"https://docs.enrik.ai/api-reference/websiteonboarding/choose-workspace-setups#webpage\"},\"dateModified\":\"2026-10-09T15:59:56.917Z\",\"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","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","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","description":"Requires one UUID Idempotency-Key matching body operationId. Starts a new generation and clears confirmation. Preserves the saved company profile and historical command receipts.","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","description":"Requires one UUID Idempotency-Key matching body operationId. Creates setup if absent and records a durable command receipt. Existing state is preserved.","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":"Choose workspace setups - 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"]}