The first call any autonomous agent makes against Puffle. Returns whether the workspace has finished onboarding and is ready to operate against.
onboarding_sessions row for the authenticated user, or null if the user has never started onboarding.
The session.status field is the single source of truth for whether the workspace is ready:
| Status | Meaning |
|---|---|
pending | Session created; scrape has not started yet |
looking_up | Resolving the domain / hitting Firecrawl |
gathering_info | Crawling pages (up to 10) |
generating_context | Running the three parallel Sonnet generations |
completed | Workspace is ready. company_context, market_context, and ICP are populated |
failed | Scrape errored. errorMessage and errorStep describe where |
session.status === "completed". The full boot sequence is documented in the Agent Playbook — GET /api/onboarding/status first, then GET /api/context to load the user’s company and ICP profile, then branch into one of the core journeys.If the response is { "session": null } — the user has never started onboarding. Stop and escalate to the human; there is no ICP, no company context, and every downstream call (lead search, campaign creation, deep research) will produce garbage.If status === "failed" — stop and report errorMessage / errorStep to the human. Do not retry blindly; the scrape usually fails because of a bad website URL, which a human has to fix.If status is a transient state (pending, looking_up, gathering_info, generating_context) — poll this endpoint every 3 to 5 seconds. A typical scrape completes in 30 to 90 seconds.No side effects. Safe to call as often as needed. Respect the 100 req per minute global rate limit.Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Specific onboarding session to inspect. Omit to fetch the most-recent session for the authenticated user.
^([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)$Latest (or specified) onboarding session. session is null when the user has no session yet.
Response envelope. The session field is the single source of truth for workspace readiness.
Represents the latest onboarding scrape session for the authenticated user.