Skip to main content
The Replo API lets you work with your Replo workspaces and projects programmatically from your own code, automations, or tools like n8n.

Base URL

All public API endpoints are served from:

Authentication

Create a public API key from your Replo Settings, then send it as a bearer token:
Each public API key uses the current permissions of the person who created it, limited by the key’s scopes. If either check fails, Replo returns a 404. The same status is used when a resource does not exist, so API responses do not confirm private resource IDs. If a known resource returns a 404, check the key’s scopes and its creator’s current project access.

API version

Every request must include the Replo-Api-Version header. See API versioning for the current supported version and upgrade guidance.

Save working documents to Files

Use Files for research and working documents; Assets is a separate media library. Grant your API key files.read to list or read files and files.write to create, rename, or move them. Copying an Asset also requires assets.read. Existing keys do not gain new scopes automatically. Use the project UUID returned by GET /v1/projects. Supply projectId when listing or creating files. Requests for an existing fileId resolve the project from that file. File ownership and sharing permissions still apply.
Omitting parentId saves to My Files. Files accept text, base64 data, or an existing Asset as their source, up to 10 MiB. A duplicate name returns 409 conflict without overwriting. Read contents with GET /v1/files/{fileId}/content; the response contains complete text or a download URL valid for 15 minutes.

Error handling

All errors return a consistent JSON envelope with a code, a message, and a doc_url linking to that code’s documentation:
See Errors for every code and how to recover from it.

Async operations and polling

Some operations, like agent sessions, run asynchronously. They return immediately with a resource ID, and you poll for status updates. Recommended polling pattern:
  1. Call the create endpoint (e.g., POST /agent/sessions)
  2. Receive 202 Accepted with a session ID
  3. Poll the status endpoint every 5-10 seconds (e.g., GET /agent/sessions/{id})
  4. If the response includes pendingInteractions, the session is blocked waiting on you: resolve each one with POST /agent/sessions/{id}/interactions/{interactionId}/resolve, then keep polling
  5. Continue until status is completed or failed
Handling cold starts: New sessions may return 404 for 1-2 seconds during sandbox initialization. Use exponential backoff, with apiVersion set to the current version from API versioning:

Idempotency

Some operations are idempotent: calling them multiple times with the same input produces the same result. When retrying non-idempotent operations after a network failure, check whether the original request succeeded before retrying to avoid duplicates.

MCP

To work with Replo through Claude or ChatGPT instead of making HTTP requests, use Replo’s MCP connection.