> ## Documentation Index
> Fetch the complete documentation index at: https://docs.outreign.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Core concepts and data model

> The objects in an OutReign account, how they relate, and the conventions every endpoint follows.

## Objects

```text theme={null}
ICP profile ──scores──▶ Lead ──linked by lead_id──▶ Deal
                          │                          │
                          ├──lead_id──▶ Activity ◀──deal_id
                          │
                          └──enrolled in──▶ Sequence ──sends──▶ Emails / Replies

Contact (separate people database, optional company_id)
```

| Object | What it is | REST | MCP |
| - | - | - | - |
| **Lead** | A person at a company you are prospecting. Holds contact, company, enrichment and pipeline fields. | Yes | Yes |
| **Deal** | A pipeline opportunity with value, stage and probability. | Yes | Yes |
| **Activity** | A call, meeting, task, email or note, linked to a lead or deal. | Yes | — |
| **Contact** | A person in your contact database. Separate from saved leads. | Yes | — |
| **ICP profile** | Your ideal-customer definition used for scoring. | Workspace actions | Yes |
| **Sequence** | A multi-step email cadence leads are enrolled in. | — | Yes |
| **Agent** | Your AI SDR configuration and activity. | — | Yes |

## Ownership

API keys and MCP sessions act as their verified user. Account-scoped endpoints do not expose another account's records; an inaccessible ID is reported as not found or unauthorized depending on the action. Do not rely on one universal error status across interfaces.

## IDs and timestamps

* IDs are UUIDs generated by OutReign, e.g. `6f1c2a9e-3b7d-4c1a-9e2f-8a4b5c6d7e8f`. Store them to link records across systems.
* Timestamps are ISO 8601 in UTC, e.g. `2026-11-05T14:02:11.000Z`.
* Dates without a time (`expected_close_date`) use `YYYY-MM-DD`.

## Response envelopes

The examples below are REST CRUD envelopes. Prospecting, intelligence and workspace routes use app-action response shapes; MCP tools use content blocks and, for some tools, structured results. See each operation's reference.

Single record:

```json theme={null}
{ "data": { "id": "6f1c2a9e-...", "company_name": "Northwind Analytics" } }
```

List:

```json theme={null}
{ "data": [ { "id": "6f1c2a9e-..." } ], "count": 128, "limit": 50, "offset": 0 }
```

`count` is the total number of matching records, so `offset + limit < count` means there are more pages.

Error:

```json theme={null}
{ "error": "Invalid API key" }
```

## Lead fields you will use most

| Field | Meaning |
| - | - |
| `contact_name`, `contact_email`, `job_title` | The person. `contact_name` and `company_name` are required to create a lead. |
| `company_name`, `company_website`, `industry`, `company_size` | The company. |
| `lead_status` | Record status, default `active`. Filter lists with `?status=`. |
| `engagement_state` | Outreach state, default `new`. |
| `pipeline_stage` | `new`, `contacted`, `no_response`, `replied`, `bounced`, `meeting_booked`, `qualified`, `not_interested`, `won`, `lost`. Readable over REST; set it over MCP or in the app. |
| `icp_score` | 0–100 fit score from the last scoring run. |
| `enrichment_status`, `enriched_at` | Present once a lead has been enriched. |

The [API reference](https://docs.outreign.io/developer-docs/api-overview.md) lists every field with its type and maximum length.

## Text limits

Text fields are trimmed and cut to their maximum length (most short fields 500 characters, notes and descriptions 2,000). Longer values are truncated, not rejected, so validate on your side if exact values matter.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.