Content Operations

Presign a Document File Upload

Start uploading a document file: a PDF (a bank statement kept as evidence for a recorded balance, an invoice) or a PNG or JPEG photo (a receipt). Returns an upload id and a presigned URL: PUT the file there with the same Content-Type (and Content-Length, if declared), then call complete-document-upload, which creates the document. Nothing is recorded until then, and an upload never completed expires. A stored file is not indexed for search, does not count toward the plan's document limit, and never changes once stored.

Idempotency: supply an Idempotency-Key header to make safe retries; replays within 24 hours return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict.

post/v1/graphs/{graph_id}/operations/create-document-upload

Request

  • Base URL: https://api.robosystems.ai (the document declares no server; this is the origin it was published from)
  • URL: https://api.robosystems.ai/v1/graphs/{graph_id}/operations/create-document-upload
  • Auth: one of:
    • API key in header X-API-Key
    • HTTP bearer

Path parameters

graph_idstring required

Headers

Idempotency-Keystring nullable

Request body

file_namestring required

The file's name, ending in its type's extension (.pdf, .png, .jpg or .jpeg).

content_type'application/pdf' | 'image/png' | 'image/jpeg'

The file's media type.

file_size_bytesinteger nullable

The file's exact size in bytes, at most 25 MB. When given it is signed into the upload URL, so an upload of any other size fails. Completing the upload checks the size either way.

Response

Successful Response

operationstring required

Kebab-case operation name

operationIdstring required

op_-prefixed ULID for audit and SSE correlation

status'completed' | 'pending' | 'failed' required

Operation lifecycle state

resultunknown
atstring required

ISO-8601 UTC timestamp

createdBystring nullable

User ID that initiated the operation

idempotentReplayboolean

True when this envelope came from the idempotency cache — the underlying command did not execute again. False on fresh executions.

Changes

No recorded changes to this operation across all 1 revision of this API.