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

# Introduction

> Programmatic access to your AI brand visibility data

The MentionPilot API lets you access everything in your account programmatically — brands, prompts, competitors, sources, and visibility reports.

Use it to pull data into your own dashboards, automate reporting, or build custom integrations.

***

## Base URL

All API requests go to:

```
https://app.mentionpilot.ai/api/v1
```

***

## Authentication

Every request requires a Bearer token. See the [Authentication](/api-reference/authentication) page for how to generate and use API keys.

***

## Request format

All endpoints accept JSON in the request body. Set the `Content-Type` header accordingly.

```bash theme={null}
Content-Type: application/json
```

***

## What you can do

<CardGroup cols={2}>
  <Card title="Brand" icon="building">
    Get, create, and delete brands. Fetch aggregated visibility, sentiment, and position metrics for a brand.
  </Card>

  <Card title="Prompt" icon="message">
    List prompts, toggle active status, and fetch per-prompt visibility metrics with sentiment and position breakdowns.
  </Card>

  <Card title="Competitor" icon="users">
    Retrieve tracked competitors with full metrics, or untracked competitors with visibility-only data.
  </Card>

  <Card title="Sources" icon="link">
    Fetch the web sources AI platforms used when generating responses for your prompts.
  </Card>
</CardGroup>

***

## Response format

All responses return JSON. Successful responses include `"success": true`.

```json theme={null}
{
  "success": true,
  ...
}
```

Errors include `"success": false` and an `"error"` message.

```json theme={null}
{
  "success": false,
  "error": "brand_id is required"
}
```

***

## HTTP status codes

| Code  | Meaning                                       |
| ----- | --------------------------------------------- |
| `200` | Success                                       |
| `400` | Invalid request — check your parameters       |
| `401` | Missing or invalid API key                    |
| `403` | Your key doesn't have access to this resource |
| `404` | Resource not found                            |
| `500` | Server error                                  |

All endpoints accept JSON in the request body. Set the `Content-Type` header accordingly.

```bash theme={null}
Content-Type: application/json
```

***

## What you can do

<CardGroup cols={2}>
  <Card title="Brand" icon="building">
    Get, create, and delete brands. Fetch aggregated visibility, sentiment, and position metrics for a brand.
  </Card>

  <Card title="Prompt" icon="message">
    List prompts, toggle active status, and fetch per-prompt visibility metrics with sentiment and position breakdowns.
  </Card>

  <Card title="Competitor" icon="users">
    Retrieve tracked competitors with full metrics, or untracked competitors with visibility-only data.
  </Card>

  <Card title="Sources" icon="link">
    Fetch the web sources AI platforms used when generating responses for your prompts.
  </Card>
</CardGroup>

***

## Response format

All responses return JSON. Successful responses include `"success": true`.

```json theme={null}
{
  "success": true,
  ...
}
```

Errors include `"success": false` and an `"error"` message.

```json theme={null}
{
  "success": false,
  "error": "brand_id is required"
}
```

***

## HTTP status codes

| Code  | Meaning                                       |
| ----- | --------------------------------------------- |
| `200` | Success                                       |
| `400` | Invalid request — check your parameters       |
| `401` | Missing or invalid API key                    |
| `403` | Your key doesn't have access to this resource |
| `404` | Resource not found                            |
| `500` | Server error                                  |
