Skip to main content
POST
/
workspaces
/
{workspaceId}
/
documents
Upload files into a workspace (the single ingest verb)
curl --request POST \
  --url https://origami.chat/api/v2/workspaces/{workspaceId}/documents \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "files": [
    {
      "filename": "<string>",
      "content": "<string>",
      "tableId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    }
  ]
}
'

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

Idempotency-Key
string

Transport-level replay protection — any v2 POST may send it (1–255 printable ASCII characters; UUIDs recommended). The first response for a key is recorded and replayed verbatim for retries with the same key + method/path/body for 24 hours; replayed responses carry the Idempotency-Replay: true response header. Reusing a key with a different request — or retrying while the original is still in flight — returns 409 IDEMPOTENCY_ERROR. 5xx responses are never recorded (the retry re-executes).

Required string length: 1 - 255
Pattern: ^[\x21-\x7e]{1,255}$

Path Parameters

workspaceId
string<uuid>
required

Body

application/json
files
object[]
required

Per-request file cap enforced (over it → 413 TOO_MANY_FILES).

Minimum array length: 1

Response

Per-file ingest results ({ results: [...] }); individual entries may be kind: "error".