Rex Documentation

Rex is an AI-native, API-first CRM for go-to-market operations. It provides a headless data layer for managing contacts, companies, deals, pipelines, activities, tasks, and more โ€” designed for developers, AI agents, and GTM teams.

Who is this for?

Developers building integrations, automations, and custom workflows on the Rex API. You'll find API references, quickstart guides, and code examples throughout.

GTM Operators configuring pipelines and workflows through the Rex UI. Guides walk you through common tasks step by step.

AI Agents (Claude, GPT, custom LLMs) operating Rex through the MCP server or direct API calls. Every page has a "Copy as Markdown" button, and the full docs are available at /docs/llms.txt.

Quick links

I want to...Go to
Make my first API callYour First API Call
Connect Claude to RexConnect Claude
Understand the data modelContacts & Companies
Set up authenticationAuthentication
Browse the APIAPI Reference
Receive real-time eventsWebhooks & Events

Core principles

API-first. Every Rex feature is available through the API. The web UI is a client of the same API you use. If the UI can do it, the API can do it.

AI-native. Rex is designed to be operated by AI agents. Schema discovery at runtime (GET /schema), structured error responses, and machine-readable documentation make agent integration straightforward.

OpenAPI as source of truth. The OpenAPI spec defines every endpoint, request, response, and error. Client code is generated from it. Documentation is generated from it. If the spec says it works, it works.

Base URL

https://{your-subdomain}.rexgtm.com

Each Rex account gets its own subdomain. All API endpoints are relative to this base URL.

For local development:

http://localhost:8080

Authentication

All API requests require an API key passed via the X-Api-Key header:

curl https://acme.rexgtm.com/contacts \
  -H "X-Api-Key: rex_live_abc123..."

See Authentication for details on key scopes, rate limits, and security best practices.

Response format

All responses follow a consistent envelope:

{
  "data": { ... }
}

List endpoints include pagination metadata:

{
  "data": [ ... ],
  "meta": {
    "cursor": "eyJpZCI6...",
    "has_more": true
  }
}

Errors use a structured format:

{
  "error": {
    "code": "validation_failed",
    "message": "Invalid email address",
    "details": [
      { "field": "email", "code": "invalid_format", "message": "must be a valid email address" }
    ]
  }
}

Was this page helpful?

ยท