> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enrik.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Set up Enrik with an agent

> Confirm a company profile and complete workspace setup with scoped operations.

On the setup intro, choose **I'm an AI agent**, create a key with `setup:read` and
`setup:run`, then copy the instructions. Selecting the agent option creates no setup
state and never mints a credential. Give the key to the agent through a secure channel.

The copied instructions use the public API: the agent calls the operations below with the key as
a Bearer token. Copying them sends nothing to Enrik.

1. Check the key with `GET /v1/me`: its `scopes` must include `setup:read` and `setup:run`.
   Discover schemas from `/v1/openapi.json`. Read setup access, state and completion.
2. Start only if needed. Optionally draft from a website or description, with an explicit locale.
3. Show the proposed company profile to the human and wait for approval. Read fresh state and
   confirm using `generation`, `expectedRevision` and `expectedProfileHash`.
4. Ask for setup choices. `targetSegments` requires `icpProfiles`; choosing nothing is valid.
   Key selection also acknowledges the handoff in the same transaction. Selection authorizes
   preparation of drafts for review, never automatic activation or discovery.
5. Complete with `mode: finish` or `mode: skip`. Omit `answers` entirely, including an empty
   object: private answers belong to human accounts.
6. Read completion and report what was saved and any remaining manual work.

Confirm saves the profile, setup state, milestones and receipt atomically. A saved nonblank
website also starts standard company-twin research and commits its binding and dispatch intent
in that transaction. Description-only profiles do not start website research. Where website
research is not available to the workspace yet, Confirm still saves everything and starts none.
Its answer's `research` says which: `{ "status": "started" }`, or `not_started` with the `reason`
`no_website` or `unavailable`. A website that is not a usable web address is refused with
`422 validation_error` at `profile.website`.

Company-profile drafting uses at most two model calls per command within Enrik's shared ten-call
workspace lifetime allowance. Humans, keys, resets and subsequent sponsored artifact work share
that allowance. A timeout or uncertain transport does not refund a call or grant a second owner.
Ordinary company-twin research retains its separate limits and accounting.

Use a fresh UUID for each command and match the header to `operationId`. Retry a lost response
with exactly the same body and UUID. A `409` whose `error.code` is `conflict` and whose
`error.details.code` is `onboarding_ai_in_progress` means a draft is already running: wait
`error.details.retryAfterMs` milliseconds and retry the same command. For any other `409`, read
fresh state, then check `error.code` and `error.details.code` (for example `onboarding_setup_stale`).
Never invent fields, activate drafts, add target companies or contact third parties automatically.

Artifact status is visible in the app. An agent reports the persisted choices; humans review
resulting drafts in the app. Artifact
preparation does not block completion. Keys cannot access handoff, private answers or other
internal setup operations.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.