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

# Operate API

> Programmatic access to your Operate CRM data

# Operate API

The Operate API provides programmatic access to your CRM data. This RESTful API enables you to integrate Operate with your existing tools, build custom workflows, and manage your sales pipeline from code.

## Obtaining an API Key

API access requires an API key tied to your organization. To generate one:

1. Log in to your [Operate dashboard](https://app.operate.so)
2. Navigate to **Settings > API Keys**
3. Click **Create API Key**
4. Copy the key — you won't be able to see it again

<Warning>
  API keys are shown only once at creation time. Store them securely in
  environment variables or a secrets manager.
</Warning>

## Base URL

All API requests are made to:

```
https://api.operate.so
```

## Authentication

Include your API key in the `x-api-key` header with every request:

```bash theme={null}
curl -X GET https://api.operate.so/companies/list \
  -H "x-api-key: your-api-key-here"
```

Your API key is scoped to a specific organization. All data returned is automatically filtered to that organization — no need to pass an organization ID.

For full details on authentication errors and best practices, see [Authentication](/guides/authentication).

## Response Format

All responses follow a consistent shape:

```json Success response theme={null}
{
  "success": true,
  "data": {
    "companies": [...],
    "pagination": {
      "total": 42,
      "limit": 50,
      "offset": 0
    }
  }
}
```

```json Error response theme={null}
{
  "success": false,
  "error": {
    "type": "validation_error",
    "message": "Description of what went wrong"
  }
}
```

Check the `success` field before accessing `data` or `error`.

## Quick Start

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET https://api.operate.so/companies/list \
    -H "x-api-key: your-api-key-here"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.operate.so/companies/list", {
    headers: {
      "x-api-key": "your-api-key-here",
    },
  });

  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api.operate.so/companies/list",
      headers={"x-api-key": "your-api-key-here"},
  )

  print(response.json())
  ```
</CodeGroup>
