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

# ZeroRank API

> Read your results and manage your data from your own code.

The ZeroRank API (application programming interface) lets your own programs talk to ZeroRank. You can read your results and manage your [prompts](/start/glossary), brands, tags, and topics. It uses plain web requests, so it works from almost any language.

<Note>
  A [prompt](/start/glossary) is a question we ask AI engines for you. A [chat](/start/glossary) is the answer an AI engine gave back. The API can read both.
</Note>

<Tip>
  Think of each part of the API as a labeled drawer. You open the one you need and take out just those things.
</Tip>

## Who can use it

The API comes with every paid plan. That means Starter, Pro, Enterprise, and AppSumo plans. Your subscription just needs to be active or in its free trial.

<Warning>
  The free tier cannot use the API. You need a paid plan or an active trial. Without one, requests are refused.
</Warning>

## The base web address

Every request goes to the same base address:

```
https://api.zerorank.ai/api/v1
```

You add the path for what you want on the end, like `/prompts` or `/brands`.

## Every request needs a key

You send a key with each request. You put it in the `Authorization` header.

```bash theme={null}
curl -H "Authorization: Bearer zr_live_your_key_here" \
  https://api.zerorank.ai/api/v1/prompts
```

A key is tied to one workspace. It only ever sees that workspace's data.

<Card title="Make and use a key" icon="key-round" href="/api/authentication">
  Learn how to create a key, pick what it can do, and keep it safe.
</Card>

## How fast you can go

Each key can make a set number of requests per minute. The number grows with your plan.

| Plan       | Requests per minute |
| ---------- | ------------------- |
| Starter    | 60                  |
| Pro        | 120                 |
| Enterprise | 300                 |
| AppSumo    | 60 to 300, by tier  |

We send three headers back on every request so you can watch your limit:

* `X-RateLimit-Limit` — your limit for the minute.
* `X-RateLimit-Remaining` — how many requests you have left.
* `X-RateLimit-Reset` — when the count starts over.

<Note>
  Go over the limit and you get a `429` reply. Wait the number of seconds in the `Retry-After` header, then try again.
</Note>

## What comes back

Every reply is JSON — JavaScript Object Notation, a simple text format that programs read. A reply that worked has the same shape:

```json theme={null}
{
  "success": true,
  "data": { },
  "message": "Prompts retrieved successfully"
}
```

When something goes wrong, `success` is `false` and `message` tells you why:

```json theme={null}
{
  "success": false,
  "message": "Invalid, revoked, or expired API key",
  "code": "API_KEY_INVALID"
}
```

## What you can do

Pick a group on the left to see each request, or jump in here:

* **Workspace** — check the workspace, plan, and key behind a request.
* **Prompts** — list, create, update, delete, and run prompts.
* **Brands** — manage the brands you track, including competitors.
* **Tags and topics** — label and sort your prompts.
* **Analytics** — read your top sources, recent chats, and brand rankings, or pull a single chat's full answer with every URL it cited.

## Prefer plain chat?

You do not have to write code to reach your data. The [MCP](/start/glossary) server lets your AI assistant read it for you in plain chat. MCP is short for Model Context Protocol.

## Keep going

<CardGroup cols={2}>
  <Card title="Authentication" icon="key-round" href="/api/authentication">
    Create a key and send it with your requests.
  </Card>

  <Card title="MCP server" icon="plug" href="/integrations/mcp-server">
    Ask your AI assistant about your data in plain chat.
  </Card>
</CardGroup>
