> ## Documentation Index
> Fetch the complete documentation index at: https://firecrawl-noaa-mar-900-create-self-partnership-provisioning.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Partner Integration API

> API reference for approved Firecrawl partners to create and manage API keys for their users

## Overview

The Firecrawl Partner Integration API allows approved partners to create and manage Firecrawl API keys for their users directly from within their own platform. This enables a seamless onboarding experience where users can start using Firecrawl without leaving the partner's platform.

<Note>
  Partner API access is **only available to approved Firecrawl partners**. Partner keys are shared privately with approved partners. To apply for the partner program or request a partner API key, email [partnerships@firecrawl.dev](mailto:partnerships@firecrawl.dev).
</Note>

For details on what partner users receive, including credits, expiration, and plan limits, see [Partner Credits](/partner-credits).

## Base URL

```
https://api.firecrawl.dev
```

## Authentication

All Partner Integration API requests require an `Authorization` header with your partner key:

```bash theme={null}
Authorization: Bearer <partner key>
```

Partner keys are distinct from standard Firecrawl API keys and are provided directly by the Firecrawl team.

## Self-serve partner keys

You can self-provision a partner key (integration key) using the Firecrawl Integrations service.

**Base URL**

```
https://integrations.firecrawl.dev
```

**Endpoint**

```
POST /partner/v1/integrations/self-serve
```

**Request**

```bash theme={null}
curl -X POST "https://integrations.firecrawl.dev/partner/v1/integrations/self-serve" \
  -H "Content-Type: application/json" \
  -d '{"display_name":"Acme","domain":"acme.com","metadata":{}}'
```

**Body**

| Field          | Type   | Required | Description                              |
| -------------- | ------ | -------- | ---------------------------------------- |
| `display_name` | string | Yes      | Display name for the integration         |
| `domain`       | string | No       | Optional partner domain                  |
| `metadata`     | object | No       | Optional JSON object for additional data |

**Response (`200 OK`)**

```json theme={null}
{
  "apiKey": "…",
  "slug": "acme-1a2b3c",
  "displayName": "Acme"
}
```

| Field         | Type   | Description                                                               |
| ------------- | ------ | ------------------------------------------------------------------------- |
| `apiKey`      | string | Your partner key (integration key). **Shown once** — store it securely.   |
| `slug`        | string | Stable integration identifier used for scoping partner-created teams/keys |
| `displayName` | string | Echo of the integration display name                                      |

**Errors**

| Status | Description                    |
| ------ | ------------------------------ |
| `400`  | Invalid request body           |
| `409`  | Failed to allocate unique slug |
| `429`  | Rate limit exceeded            |
| `500`  | Internal server error          |

## Security Requirements

* **Server-side only**: Partner keys must only be used in server-side code. Never expose a partner key in frontend code, client-side JavaScript, or mobile applications.
* **Terms of Service**: Before calling the create-user endpoint, your platform must prompt the user to accept Firecrawl's [Terms of Service](https://www.firecrawl.dev/terms-of-service).

***

## Endpoints

### Create User

Creates a Firecrawl API key associated with the user's email address.

```
POST /admin/integration/create-user
```

#### Behavior

* If the user does not yet have a Firecrawl account, a new user and team will be created.
* If the user already has a Firecrawl account but does not have a team associated with your partner integration, a new partner-associated team will be created.
* If the user already has a Firecrawl account and already has a team associated with your partner integration, the existing team is returned and the promotional coupon is **not** re-applied.

#### Request

```bash cURL theme={null}
curl -X POST "https://api.firecrawl.dev/admin/integration/create-user" \
  -H "Authorization: Bearer <partner key>" \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com"}'
```

**Body**

| Field   | Type   | Required | Description              |
| ------- | ------ | -------- | ------------------------ |
| `email` | string | Yes      | The user's email address |

#### Response

**`200 OK`**

```json theme={null}
{
  "apiKey": "fc-...",
  "alreadyExisted": false
}
```

| Field            | Type    | Description                                                                                                                        |
| ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `apiKey`         | string  | The Firecrawl API key for this user's partner-associated team                                                                      |
| `alreadyExisted` | boolean | `true` if both the user and the partner-associated team already existed. When `true`, the promotional coupon is not applied again. |

#### Errors

| Status | Description                                                     |
| ------ | --------------------------------------------------------------- |
| `401`  | Unauthorized - the partner key is incorrect or invalid          |
| `500`  | Internal server error - these errors are monitored by Firecrawl |

***

### Validate API Key

Validates a Firecrawl API key and returns the associated team name and user email address. The API key will only return as valid if it was created through this partner integration.

```
POST /admin/integration/validate-api-key
```

#### Important Notes

* Firecrawl API keys do not have permissions or an expiry date.
* API keys can be manually deleted by users at any time.
* Deleted API keys are not soft-deleted. Firecrawl cannot distinguish a deleted key from one that never existed.

#### Request

```bash cURL theme={null}
curl -X POST "https://api.firecrawl.dev/admin/integration/validate-api-key" \
  -H "Authorization: Bearer <partner key>" \
  -H "Content-Type: application/json" \
  -d '{"apiKey": "fc-..."}'
```

**Body**

| Field    | Type   | Required | Description             |
| -------- | ------ | -------- | ----------------------- |
| `apiKey` | string | Yes      | The API key to validate |

#### Response

**`200 OK`**

```json theme={null}
{
  "teamName": "Example Team",
  "email": "user@example.com"
}
```

| Field      | Type   | Description                                                |
| ---------- | ------ | ---------------------------------------------------------- |
| `teamName` | string | The name of the team associated with this API key          |
| `email`    | string | The email address of the user associated with this API key |

#### Errors

| Status | Description                                                                                           |
| ------ | ----------------------------------------------------------------------------------------------------- |
| `401`  | Unauthorized - the partner key is incorrect or invalid                                                |
| `404`  | API key not identifiable - the key does not exist or was not created through this partner integration |
| `500`  | Internal server error - these errors are monitored by Firecrawl                                       |

***

### Rotate API Key

Deletes an existing Firecrawl API key and creates a new one for the same user and team.

```
POST /admin/integration/rotate-api-key
```

#### Request

```bash cURL theme={null}
curl -X POST "https://api.firecrawl.dev/admin/integration/rotate-api-key" \
  -H "Authorization: Bearer <partner key>" \
  -H "Content-Type: application/json" \
  -d '{"apiKey": "fc-..."}'
```

**Body**

| Field    | Type   | Required | Description                       |
| -------- | ------ | -------- | --------------------------------- |
| `apiKey` | string | Yes      | The API key to delete and replace |

#### Response

**`200 OK`**

```json theme={null}
{
  "apiKey": "fc-..."
}
```

| Field    | Type   | Description               |
| -------- | ------ | ------------------------- |
| `apiKey` | string | The newly created API key |

#### Errors

| Status | Description                                                                                           |
| ------ | ----------------------------------------------------------------------------------------------------- |
| `401`  | Unauthorized - the partner key is incorrect or invalid                                                |
| `404`  | API key not identifiable - the key does not exist or was not created through this partner integration |
| `500`  | Internal server error - these errors are monitored by Firecrawl                                       |

***

## Become a Partner

Firecrawl's partner program is available to approved platforms. If you're interested in integrating Firecrawl into your platform and offering credits to your users, contact us at [partnerships@firecrawl.dev](mailto:partnerships@firecrawl.dev) to learn more and request a partner API key.
