Developers

Build with the REST API

Full OpenAPI 3.1 specification with in-browser try-it. Authenticate with a token and control the entire workspace over HTTP.

Jump to reference
authenticate
curl https://app.ambiguous.ai/api/documents \
  -H "Authorization: Bearer $AMBIGUOUS_API_KEY" \
  -H "Content-Type: application/json"
create a document
curl -X POST https://app.ambiguous.ai/api/documents \
  -H "Authorization: Bearer $AMBIGUOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "doc",
    "title": "Q4 Revenue Plan",
    "content": [
      { "type": "heading", "level": 1, "text": "Q4 Revenue Plan" },
      { "type": "paragraph", "text": "Targets and strategy for next quarter." }
    ]
  }'

# → 201 Created
# → { "id": "doc_8xk2m", "title": "Q4 Revenue Plan", ... }
API Explorer showing typed requests to Documents, Mail, and CRM endpoints with JSON responses

Type a request and watch the response

Every endpoint returns typed JSON with consistent shapes. Request bodies are validated against OpenAPI 3.1 schemas. Responses include the resource ID, timestamps, and workspace context: everything your agent needs to chain the next call.

  • Typed schemas/ OpenAPI 3.1 with full validation
  • Consistent shapes/ Same envelope across all 18 modules
  • Sub-50ms reads/ P95 latency on GET endpoints[production-metrics · 2026-05 · 30-day rolling]

18 modules served from one base URL

Every module exposes CRUD endpoints under https://app.ambiguous.ai/api/. Bearer token authentication on every request.

Documents

  • GET/api/documents
  • POST/api/documents
  • PATCH/api/documents/:id
  • DELETE/api/documents/:id

Sheets

  • GET/api/sheets
  • POST/api/sheets
  • GET/api/sheets/:id/range
  • PATCH/api/sheets/:id/cells

Slides

  • GET/api/slides
  • POST/api/slides
  • PATCH/api/slides/:id

Canvas

  • POST/api/canvas
  • GET/api/canvas/:id/manifest
  • POST/api/canvas/:id/elements
  • PATCH/api/canvas/:id/elements/:elId

Wiki

  • GET/api/wiki/pages
  • POST/api/wiki/pages
  • PATCH/api/wiki/pages/:id

Mail

  • GET/api/mail/inbox
  • POST/api/mail/send
  • GET/api/mail/:id

Chat

  • GET/api/channels
  • POST/api/channels/:id/messages
  • GET/api/channels/:id

CRM

  • GET/api/crm/contacts
  • POST/api/crm/deals
  • PATCH/api/crm/deals/:id

Tasks

  • GET/api/tasks
  • POST/api/tasks
  • PATCH/api/tasks/:id/complete

Calendar

  • GET/api/calendar/events
  • POST/api/calendar/events
  • GET/api/calendar/availability

Forms

  • GET/api/forms
  • POST/api/forms/:id/submit
  • GET/api/forms/:id/responses

Drive

  • GET/api/drive/files
  • POST/api/drive/upload
  • DELETE/api/drive/files/:id

Identity

  • GET/api/users
  • POST/api/auth/signup-agent
  • GET/api/users/:id

Admin

  • GET/api/admin/users
  • GET/api/admin/audit-log
  • PATCH/api/admin/settings

Assistant

  • POST/api/assistant/chat
  • GET/api/assistant/recent-activity

Automations

  • GET/api/automations
  • POST/api/automations
  • POST/api/automations/:id/trigger

Search

  • POST/api/search
  • GET/api/search/suggestions
send an email
curl -X POST https://app.ambiguous.ai/api/mail/send \
  -H "Authorization: Bearer $AMBIGUOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": ["team@company.com"],
    "subject": "Weekly update",
    "body_markdown": "Here is this week progress report."
  }'

# → 200 OK
# → { "id": "msg_3kx9f", "status": "sent" }

Full API reference

Browse every endpoint, read typed schemas, and test requests in-browser. Powered by Scalar and our OpenAPI 3.1 specification.

Start free. 18 apps included.

Your agent signs itself up for Ambiguous. Paste one prompt. It asks three questions, then hands you the workspace to claim.