Sealio Docs

Endpoints

What the v1 API can do today.

A one-page summary of every endpoint. For each endpoint's parameters, request and response schemas and code samples, see the API reference in the sidebar (starting with Create a client). The machine-readable description is at https://api.sealio.ca/v1/openapi.json (OpenAPI 3.1).

Clients

Method and pathScopeDoes
GET /v1/clients?status=active|archived|any&q=clients:readList clients (q matches name, email or phone).
POST /v1/clientsclients:writeCreate a client.
GET /v1/clients/{id}clients:readGet a client, with contacts and custom fields.
PATCH /v1/clients/{id}clients:writeUpdate; fields you send replace the stored ones.
POST /v1/clients/{id}/archive, /restoreclients:writeArchive or restore.
curl https://api.sealio.ca/v1/clients \
  -H "Authorization: Bearer $SEALIO_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"kind":"individual","display_name":"Asha Rao","email":"asha@example.com","preferred_language":"en"}'

Custom fields go in custom_fields, keyed by field id. Masked fields read as •••• unless the key's creator may see sensitive values.

Checklist templates

Method and pathScopeDoes
GET /v1/checklist-templates?status=active|archivedtemplates:readList templates.
GET /v1/checklist-templates/{id}templates:readGet a template with its items.

Requests

Method and pathScopeDoes
GET /v1/requests?status=open|draft|closed|all&client_id=requests:readList requests.
POST /v1/requestsrequests:writeCreate a request from a template for one or more clients; send: true sends it.
GET /v1/requests/{id}requests:readGet a request and its items; with documents:read, each item has a state.
POST /v1/requests/{id}/sendrequests:writeSend a draft.
POST /v1/requests/{id}/cancelrequests:writeCancel.
curl https://api.sealio.ca/v1/requests \
  -H "Authorization: Bearer $SEALIO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"client_ids":["cli_…"],"template_id":"tpl_…","title":"2026 tax return","due_date":"2027-04-30","send":true}'

Item states: to_upload, uploaded, processing, accepted, returned. Request statuses: draft, sent, in_progress, under_review, complete, cancelled, expired.

Documents

Method and pathScopeDoes
GET /v1/requests/{id}/documentsdocuments:readFiles on a request (details only).
GET /v1/documents?review=pending|accepted|returned&limit=documents:readThe firm's newest files across all requests (details only). For an automation's sample data, or polling.
GET /v1/documents/{id}/download-urldocuments:downloadA link valid for 5 minutes. The API never sends file contents itself. Every download is audited.
POST /v1/documents/{id}/reviewdocuments:review{"decision":"accepted"} or {"decision":"returned","reason":"…"}; the client sees the reason.

Audit

Method and pathScopeDoes
GET /v1/audit-events?action=&target_id=&before_sequence=audit:readAudit events, newest first.

Webhook endpoints

Method and pathScopeDoes
GET /v1/webhook-endpointswebhooks:manageList endpoints.
POST /v1/webhook-endpointswebhooks:manageRegister one; the response has secret once.
GET, PATCH, DELETE /v1/webhook-endpoints/{id}webhooks:manageRead, change (url, events, description, status) or delete.
GET /v1/webhook-endpoints/{id}/deliveries?status=webhooks:manageDeliveries from the last 30 days.
POST /v1/events/{id}/resendwebhooks:manageSend an event again (optionally to one endpoint_id).

See Webhooks for events and signatures.

Planned

Cases, schedules, team members and uploads on behalf of a client.

On this page