Skip to content
RaltiDocsEARLY ACCESSWebsite ↗
Documentation/API explorer
THE CONTRACT, IN CONTEXT

Meet the API.

Browse every application endpoint. Inspect authentication, parameters, and synthetic examples without touching a live workspace.

Download the endpoint catalog ↓

76 operations

GET/api/sessionRead the current session
Link to this operation #

Read the current session

Returns user, workspace, access, workspaces, members, and capabilities. Paged mode uses a bounded session response.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.
X-Ralti-Workspace-ModeheaderNoSet to paged to receive workspace metadata and bounded initial data rather than assuming every sheet is fully loaded.
initialSheetqueryNoOptional initial sheet ID when X-Ralti-Workspace-Mode is paged.
view / query / q / archivedqueryNoInitial paged-sheet view, search (query or q), and archived=true options.

Behavior to know

  • In Clerk mode, an unsigned request returns 401 clerk_signin_required without creating a guest or setting a guest cookie.
  • Explicit local mode can bootstrap an empty guest workspace and session. x-atlas-client: native adds a token only during token-creating bootstrap; existing session reads do not return a new token.
  • Capabilities include cloudAI, storage, authProvider, and optional accountLinkAvailable.
POST/api/authAuthenticate locally or link an existing account
Link to this operation #

Authenticate locally or link an existing account

Clerk deployments accept only link and start_new after a verified Clerk identity. Explicit local mode accepts signup, signin, and signout.

Authentication & access

Clerk link/start_new requires a verified Clerk identity and any required legacy proof. Local signup/signin/signout use the local authentication boundary.

Parameters

NameLocationRequiredDescription
modebodyYesclerk: link | start_new; local: signup | signin | signout.
emailbodyNoRequired for local signin/signup or password-based legacy proof.
passwordbodyNo10–256 characters for local sign-in/signup and legacy proof.
namebodyNoRequired local signup name, nonempty and at most 100 characters.

Example request body

