Documentation Index
Fetch the complete documentation index at: https://docs.offloadapi.com/llms.txt
Use this file to discover all available pages before exploring further.
Base URL
The codebase exposes these public routes, but it does not hardcode a single global hostname. Use the Offload API host for your environment:api.url.
Authentication
Every public client route uses:- missing key ->
401 UNAUTHORIZED - invalid key ->
401 UNAUTHORIZED - inactive key ->
403 FORBIDDEN
Response Envelopes
Application-level success:Timestamps
The public API currently uses:- Unix timestamps in milliseconds for most case and webhook timestamps
- ISO 8601 strings for attachment
expiresAt
Public Routes
| Method | Path | Purpose |
|---|---|---|
POST | /cases | Create and queue a new case |
GET | /cases/{id} | Read the current public case state |
GET | /cases/{id}/attachments/{attachmentId} | Mint a fresh file download URL |
POST | /cases/{id}/input | Provide human input for a paused case |
Route Conventions
POST /casesis asynchronous. It stores the case and queues internal processing.GET /cases/{id}?includeTranscript=truefetches and formats the live email thread.POST /cases/{id}/inputreturns202when the input was queued, not when the workflow has finished reprocessing it.GET /cases/{id}returnsinputRequestwhen the case has an active or recently resolved input request stored on it.
Status Model
| Status | Meaning |
|---|---|
CREATED | Accepted and queued |
RUNNING | Initial outreach, follow-up, or reply handling is in progress |
INPUT_NEEDED | Waiting for your application to answer a question |
COMPLETED | Goal achieved, with result available |
FAILED | Workflow stopped without success |
Webhooks
IfclientWebhookUrl is set on case creation, Offload sends:
case.completedcase.failedcase.input_needed