This quickstart uses the simulator. It returns a canned response while exercising
the real Agent, Session, and event APIs; it does not run the selected harness or model.
Real managed execution is currently
rollout_fenced; check the status page for readiness.Before you start
You need a Workspace-bound API key, a Workspace ID, and a Principal ID. Get access and create a Principal if you do not have all three.CHECKFU_QUICKSTART_ID unchanged when retrying a request.
Plain HTTP is available to every admitted customer. The CLI and TypeScript SDK
tabs require private-alpha artifacts or a source checkout. See CLI
access and TypeScript SDK
access.
1. Create an Agent
Creating an Agent automatically creates immutable Version 1. There is no Draft or publish step.CHECKFU_AGENT_ID. TypeScript continues with
agent.id. See Agents for editing, versions, and the full
definition.
Legacy Session path (temporarily fenced)
2. Deploy the release
A Session admits against an AgentDeployment revision, not the Agent directly. Deploying publishes the next immutable revision of the Workspace’s deployment for this Agent, pinning the exact release plus the harness, model, and sandbox coordinates the Workspace resolves for it.stable and a canary key) are how you vary execution per Session
now; there is no per-Session override knob.
3. Start a Session
A Session is the durable conversation. It runs as a Principal and can contain many short-lived Runs. It admits against the deployment’s current revision; omittingagent_deployment_revision_number resolves that revision once, and
providing it pins one exact revision.
CHECKFU_SESSION_ID. TypeScript continues with
session.id.
Selected response fields
Selected response fields
agent_deployment_id and agent_deployment_revision_number identify the
immutable deployment revision the Session admitted; agent_id and
agent_release_number name the Agent release that revision pins.4. Send a message
Every human-authored event names the Principal who wrote it and its cause.agent.message. The durable admission,
ordered events, and settlement are real; no harness or model runs in this
tutorial.
5. Follow the event stream
session.status_idle, session.status_completed, session.status_failed, or session.status_canceled.
The CLI and TypeScript tabs stop at the boundary. cURL stays connected; press
Ctrl+C after a boundary event appears.
Read events without a live stream
Read events without a live stream
Use the paged event log when you only need persisted history.
If a request fails
401 auth.invalid_key: check the bearer token and its scope.400 validation.malformed: checkCheckfu-Versionand the request schema.404 validation.not_found: confirm the resource ID belongs to the key’s Workspace.409 validation.conflict: re-read the Agent and use its current top-levelversionasexpected_version.
error.type, not the human-readable message. The error
reference lists every stable type.
Next steps
Add Checkfu to an app
Keep driving the same Session with the TypeScript SDK or plain HTTP.
Understand Sessions
Learn how durable Sessions, short-lived Runs, and ordered events fit together.
Use tools
Choose built-in, connected, or application-executed tools.
Run locally
Complete a durable turn from a Checkfu source checkout.