json
{
  "mode": "start_new"
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 8,192 bytes. Returns a session response; local native token-creating responses may also include token.
  • Local signout revokes the existing opaque session and creates a fresh guest. Clerk sign-in/sign-up/sign-out must use Clerk rather than these local modes.
  • Linking never establishes ownership from an email match alone. Password proof or a valid legacy session is required where applicable.
POST/api/mobile/auth/exchangeComplete an installed iOS sign-in handoff
Link to this operation #

Complete an installed iOS sign-in handoff

An app-managed step used by the installed iOS app’s shared finish page after explicit system authentication. It completes the configured website sign-in flow. This endpoint is documented for understanding the app lifecycle; it is not a supported third-party login integration.

Authentication & access

A valid, unexpired, single-use sign-in handoff code and its matching device verifier. An exact same-origin browser Origin header is required.

Parameters

NameLocationRequiredDescription
OriginheaderYesThe exact configured application origin, supplied by the shared finish page.
codebodyYesThe one-use code returned by the authorized system sign-in handoff.
verifierbodyYesThe matching private verifier retained by the initiating device.

Behavior to know

  • Call only through the normal Ralti sign-in flow. Native bearer exceptions do not remove the required Origin header.
  • Accepts a JSON object containing only code and verifier, with a 4,096-byte body limit. Expired, mismatched, or already consumed grants cannot be reused.
  • Successful completion lets the finish page activate the configured website session. It does not create a third-party API credential or grant additional workspace access.
  • Responses are not cacheable and suppress referrers. Never log handoff codes, verifiers, or returned tickets.
  • If the handoff fails, restart sign-in from the installed app instead of replaying credentials.
GET/api/workspacesList accessible workspaces
Link to this operation #

List accessible workspaces

Returns {workspaces:[...]}, limited to workspaces accessible to the actor.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Example response

json
{
  "workspaces": []
}
POST/api/workspacesCreate, switch, or rename a workspace
Link to this operation #

Create, switch, or rename a workspace

Applies action create, switch, or rename and returns the resulting session response.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions.

Parameters

NameLocationRequiredDescription
actionbodyYescreate | switch | rename.
namebodyNoName for create or rename.
workspaceIdbodyNoTarget workspace for switch; membership required.

Example request body

json
{
  "action": "create",
  "name": "Example projects"
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Rename is managed by the service permission boundary. Workspace selection does not bypass membership.
POST/api/actionsApply a validated operation batch
Link to this operation #

Apply a validated operation batch

Validates and atomically applies the operation array, checks the expected workspace revision, and returns the application result with authoritative workspace and runs.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions.

Parameters

NameLocationRequiredDescription
operationsbodyYesArray of supported Operation objects; at most 500 operations.
expectedRevisionbodyYesInteger workspace revision from the server-owned workspace or proposal being applied.
confirmedbodyNotrue when the reviewed operation batch requires explicit confirmation.
aiJobIdbodyNoOptional owned, completed saved job ID; its application receipt commits with the mutation.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.
X-Ralti-Workspace-ModeheaderNoSet to paged to receive workspace metadata and bounded initial data rather than assuming every sheet is fully loaded.

Example request body

json
{
  "operations": [
    {
      "action": "update_item",
      "spaceId": "sheet_projects",
      "itemId": "record_example",
      "notes": "Reviewed launch checklist."
    }
  ],
  "expectedRevision": 7
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • JSON body limit: 4 MiB. Operation validation, permissions, rules, and references apply to the whole batch.
  • Returns workspace, summary, historyId, and runs. In external-worker mode runs is empty because scheduling is handled outside the request.
  • Stale revisions return HTTP 409 revision_conflict. Do not replace the proposal revision with a newer value just to bypass a conflict.
  • Synthetic examples require IDs and revisions read from your own workspace.
POST/api/historyUndo or redo the current history entry
Link to this operation #

Undo or redo the current history entry

Applies an undo or redo with a revision check, then returns {workspace}.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions.

Parameters

NameLocationRequiredDescription
directionbodyYesundo | redo.
expectedRevisionbodyYesInteger workspace revision from the server-owned workspace or proposal being applied.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.
X-Ralti-Workspace-ModeheaderNoSet to paged to receive workspace metadata and bounded initial data rather than assuming every sheet is fully loaded.

Example request body

json
{
  "direction": "undo",
  "expectedRevision": 8
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 4,096 bytes. History advances the workspace revision; it does not return to an earlier revision number.
  • Top-of-history actor and permission checks apply. This is not selective conflict merging.
GET/api/record-versionsRead saved versions of a record
Link to this operation #

Read saved versions of a record

Returns {versions:[...]} for the authorized sheet and record.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
spaceIdqueryYesSheet identifier.
itemIdqueryYesRecord identifier.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Example response

json
{
  "versions": []
}

Behavior to know

  • Versions are governed record evidence, separate from workspace undo/redo.
GET/api/recordsPage workspace records
Link to this operation #

Page workspace records

Returns workspaceId, revision, records:[{spaceId,item}], total, nextCursor, labels, and counts for all/assigned/due records.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
scopequeryNoall (default), assigned, or due; other values normalize to all.
queryqueryNoOptional text search.
todayqueryNoDate used for due scope.
cursorqueryNoOpaque cursor from the previous response.
limitqueryNoInteger 1–100; default 100.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • Cursor identity binds the query and workspace revision. HTTP 409 page_changed means reload from the first page.
  • nextCursor is null at the end. Treat returned record arrays as pages, not the whole workspace.
GET/api/sheets/{id}/itemsPage records in a sheet
Link to this operation #

Page records in a sheet

Returns a SheetPage: workspaceId, spaceId, revision, items, total, nextCursor, and labels.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
viewqueryNoSaved view identifier used for filtering/sorting.
queryqueryNoSearch text.
archivedqueryNoLiteral true selects archived records.
cursorqueryNoOpaque cursor from the previous response.
limitqueryNoInteger 1–100; default 100.
itemqueryNoFetch a specific item.
itemsqueryNoJSON-encoded array of record IDs.
exactqueryNoLiteral true selects exact-label matching.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • The server validates sheet/view/item scope and enforces access.
  • Cursor belongs to one query identity and revision; changing either requires starting again.
GET/api/sheets/{id}/exportDownload a sheet export
Link to this operation #

Download a sheet export

Exports the authorized sheet as CSV when format=csv, or JSON otherwise.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
formatqueryNocsv for text/csv; any other/omitted value gives application/json.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • Successful response is a file download with Content-Disposition, not an API JSON envelope.
  • CSV resolves computed values and readable linked/member names and escapes formula-like text. Export operates on server-owned sheet data.
  • Errors use the normal JSON error response.
GET/api/search/statusRead permitted search-index status
Link to this operation #

Read permitted search-index status

Returns workspaceId, keywordSearch, semanticSearch configuration/model/dimensions/sources, and coverage.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • Sources are limited by workspace and mailbox access. The response exposes counts/configuration, not indexed private content.
  • Semantic search dimensions are 512. coverage.attachments is false.
POST/api/interpretInterpret an immediate request
Link to this operation #

Interpret an immediate request

Produces a proposal without applying it. Supports JSON or a request-connected NDJSON stream.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
requestbodyYesNonempty instruction, at most 5,000 characters.
interpretationModebodyNoai (default) or explicit built_in.
intentbodyNoask (answer-only) or edit.
streambodyNotrue requests NDJSON progress events.
spaceId / workbookId / insightId / viewIdbodyNoOptional validated context identifiers.
selectedItemIdsbodyNoUp to 1,000 selected record IDs.
conversation / pendingDraft / draftJobIdbodyNoBounded prior conversation or owned saved-draft context.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Example request body

json
{
  "request": "Summarize the open projects.",
  "intent": "ask",
  "interpretationMode": "ai"
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 100,000 bytes. Viewers are answer-only. Generation does not mutate records.
  • JSON returns Proposal fields including operations, summary, risk, provider, and baseRevision; optional clarification, sources, deployment, and aiUnavailable depend on the outcome.
  • stream=true returns application/x-ndjson with status/text/activity/heartbeat/proposal/error events. Only a completed validated proposal is applicable.
  • A missing AI provider can return a successful availability proposal with no operations; check provider/aiUnavailable instead of treating HTTP 200 as an actionable edit.
  • For work that should survive a browser disconnect, use durable /api/ai-jobs.
POST/api/ai-jobsCreate a durable AI job
Link to this operation #

Create a durable AI job

Persists a private actor/workspace-scoped request and returns its public AiJob with HTTP 202.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
requestbodyYesNonempty instruction, at most 5,000 characters.
clientRequestIdbodyNoOptional retry deduplication identifier, 8–100 letters, digits, underscore or hyphen.
intentbodyNoask or edit.
spaceId / workbookId / insightId / viewId / selectedItemIdsbodyNoOptional validated context.
conversation / pendingDraft / draftJobIdbodyNoBounded conversation or owned saved-draft refinement context.
resumeJobIdbodyNoFailed, undismissed job to resume with exactly matching saved request/context.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Example request body

json
{
  "request": "Summarize the open projects.",
  "intent": "ask",
  "clientRequestId": "example_request_0001"
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 100,000 bytes. built_in is rejected here; use /api/interpret for built-in help.
  • Statuses: queued, running, completed, failed, cancelled. Public job fields include id, workspaceId, request, input, baseRevision, status, timestamps, progress, and optional proposal/error/failure.
  • Internal workspace snapshots and model checkpoints are not returned. A background worker must run to process saved jobs.
  • A resume requires the original request and context; changing them produces resume_context_changed.
GET/api/ai-jobsList saved AI jobs
Link to this operation #

List saved AI jobs

Returns {jobs:[...]} for the requesting actor in the selected workspace.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Example response

json
{
  "jobs": []
}

Behavior to know

  • The service lists up to 20 undismissed jobs, prioritizing active work. Membership is rechecked.
GET/api/ai-jobs/{id}Read an owned AI job
Link to this operation #

Read an owned AI job

Returns the public AiJob state and any completed proposal.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • A workspace teammate cannot read another actor’s private job merely by knowing its ID.
DELETE/api/ai-jobs/{id}Cancel or dismiss an AI job
Link to this operation #

Cancel or dismiss an AI job

Requests cancellation for active work or dismisses a finished request; returns the resulting public AiJob.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Cancellation/dismissal is separate from undoing an already applied workspace change. Inspect the returned status.
PATCH/api/ai-jobs/{id}Edit or refresh a saved draft
Link to this operation #

Edit or refresh a saved draft

For a completed, unapplied, undismissed job, accepts sheetNames, validated operations, or rebase:true and returns the updated public AiJob.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
sheetNamesbodyNoAlternative body: array of {spaceId,name}, 1–100 unique sheet IDs; names up to 200 characters.
operationsbodyNoAlternative body: nonempty validated Operation array for the draft.
rebasebodyNoAlternative body: true requests safe refresh against unchanged dependencies.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Example request body

json
{
  "rebase": true
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 512,000 bytes. Do not mix sheetNames with operations/rebase; unsupported keys are rejected.
  • Dependency changes produce 409 draft_dependencies_changed; invalid state produces invalid_draft_state. A safe refresh is not a way to overwrite changed source data.
  • This updates the saved proposal only; /api/actions performs an explicit reviewed apply.
POST/api/attachmentsUpload a private attachment
Link to this operation #

Upload a private attachment

Accepts multipart/form-data with a nonempty file field and returns {url,name} with HTTP 201.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions.

Parameters

NameLocationRequiredDescription
fileformDataYesNonempty file, at most 10 MiB.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Example response

json
{
  "url": "/api/attachments/00000000-0000-4000-8000-000000000001",
  "name": "example.pdf"
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • The multipart envelope is bounded to file maximum plus 65,536 bytes. Workspace file quota is enforced by the repository.
  • Uploading bytes does not insert an attachment reference into a record. Save the returned URL through the standard action contract.
GET/api/attachments/{id}Download or preview an attachment
Link to this operation #

Download or preview an attachment

Checks membership against the attachment’s actual workspace before returning private bytes.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
previewqueryNo1 permits inline rendering only for stored PNG/JPEG/WebP/GIF/AVIF MIME types.

Behavior to know

  • Success is a binary response with private,no-store; default MIME is application/octet-stream and disposition is attachment.
  • Preview remains sandboxed and nosniff. Other file types stay downloads. Errors use the normal JSON shape.
GET/api/dashboardRead a workbook overview
Link to this operation #

Read a workbook overview

Computes the authorized workbook dashboard from server-owned data.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
workbookIdqueryYesExisting workbook ID.
sheetIdqueryNoall (default) or a sheet belonging to this workbook.
todayqueryNoYYYY-MM-DD date; defaults to server UTC date.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • This workbook overview differs from saved insight document queries.
POST/api/insights/queryQuery a dashboard/report layout
Link to this operation #

Query a dashboard/report layout

Evaluates a validated InsightDocument against authorized server data without saving the layout.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
documentbodyYesInsightDocument validated by insightDocumentSchema.
blockIdbodyNoOptional block in that document.
groupKeybodyNoOptional group drilldown; requires blockId.
offsetbodyNoInteger 0–1,000,000.
limitbodyNoInteger 1–100.
todaybodyNoOptional ISO date.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 2 MiB. Returns queryInsights output for the requested layout or drilldown; this is read-only computation despite POST.
POST/api/insights/previewPreview a proposed insight layout
Link to this operation #

Preview a proposed insight layout

Stages operations in memory against the exact expected revision, finds documentId in that preview, and computes its result without saving.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
operationsbodyYes1–500 operations to stage.
documentIdbodyYesInsight document present in the staged layout.
expectedRevisionbodyYesInteger workspace revision from the server-owned workspace or proposal being applied.
blockId / groupKey / offset / limit / todaybodyNoOptional drilldown fields; groupKey requires blockId, limit 1–100, offset 0–1,000,000.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 4 MiB. Defaults preview limit to 8. Returns query result plus revision, preview:true, baseRevision, and document.
  • No repository apply, persistence, history entry, job, or external call is performed.
GET/api/documentsRead document templates, drafts, and versions
Link to this operation #

Read document templates, drafts, and versions

With workbookId returns templates/documents; with documentId returns {document}; adding version returns {version,snapshot}; recordSpaceId+recordId returns sourceRecord/documents.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
workbookIdqueryNoWorkbook to list when other selectors are absent.
documentIdqueryNoExisting document to inspect.
versionqueryNoVersion selector when documentId is present; an empty selector requests service default.
recordSpaceIdqueryNoSheet of a related record; required together with recordId.
recordIdqueryNoRelated record; required together with recordSpaceId.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • Record selectors take precedence over document/workbook selection. Access is enforced for every requested resource.
POST/api/documentsManage document templates and drafts
Link to this operation #

Manage document templates and drafts

Dispatches save_template, create_draft, create_batch, save_draft, preview, finalize, or revise through the document service.

Authentication & access

Clerk session cookie or bearer JWT, or an explicit local session. Current workspace membership required; mutation commands require editing permission. Preview reads authorized workspace data.

Parameters

NameLocationRequiredDescription
actionbodyYessave_template | create_draft | create_batch | save_draft | preview | finalize | revise.
templatebodyNoRequired for save_template and preview; validated document template.
templateIdbodyNoRequired for create_draft/create_batch.
sourceItemId / sourceSpaceId / namebodyNoOptional draft context; accepted fields vary by action.
sourceItemIdsbodyNo1–100 IDs for create_batch; duplicate IDs are deduplicated.
documentId / revisionbodyNoRequired for save_draft/finalize/revise; revision is a positive document revision, not workspace expectedRevision.
layoutbodyNoRequired for save_draft.

Example request body

json
{
  "action": "finalize",
  "documentId": "document_example",
  "revision": 1
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 8 MiB. Template saving and draft/finalize changes require editing permission; record-bound drafts must pass service checks.
  • Returns {template}, {snapshot}, {document}, or {documents} according to action. Draft/batch creation returns HTTP 201.
  • Preview is not finalization; finalization preserves the resolved version and PDF.
POST/api/documents/planPlan a document template
Link to this operation #

Plan a document template

Produces {template} from a prompt and workbook context without saving the result.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions.

Parameters

NameLocationRequiredDescription
workbookIdbodyYesWorkbook identifier, up to 160 characters.
promptbodyYesNonempty prompt, up to 5,000 characters.
sourceSpaceIdbodyNoOptional source sheet ID.
templatebodyNoOptional existing validated template to refine.

Example request body

json
{
  "workbookId": "workbook_projects",
  "prompt": "Create a clear project summary with client and due date."
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 4,000,000 bytes. Permission is rechecked after planning. Invalid generated bindings return 422 invalid_document_plan.
GET/api/documents/{id}/pdfDownload a saved document PDF
Link to this operation #

Download a saved document PDF

Reads the authorized finalized version and returns its PDF bytes.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
versionqueryNoOptional version selector; omitted uses the service default.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • Successful response is application/pdf with attachment disposition and private,no-store.
  • The downloaded filename derives from the document number and version. Errors remain JSON.
GET/api/workbook-templatesList saved workbook templates
Link to this operation #

List saved workbook templates

Returns {templates:[...]} for the selected workspace.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Example response

json
{
  "templates": []
}
POST/api/workbook-templatesSave a reusable workbook template
Link to this operation #

Save a reusable workbook template

Captures an existing workbook structure and document layouts without its business records, returning {template}.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. Owner/admin management permission is required.

Parameters

NameLocationRequiredDescription
workbookIdbodyYesExisting workbook to capture.
namebodyYesTrimmed name, 1–100 characters.
descriptionbodyNoDescription up to 1,000 characters; defaults empty.

Example request body

json
{
  "workbookId": "workbook_projects",
  "name": "Project delivery",
  "description": "Reusable project structure."
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Strict schema rejects extra keys. Maximum 100 reusable templates per workspace.
POST/api/workbook-templates/installPreview or install a saved template
Link to this operation #

Preview or install a saved template

Instantiates a saved template with chosen name and reuse mapping; preview:true returns the staged plan instead of installing.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. Owner/admin management permission is required.

Parameters

NameLocationRequiredDescription
templateIdbodyYesSaved template ID.
namebodyYesNew workbook name, 1–100 characters.
expectedRevisionbodyYesInteger workspace revision from the server-owned workspace or proposal being applied.
reusebodyNoString-to-string mapping of template sheet IDs to existing sheets; defaults {}.
requestIdbodyNo8–100 character deduplication identifier; required when preview is false.
previewbodyNoBoolean, default false.

Example request body

json
{
  "templateId": "template_example",
  "name": "New delivery workbook",
  "expectedRevision": 7,
  "preview": true
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Preview returns {workbookId,operations,installed:false}. Successful install returns {workbookId,installed:true}.
POST/api/templates/installInstall a reviewed built-in template
Link to this operation #

Install a reviewed built-in template

Installs a recognized built-in template from a validated reviewed operation batch and matching workspace revision.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. Owner/admin management permission is required.

Parameters

NameLocationRequiredDescription
templateIdbodyYesID from WORKSPACE_TEMPLATES; not an arbitrary user-supplied template name.
operationsbodyYes1–500 validated template operations including create_workbook.
expectedRevisionbodyYesInteger workspace revision from the server-owned workspace or proposal being applied.

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 4 MiB. Returns {workbookId,documentCount}. Billing template can include starter invoice/quote layouts.
  • Helpers installed through the validated template plan remain subject to template safety rules.
GET/api/teamRead team state
Link to this operation #

Read team state

Returns members, permitted invitations, activity, notifications, and presence.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • Invitations are returned only to members with management access.
POST/api/teamManage invitations, members, or notifications
Link to this operation #

Manage invitations, members, or notifications

Dispatches invite, accept_invite, revoke_invite, update_member, remove_member, or read_notifications.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
actionbodyYesinvite | accept_invite | revoke_invite | update_member | remove_member | read_notifications.
email / role / sendEmailbodyNoFor invite: email and invitable role; optional boolean sendEmail.
tokenbodyNoFor accept_invite.
invitationIdbodyNoFor revoke_invite.
userId / rolebodyNoFor update_member; userId alone for remove_member.
idsbodyNoFor read_notifications: up to 100 notification IDs; omitted marks all own unread notifications.

Example request body

json
{
  "action": "read_notifications"
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 12,000 bytes. Invite/member management requires owner/admin; another admin’s role and the immutable owner have additional restrictions.
  • Invitable roles are admin, editor, viewer. Clerk invite acceptance requires a verified matching email.
  • Invite returns invitation, inviteToken, inviteUrl and optional emailDelivery with HTTP 201; acceptance returns sessionResponse; other actions return team state.
  • sendEmail must be explicitly true to queue a configured invitation email.
GET/api/commentsRead a record discussion
Link to this operation #

Read a record discussion

Returns {comments:[...]} for an accessible record.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
spaceIdqueryYesRecord sheet.
itemIdqueryYesRecord ID.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Example response

json
{
  "comments": []
}
POST/api/commentsAdd or delete a comment
Link to this operation #

Add or delete a comment

Adds a record comment/reply or deletes an authorized comment; returns {comments}.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
actionbodyYesadd | delete.
spaceId / itemId / bodybodyNoRequired for add; body is nonempty, up to 5,000 characters.
mentionsbodyNoOptional up to 25 current member IDs.
parentIdbodyNoOptional original comment ID for a reply on the same record.
commentIdbodyNoRequired for delete.

Example request body

json
{
  "action": "add",
  "spaceId": "sheet_projects",
  "itemId": "record_example",
  "body": "The launch checklist is ready for review."
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 15,000 bytes. Membership permits discussion, including viewers; deletion enforces author/moderation rights.
  • Add returns HTTP 201. Replies must target an original comment, not another reply.
GET/api/eventsPoll revision and presence
Link to this operation #

Poll revision and presence

Returns workspaceId, revision, presence, and unreadCount.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • This is a JSON polling endpoint, not an SSE event stream.
POST/api/eventsUpdate presence and read events
Link to this operation #

Update presence and read events

Saves the actor’s presence (optional sheet) and returns the same event snapshot.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
spaceIdbodyNoOptional current sheet identifier.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Example request body

json
{}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 1,024 bytes. This does not establish realtime cursor coauthoring.
GET/api/workflowsRead helper runs and workspace
Link to this operation #

Read helper runs and workspace

Returns {runs,workspace} for the selected workspace.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.
X-Ralti-Workspace-ModeheaderNoSet to paged to receive workspace metadata and bounded initial data rather than assuming every sheet is fully loaded.
POST/api/workflowsRun or review a helper
Link to this operation #

Run or review a helper

Runs a saved workflow/agent or applies/dismisses an existing run.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions.

Parameters

NameLocationRequiredDescription
actionbodyYesrun | apply | dismiss.
workflowIdbodyNoRequired for run.
runIdbodyNoRequired for apply or dismiss.
expectedRevisionbodyNoWorkspace revision used by the reviewed/run request; repository checks govern the action.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Example request body

json
{
  "action": "run",
  "workflowId": "workflow_example",
  "expectedRevision": 7
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Returns the helper/run service result; run is not equivalent to unconditional application. Scope, review mode, revision and role checks still apply.
GET/api/workflows/{id}/email-sourceRead an agent’s email grant
Link to this operation #

Read an agent’s email grant

Returns {source:null} when absent, or source configuration, grant identity/time, ownership, validity, and optional reason.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Example response

json
{
  "source": null
}

Behavior to know

  • ID must identify a saved agent. A grant can be invalid after behavioral edits, mailbox disconnection, or loss of the grantor’s access.
PUT/api/workflows/{id}/email-sourceGrant a scoped email source to an agent
Link to this operation #

Grant a scoped email source to an agent

Grants access to a saved agent from a connected mailbox owned by the grantor, after revision and editing checks.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions. Connected-mailbox operations are restricted to its owner; shared threads expose only explicitly shared content.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
configbodyYes{connectionId,folder,days,limit,sender,subject,unreadOnly}; folder inbox|sent, days 1|7|30|90, limit 1–25, text filters max 200 characters.
expectedRevisionbodyYesInteger workspace revision from the server-owned workspace or proposal being applied.

Example request body

json
{
  "config": {
    "connectionId": "mailbox_example",
    "folder": "inbox",
    "days": 7,
    "limit": 10,
    "sender": "",
    "subject": "Project",
    "unreadOnly": true
  },
  "expectedRevision": 7
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Behavior-changing agent edits require a fresh grant. This is separate from workspace email-thread sharing.
DELETE/api/workflows/{id}/email-sourceRevoke an agent’s email source
Link to this operation #

Revoke an agent’s email source

Revokes the source under service ownership/management checks and returns {source:null}.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.

Example response

json
{
  "source": null
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
GET/api/emailRead the email dashboard
Link to this operation #

Read the email dashboard

Returns provider availability, categories/categoryRevision, connections, counts/metrics, visible threads, draft summaries, and bounded page data.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
connectionIdqueryNoLimit to one accessible mailbox.
folderqueryNoinbox | sent | awaiting_reply | drafts | unread | starred | archive | trash.
categoryqueryNoCategory ID or uncategorized; category filtering is owner-only.
spaceIdqueryNoLinked record sheet filter.
itemIdqueryNoLinked record filter.
queryqueryNoSearch matching latest-message subject/preview/participant text.
cursorqueryNoEmail page cursor.
limitqueryNoThread-page requested size; /threads clamps to 1–50, default 30.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • Private mail remains owned by the connecting actor. Explicitly shared linked threads are visible to authorized workspace members.
  • Provider OAuth credentials and remote sync cursors are never returned.
GET/api/email/threadsPage visible email threads
Link to this operation #

Page visible email threads

Returns {threads,filteredCount?,nextCursor?}.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
connectionIdqueryNoLimit to one accessible mailbox.
folderqueryNoinbox | sent | awaiting_reply | drafts | unread | starred | archive | trash.
categoryqueryNoCategory ID or uncategorized; category filtering is owner-only.
spaceIdqueryNoLinked record sheet filter.
itemIdqueryNoLinked record filter.
queryqueryNoSearch matching latest-message subject/preview/participant text.
cursorqueryNoEmail page cursor.
limitqueryNoThread-page requested size; /threads clamps to 1–50, default 30.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Example response

json
{
  "threads": [],
  "filteredCount": 0
}

Behavior to know

  • Cursor is an offset string for email, unlike revision-bound record cursors; it must be an integer from 0 to 100,000.
  • folder=drafts returns an empty thread list; drafts have a separate endpoint.
GET/api/email/threads/{id}Read a conversation
Link to this operation #

Read a conversation

Returns {thread,messages,nextCursor?} after private/shared conversation authorization.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
cursorqueryNoOptional next message-page cursor.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • Only synchronized, visible messages are included. A shared thread does not confer general mailbox access.
PATCH/api/email/threads/{id}Link or share a conversation
Link to this operation #

Link or share a conversation

Mailbox owner updates a record link and private/workspace visibility; returns the thread detail.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions. Connected-mailbox operations are restricted to its owner; shared threads expose only explicitly shared content.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
linkbodyNo{spaceId,itemId} or null; referenced record must be accessible.
visibilitybodyNoprivate | workspace.
sharedbodyNoLegacy boolean alternative when visibility is omitted.

Example request body

json
{
  "link": {
    "spaceId": "sheet_clients",
    "itemId": "record_example"
  },
  "visibility": "workspace"
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • A conversation must link to a CRM record before workspace sharing is allowed.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
PATCH/api/email/threads/{id}/actionsOrganize an email conversation
Link to this operation #

Organize an email conversation

Performs one supported owner action and returns updated thread detail.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions. Connected-mailbox operations are restricted to its owner; shared threads expose only explicitly shared content.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
actionbodyYesread | unread | star | unstar | archive | trash | restore | categorize.
categorybodyNoCategory ID or null; only accepted with categorize.

Example request body

json
{
  "action": "read"
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Provider capability checks can return 422 email_capability_unavailable. Mailbox sync contention can return 409 email_sync_busy.
  • categorize updates local classification; other actions require a connected capable mailbox.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
POST/api/email/syncSynchronize a connected mailbox
Link to this operation #

Synchronize a connected mailbox

Runs synchronization for the requested owned connection and returns its service result.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions. Connected-mailbox operations are restricted to its owner; shared threads expose only explicitly shared content.

Parameters

NameLocationRequiredDescription
connectionIdbodyYesConnected mailbox identifier.

Example request body

json
{
  "connectionId": "mailbox_example"
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Sync leases and provider capability/configuration apply; a request does not grant another actor access to the mailbox.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
DELETE/api/email/connections/{id}Disconnect a mailbox
Link to this operation #

Disconnect a mailbox

Disconnects an owned connection and returns {disconnected:true}.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions. Connected-mailbox operations are restricted to its owner; shared threads expose only explicitly shared content.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.

Example response

json
{
  "disconnected": true
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
PATCH/api/email/connections/{id}/sortingConfigure incoming email sorting
Link to this operation #

Configure incoming email sorting

Updates owned mailbox sorting and returns its public EmailConnection.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions. Connected-mailbox operations are restricted to its owner; shared threads expose only explicitly shared content.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
enabledbodyYesBoolean sorting state.
instructionsbodyNoOptional text up to 1,000 characters.

Example request body

json
{
  "enabled": true,
  "instructions": "Prioritize direct customer questions."
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Strict input accepts only enabled and instructions. Automatic classification still depends on a configured provider and background processing.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
POST/api/email/google/authorizeBegin Google authorization
Link to this operation #

Begin Google authorization

Creates a short-lived OAuth flow for an editing account and returns {url} for browser navigation.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions.

Example request body

json
{}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • The browser Origin must also match the configured provider callback origin; mismatch returns 409 email_origin_mismatch.
  • Google requires an empty JSON object. Microsoft optionally accepts sharedMailbox. Store provider consent state on the server; do not construct your own callback code/state.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
GET/api/email/google/callbackComplete Google authorization
Link to this operation #

Complete Google authorization

Consumes the provider code/state for the signed-in user and redirects back to the application email page.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
codequeryNoOAuth authorization code returned by the provider.
statequeryNoServer-issued OAuth state returned by the provider.
errorqueryNoProvider-declared consent failure/cancellation.

Behavior to know

  • Success and failure both return HTTP 303 redirects, not the normal JSON response.
  • The destination includes page=email, emailProvider, and either email=connected with workspace/emailConnection or email=error with a bounded error code.
  • This route is called by the provider authorization flow, not by an integration inventing codes.
POST/api/email/microsoft/authorizeBegin Microsoft authorization
Link to this operation #

Begin Microsoft authorization

Creates a short-lived OAuth flow for an editing account and returns {url} for browser navigation.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions.

Parameters

NameLocationRequiredDescription
sharedMailboxbodyNoOptional shared mailbox email address.

Example request body

json
{}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • The browser Origin must also match the configured provider callback origin; mismatch returns 409 email_origin_mismatch.
  • Google requires an empty JSON object. Microsoft optionally accepts sharedMailbox. Store provider consent state on the server; do not construct your own callback code/state.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
GET/api/email/microsoft/callbackComplete Microsoft authorization
Link to this operation #

Complete Microsoft authorization

Consumes the provider code/state for the signed-in user and redirects back to the application email page.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
codequeryNoOAuth authorization code returned by the provider.
statequeryNoServer-issued OAuth state returned by the provider.
errorqueryNoProvider-declared consent failure/cancellation.

Behavior to know

  • Success and failure both return HTTP 303 redirects, not the normal JSON response.
  • The destination includes page=email, emailProvider, and either email=connected with workspace/emailConnection or email=error with a bounded error code.
  • This route is called by the provider authorization flow, not by an integration inventing codes.
POST/api/email/imap/connectConnect an IMAP/SMTP mailbox
Link to this operation #

Connect an IMAP/SMTP mailbox

Validates mailbox credentials, verifies provider connectivity, and returns {connection,workspaceId}.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions.

Parameters

NameLocationRequiredDescription
addressbodyYesMailbox email address.
usernamebodyNoDefaults to address when omitted/empty.
passwordbodyYesMailbox app password; never log or return it.
displayNamebodyNoOptional name, at most 150 characters.
imapbodyYes{host,port,secure}: 993/true or 143/false (required STARTTLS).
smtpbodyYes{host,port,secure}: 465/true or 587/false (required STARTTLS).

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 20,000 bytes. Host/DNS network safeguards apply. Credentials are encrypted server-side; response settings omit the password.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
GET/api/email/categoriesRead personal mailbox categories
Link to this operation #

Read personal mailbox categories

Returns {categories,revision} for the actor in this workspace.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.
PUT/api/email/categoriesReplace personal mailbox categories
Link to this operation #

Replace personal mailbox categories

Saves the complete category list with its category-specific revision and returns categories, revision, and clearedThreads.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions.

Parameters

NameLocationRequiredDescription
categoriesbodyYesUp to 30 {id,name,color,description} objects; IDs/names unique, reserved uncategorized ID prohibited.
expectedRevisionbodyYesCurrent category revision (not the workspace revision).

Example request body

json
{
  "categories": [
    {
      "id": "client_requests",
      "name": "Client requests",
      "color": "blue",
      "description": "Questions and requests from current clients."
    }
  ],
  "expectedRevision": 0
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Category name max 48, description max 500; colors use the shared OptionColor enum.
  • Stale category revisions return 409 email_categories_conflict. Removed categories can clear existing thread classifications.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
POST/api/email/categories/planPlan a category setup
Link to this operation #

Plan a category setup

Builds a reviewed category proposal without changing saved categories or reading mailbox message content.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions.

Parameters

NameLocationRequiredDescription
requestbodyYesNonempty prompt, up to 4,000 characters.
baseRevisionbodyYesCurrent category revision.
conversationbodyNoUp to 10 {role:user|assistant,content} turns; content up to 6,000 chars.
draftbodyNoOptional existing category-array draft.

Example request body

json
{
  "request": "Separate client questions from newsletters.",
  "baseRevision": 0
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 90,000 bytes. Categories are checked again after planning; stale state returns email_categories_stale.
  • Applying a plan uses PUT /api/email/categories with the reviewed category revision.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
GET/api/email/preferencesRead notification preferences
Link to this operation #

Read notification preferences

Returns preferences, notificationSender, canManageNotifications, and delivery counts.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • Preferences are per user/workspace. Sender and delivery visibility respect workspace management access.
PATCH/api/email/preferencesUpdate notification preferences or sender
Link to this operation #

Update notification preferences or sender

Updates personal boolean preferences and/or the workspace notification mailbox, then returns settings.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
preferencesbodyNoOptional subset of enabled, assignments, mentions, replies, salesReplies, workflows; every supplied value is boolean.
notificationSenderbodyNoOptional {connectionId:string|null}; owner/admin access and owned capable mailbox required.

Example request body

json
{
  "preferences": {
    "enabled": true,
    "mentions": true
  }
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 4,096 bytes. At least one supported top-level key is required.
  • Enabling notification email requires a verified recipient account email.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
GET/api/email/draftsList private email drafts
Link to this operation #

List private email drafts

Returns {drafts:[...]} for this actor/workspace.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Example response

json
{
  "drafts": []
}
POST/api/email/draftsCreate a private email draft
Link to this operation #

Create a private email draft

Creates or deduplicates a draft for an owned connected mailbox and returns EmailDraft with HTTP 201.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions. Connected-mailbox operations are restricted to its owner; shared threads expose only explicitly shared content.

Parameters

NameLocationRequiredDescription
connectionIdbodyYesOwned connected mailbox ID.
clientRequestIdbodyYesDeduplication ID used for draft creation.
tobodyYesArray of {address,name?} recipients.
cc / bccbodyNoOptional address arrays; total recipients at most 100.
subjectbodyYesPlain subject, max 998 characters, no newlines.
bodyTextbodyYesPlain text body, max 200,000 characters.
linkbodyNoOptional {spaceId,itemId} record link.
replyToMessageIdbodyNoOptional visible message ID from the same connection.

Example request body

json
{
  "connectionId": "mailbox_example",
  "clientRequestId": "example_draft_0001",
  "to": [
    {
      "address": "recipient@example.com"
    }
  ],
  "subject": "Project update",
  "bodyText": "Here is the update for your review."
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • This only saves a draft. Reusing the creation ID with different content returns a conflict.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
GET/api/email/drafts/{id}Read a private email draft
Link to this operation #

Read a private email draft

Returns EmailDraft for its creating actor in this workspace.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Behavior to know

  • EmailDraft fields include id, connectionId, recipients, subject, bodyText, status, createdAt, updatedAt, and optional sentAt/link/replyToMessageId/error.
PATCH/api/email/drafts/{id}Edit an unsent draft
Link to this operation #

Edit an unsent draft

Merges provided draft fields with the original and returns the updated EmailDraft.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions. Connected-mailbox operations are restricted to its owner; shared threads expose only explicitly shared content.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
to / cc / bcc / subject / bodyText / link / replyToMessageIdbodyNoOptional replacements using the same draft validation.

Example request body

json
{
  "bodyText": "Updated project summary for review."
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Only draft/failed statuses are editable. A draft cannot move to another mailbox.
  • Concurrent changes can return 409 email_draft_changed. Sending uses the latest returned updatedAt as explicit review proof.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
DELETE/api/email/drafts/{id}Discard an unsent draft
Link to this operation #

Discard an unsent draft

Deletes a draft or failed message and returns {deleted:true}.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions. Connected-mailbox operations are restricted to its owner; shared threads expose only explicitly shared content.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.

Example response

json
{
  "deleted": true
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Queued, sending, sent, or uncertain delivery states cannot be discarded with this endpoint.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
POST/api/email/drafts/{id}/sendQueue an explicitly reviewed message
Link to this operation #

Queue an explicitly reviewed message

Queues one reviewed draft for durable delivery and returns EmailDraft with HTTP 202.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions. Connected-mailbox operations are restricted to its owner; shared threads expose only explicitly shared content.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
confirmedbodyYesMust be true after reviewing actual recipients and content.
clientRequestIdbodyYesUnique send deduplication identifier.
expectedUpdatedAtbodyYesExact updatedAt of the draft that was reviewed.

Example request body

json
{
  "confirmed": true,
  "clientRequestId": "example_send_0001",
  "expectedUpdatedAt": "2026-01-01T12:00:00.000Z"
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • HTTP 202 is queued, not proof of delivery. Inspect status until sent/failed/unknown.
  • Same send ID is deduplicated. Stale draft versions return email_draft_changed; already queued/sent/uncertain messages are not automatically resent.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
POST/api/email/drafts/{id}/reconcileReconcile an uncertain delivery
Link to this operation #

Reconcile an uncertain delivery

Checks provider evidence for an owned draft whose delivery outcome needs resolution and returns the updated draft.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. The requested write must also pass editing and operation-specific permissions. Connected-mailbox operations are restricted to its owner; shared threads expose only explicitly shared content.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • No JSON request body is required. Reconciliation is not an instruction to send the message again.
  • Mailbox/category mutations require a registered editing account; personal preference changes use their own membership/verified-email checks.
GET/api/forms/{workspaceId}/{viewId}Read a published form
Link to this operation #

Read a published form

Returns {form} only when the supplied capability identifies a currently published form.

Authentication & access

Published-form capability in x-ralti-form-key. No signed-in account is required; the form must still be published and its capability valid.

Parameters

NameLocationRequiredDescription
workspaceIdpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
viewIdpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
x-ralti-form-keyheaderYes64 lowercase hexadecimal characters from the published form capability.

Behavior to know

  • Invalid/unpublished form capabilities return 404 without revealing the workspace.
  • Response includes no-store and Referrer-Policy:no-referrer. The capability must not be exposed in shared logs.
POST/api/forms/{workspaceId}/{viewId}Submit a published form
Link to this operation #

Submit a published form

Validates the form fields and creates its record atomically under the published-form capability.

Authentication & access

Published-form capability in x-ralti-form-key. No signed-in account is required; the form must still be published and its capability valid.

Parameters

NameLocationRequiredDescription
workspaceIdpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
viewIdpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.
x-ralti-form-keyheaderYesValid published-form capability.
submissionIdbodyYesUUID-shaped stable submission identifier; reusing it deduplicates a retry.
valuesbodyYesField-ID keyed values accepted by this published form.

Example request body

json
{
  "submissionId": "00000000-0000-4000-8000-000000000001",
  "values": {
    "field_name": "Example request"
  }
}

Example response

json
{
  "success": true,
  "message": "Thank you for your response."
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 128 KiB. First successful creation returns 201; an already recorded submission returns 200. Actual success message comes from the form definition.
  • Field validation failures return 422. The server retries up to three revision attempts; the caller does not supply workspace expectedRevision.
GET/api/mcp/connectionsList personal MCP connections
Link to this operation #

List personal MCP connections

Returns {connections:[...]} for this signed-in actor and workspace; token secret is never listed.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. A registered/non-guest account is required.

Parameters

NameLocationRequiredDescription
X-Atlas-WorkspaceheaderNoOptional workspace ID. Selects scope; never grants access. Omit to use the account preference.

Example response

json
{
  "connections": []
}
POST/api/mcp/connectionsIssue a scoped MCP connection
Link to this operation #

Issue a scoped MCP connection

Creates a personal connection and returns {connection,token} with HTTP 201. The token is shown only at creation.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. Registered account required; drafts:propose also requires editing permission.

Parameters

NameLocationRequiredDescription
namebodyYesTrimmed connection name, 1–80 characters.
scopesbodyYesNonempty array: records:read, email:read, drafts:propose.
daysbodyYesExpiration: 7, 30, or 90.

Example request body

json
{
  "name": "Example research connection",
  "scopes": [
    "records:read"
  ],
  "days": 7
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Body limit: 8,192 bytes. drafts:propose also requires records:read. Maximum 25 active connections per actor.
  • Store the returned token securely. Do not substitute a Clerk session token when calling /api/mcp.
DELETE/api/mcp/connections/{id}Revoke a personal MCP connection
Link to this operation #

Revoke a personal MCP connection

Revokes an actor-owned connection in the selected workspace and returns {revoked:true}.

Authentication & access

Clerk session cookie or Clerk bearer JWT; explicit local mode accepts its session cookie or opaque native bearer token. Current workspace membership is checked. Registered/non-guest account required.

Parameters

NameLocationRequiredDescription
idpathYesIdentifier supplied by the corresponding Ralti resource; examples use synthetic IDs.

Example response

json
{
  "revoked": true
}

Behavior to know

  • Browser mutations require an exact Origin matching the configured app origin. Native bearer requests may omit Origin; a supplied mismatched Origin is still rejected.
  • Revocation is checked before and after tool operations; it does not delete already saved workspace data.
POST/api/mcpUse the MCP protocol transport
Link to this operation #

Use the MCP protocol transport

Delegates to the MCP SDK transport with stateless and legacy-stateless protocol handling. Use an MCP client; this is not a conventional resource CRUD endpoint.

Authentication & access

Authorization: Bearer <Ralti MCP connection token>. This is a separately issued rlt_mcp_ credential bound to one actor/workspace and scopes, not a Clerk/local session.

Parameters

NameLocationRequiredDescription
AuthorizationheaderYesBearer credential returned once by POST /api/mcp/connections.

Behavior to know

  • The route explicitly exposes this HTTP method; the SDK decides which protocol requests are supported and may reject an incompatible method/request.
  • Maximum request body: 1 MiB. Host/origin validation and HTTPS for external origins are enforced before token use.
  • Responses follow MCP/JSON-RPC, with transport-negotiated response handling; do not assume the normal {error,code} envelope.
  • Authentication errors use JSON-RPC error code -32001 and 401 includes WWW-Authenticate. Earlier origin/host guards may return their own error shape.
  • records:read and email:read expose only the corresponding bounded tools. drafts:propose can validate/save reviewed drafts; no tool applies changes, sends email, or executes arbitrary SQL.
GET/api/mcpUse the MCP protocol transport
Link to this operation #

Use the MCP protocol transport

Delegates to the MCP SDK transport with stateless and legacy-stateless protocol handling. Use an MCP client; this is not a conventional resource CRUD endpoint.

Authentication & access

Authorization: Bearer <Ralti MCP connection token>. This is a separately issued rlt_mcp_ credential bound to one actor/workspace and scopes, not a Clerk/local session.

Parameters

NameLocationRequiredDescription
AuthorizationheaderYesBearer credential returned once by POST /api/mcp/connections.

Behavior to know

  • The route explicitly exposes this HTTP method; the SDK decides which protocol requests are supported and may reject an incompatible method/request.
  • Maximum request body: 1 MiB. Host/origin validation and HTTPS for external origins are enforced before token use.
  • Responses follow MCP/JSON-RPC, with transport-negotiated response handling; do not assume the normal {error,code} envelope.
  • Authentication errors use JSON-RPC error code -32001 and 401 includes WWW-Authenticate. Earlier origin/host guards may return their own error shape.
  • records:read and email:read expose only the corresponding bounded tools. drafts:propose can validate/save reviewed drafts; no tool applies changes, sends email, or executes arbitrary SQL.
DELETE/api/mcpUse the MCP protocol transport
Link to this operation #

Use the MCP protocol transport

Delegates to the MCP SDK transport with stateless and legacy-stateless protocol handling. Use an MCP client; this is not a conventional resource CRUD endpoint.

Authentication & access

Authorization: Bearer <Ralti MCP connection token>. This is a separately issued rlt_mcp_ credential bound to one actor/workspace and scopes, not a Clerk/local session.

Parameters

NameLocationRequiredDescription
AuthorizationheaderYesBearer credential returned once by POST /api/mcp/connections.

Behavior to know

  • The route explicitly exposes this HTTP method; the SDK decides which protocol requests are supported and may reject an incompatible method/request.
  • Maximum request body: 1 MiB. Host/origin validation and HTTPS for external origins are enforced before token use.
  • Responses follow MCP/JSON-RPC, with transport-negotiated response handling; do not assume the normal {error,code} envelope.
  • Authentication errors use JSON-RPC error code -32001 and 401 includes WWW-Authenticate. Earlier origin/host guards may return their own error shape.
  • records:read and email:read expose only the corresponding bounded tools. drafts:propose can validate/save reviewed drafts; no tool applies changes, sends email, or executes arbitrary SQL.
GET/api/healthCheck process liveness
Link to this operation #

Check process liveness

Returns {status:"ok"} without contacting the database or an external provider.

Authentication & access

Public; bypasses Clerk middleware.

Example response

json
{
  "status": "ok"
}

Behavior to know

  • Response is no-store and nosniff. HTTP 200 does not establish database, worker, OAuth, or provider readiness.

Find your next answer.

Start with a question or a feature name.

↑ ↓ NavigateEnter OpenEsc Close