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
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
Webhooks
IfclientWebhookUrl is set on case creation, Offload sends:
case.completedcase.failedcase.input_needed