ArtieHelp center
Developers · 2 min read

REST API requests and responses

OAuth authentication, versioned endpoints, request envelopes and response examples.

Build integrations against `/api/v1` using OAuth access tokens for the matching MCP resource. Requests run with the signed-in member’s authority and enrolled workspace grant.

On this page

Overview

JSON REST results use:

{"success":true,"data":{"status":"accepted"},"requestId":"REQUEST_UUID"}

Failures use:

{"success":false,"error":{"code":"CONFLICT","message":"Read the current version before trying again."},"requestId":"REQUEST_UUID"}

The objects are illustrative shapes, not universal payloads or fixed error wording. Save request IDs for support; exclude credentials and private content from diagnostic logs.

Send Content-Type: application/json. Delegated keyed REST mutation routes require Idempotency-Key; MCP places the same key in idempotencyKey. If both REST body and header contain a key, they must match. Path IDs and any repeated body IDs must agree.

POST /api/v1/tasks HTTP/1.1
Host: api.artie.ai
Authorization: Bearer <OAUTH_ACCESS_TOKEN>
Content-Type: application/json
Idempotency-Key: project-summary-001

{"artisanId":"ARTISAN_UUID","instructions":"Summarize the selected project notes with sources.","timeZone":"UTC","inputRefs":[]}

Creation and messages normally return HTTP 202 for accepted work. Staged uploads return 201. Most reads and applied controls return 200. A 200 setup-required result is a setup instruction, not a completed business operation. Read-only POST routes /search, /context/read and /images/read do not require mutation keys.

Task answers and full refinements require an explicit expectedRevision from the task read. Task controls can fetch the current revision when omitted. task refine --append first reads the complete current brief and revision. An explicit revision makes the intended edit clear. Never force a stale mutation by deleting its revision check.

Keys for delegated operations are normally 8–128 characters. Keep the same operation, payload and key when recovering a lost response. Reusing a key for a different payload conflicts. A deliberate new operation needs its own key after the old operation has been reconciled.

JSON request bodies are capped at 1 MiB. REST booleans must be literal true/false, numeric query values must be nonnegative integer strings, and repeated status values are supported. Do not repeat other scalar query fields.

Need help with your workspace?

Contact support