Documentation

Atlas API and MCP

Two ways to build on Atlas: the REST API from your code, or the MCP server from an AI agent. Both cover the full signing lifecycle.

OpenAPI spec · llms.txt · REST API · MCP

REST API

Base URL: https://api.atlaswork.ai

Authenticate with an organization API key (format atlas_sk_...). Create and revoke keys in the dashboard. Pass the key as a Bearer token or in the x-api-key header.

Create and send a contract

Create an envelope from a document. Atlas detects the signature fields and returns a review URL along with the envelope ID.

curl -X POST https://api.atlaswork.ai/api/v1/envelopes \
  -H "Authorization: Bearer atlas_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "document": { "url": "https://example.com/nda.pdf" },
    "participants": [
      { "name": "Alice Chen", "email": "alice@example.com" }
    ]
  }'

Then dispatch it. The first signer gets email once you call send.

curl -X POST https://api.atlaswork.ai/api/v1/envelopes/{id}/send \
  -H "Authorization: Bearer atlas_sk_..." \
  -H "Content-Type: application/json" \
  -d '{}'

Write endpoints accept an optional Idempotency-Key header so a retried request cannot create or send twice.

Envelope endpoints

POST /api/v1/envelopes

Create an envelope from a document URL, base64 content, text, or a deferred upload. Returns the envelope and a review URL.

GET /api/v1/envelopes

List envelopes, newest first. Filter by status, paginate with a cursor.

GET /api/v1/envelopes/{id}

Read one envelope with participants, fields, and detection state.

GET /api/v1/envelopes/{id}/status

Poll signing progress: status, signed count, current signer.

PUT /api/v1/envelopes/{id}/draft

Update a draft: document name, participants, fields.

POST /api/v1/envelopes/{id}/send

Send the envelope. The first signer gets email.

POST /api/v1/envelopes/{id}/remind

Email the next pending signer. Rate limited.

POST /api/v1/envelopes/{id}/void

Cancel the envelope so it can no longer be signed.

GET /api/v1/envelopes/{id}/events

Read the envelope event log for lifecycle updates.

GET /api/v1/envelopes/{id}/extract

Get structured parties, dates, and signed field values from a completed envelope.

POST /api/v1/envelopes/{id}/upload/complete

Finish a deferred document upload and start field detection.

Template endpoints

GET /api/v1/templates

List saved templates.

GET /api/v1/templates/{id}

Read a template with its roles and prefill keys.

POST /api/v1/templates/{id}/envelopes

Create an envelope from a template by assigning recipients to roles.

Atlas does not push webhooks today. Poll GET /api/v1/envelopes/{id}/status for progress or read the event log at GET /api/v1/envelopes/{id}/events.

Full request and response shapes live in the OpenAPI spec.

MCP server

Endpoint: https://mcp.atlaswork.ai/mcp

A hosted MCP server over Streamable HTTP. Auth is OAuth 2.1 with PKCE and dynamic client registration: point your client at the endpoint, sign in when prompted, and approve the scopes. API keys are for the REST API only and are never entered into an MCP client. For new documents, agents prepare the envelope and return a review URL, and a human clicks Send before any signer gets email. Sends from a saved template go out on their own unless you pass auto_send: false.

Connect a client

  • Claude: Settings, then Connectors, then Add custom connector. Paste the endpoint URL and sign in.
  • ChatGPT: Settings, then Connectors, then Create. Paste the endpoint URL and complete the OAuth prompt.
  • Cursor and other MCP clients: add the server block below to mcp.json and complete the OAuth prompt in the browser.
{
  "mcpServers": {
    "atlas": {
      "url": "https://mcp.atlaswork.ai/mcp"
    }
  }
}

OAuth details

Clients that support OAuth discover all of this from the endpoint. The 401 challenge points at the protected-resource metadata, which names the authorization server. You only need these values if you are wiring a client by hand.

  • Issuer: https://app.atlaswork.ai/api/auth
  • Metadata (RFC 8414): https://app.atlaswork.ai/.well-known/oauth-authorization-server
  • Endpoints under the issuer: /oauth2/authorize, /oauth2/token, /oauth2/register, /oauth2/revoke, /oauth2/introspect
  • Grants: authorization code with PKCE (S256), refresh token, client credentials. Response type: code.
  • Scopes: envelopes:read, envelopes:write, documents:write, extract:read, offline_access. Read tools need envelopes:read. Write tools need envelopes:write.

Tools

send_contract_for_review

Create a review-first envelope from text, a PDF or DOCX URL, a host attachment, or a deferred upload.

complete_upload_session

Finish a deferred upload after the user drops the file on the upload page.

send_contract_from_template

Create an envelope from a saved template by assigning signers to roles. Sends right away unless auto_send is false.

list_templates

List saved templates with names and IDs.

get_template

Read a template with its roles, prefill keys, and an example send call.

get_envelope

Read an envelope with participants, fields, and detection state.

check_signing_status

Poll signing progress: status, signed count, current signer.

list_envelopes

List envelopes with an optional status filter.

extract_contract_data

Get structured parties, dates, and signed field values from a completed envelope.

remind_signer

Email the next pending signer. Only after the envelope is sent. Rate limited.

void_envelope

Cancel an envelope so it can no longer be signed.