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

# API Keys & REST API

> Read and write your partner program from your own systems - a public REST API with scoped, revocable API keys for partners, commissions, and payouts.

> When a program scales, some workflows belong in your own systems. The public REST API lets you read and write partners, commissions, and payouts programmatically, with scoped API keys you control and can revoke at any time.

## What it does

The public REST API exposes the core objects of your program: partners, commission lines, and payouts.
You create an API key, grant it only the scopes it needs, and call the API from your own systems to
list, create, and update those records. Keys can be set to expire and revoked instantly, so access stays
controlled.

This turns Introw into a building block in your stack. RevOps can sync data into a warehouse, finance
can push payout updates from another system, and engineering can automate program workflows, all against
a documented, scoped API.

## The problem it solves

Some integrations cannot be click-configured, and that should not mean exporting spreadsheets:

* **Custom workflows need programmatic access** → A REST API reads and writes partners, commissions, and payouts.
* **Broad access is a security risk** → Keys are scoped to only the resources they need.
* **A leaked key is hard to contain** → Keys expire and can be revoked instantly.
* **Data is trapped in one tool** → The API moves program data into your own systems.

## From problem to solution

Create a scoped key, build against the documented endpoints, and automate the workflows that belong in
your stack. Access stays tight through scopes and expiry, and the CRM remains the source of truth behind
it all.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  key["Create a scoped key"] --> call["Call the endpoints"]
  call --> automate["Automate workflows on the CRM"]
```

## Use cases

<CardGroup cols={2}>
  <Card title="Sync to a warehouse" icon="circle-check">
    Pull program data into your analytics.
  </Card>

  <Card title="Automate payouts" icon="circle-check">
    Update payouts from your own systems.
  </Card>

  <Card title="Register data programmatically" icon="circle-check">
    Create partners and commission lines via API.
  </Card>

  <Card title="Control access" icon="circle-check">
    Scope and rotate keys for security.
  </Card>
</CardGroup>

## Impact

* **Composability** - The API is a building block you combine into your own stack.
* **CRM-native** - Program data stays reconciled to the CRM behind the API.

## Who it's for

<CardGroup cols={2}>
  <Card title="Developer / Integrator" icon="user">
    Builds against the documented API.
  </Card>

  <Card title="Revenue Operations" icon="user">
    Moves program data into the stack.
  </Card>
</CardGroup>

## Works with

{/* CONNECTS:START - generated content goes here */}

<CardGroup cols={2}>
  <Card title="MCP" icon="code" href="/features/developer/mcp">
    MCP exposes the same data to AI clients.
  </Card>

  <Card title="Embed" icon="code" href="/features/developer/embed">
    Embed Introw alongside API calls.
  </Card>

  <Card title="Zapier" icon="plug" href="/features/integrations/zapier">
    Zapier automates against the API.
  </Card>
</CardGroup>

## Going deeper

<CardGroup cols={2}>
  <Card title="How to" icon="screwdriver-wrench" href="./technical">
    Setup, configuration, and all how-to guides.
  </Card>

  <Card title="API reference" icon="code" href="/general/introduction">
    Endpoints, authentication, and code.
  </Card>
</CardGroup>
