# GetIntel API

> Read your GetIntel AI visibility data from your own code with the REST API, including topics, AI answers, competitors, sources, tasks and AI traffic.

Source: https://getintel.ai/docs/api/

The GetIntel API gives you the same data as the app and the [MCP server](/docs/mcp/): topic scores, what each AI engine answered, competitors, cited sources, brand perception, the technical scan, AI traffic and your tasks. Use it to feed your own dashboards, data warehouse or client reports.

The API is **read-only** and returns JSON. Base URL:

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

## Quickstart

<Steps>

1. **Create a key.** In GetIntel, open **Integrations → Developers → GetIntel API** and click **Generate API key**. Copy it now: it's shown once.

2. **Find your brand.** Call `GET /brands`. If your account has one brand you can skip `brand_id` from here on.

   ```sh
   curl https://app.getintel.ai/api/v1/brands \
     -H "Authorization: Bearer YOUR_API_KEY"
   ```

3. **Read your topics.**

   ```sh
   curl "https://app.getintel.ai/api/v1/topics?brand_id=123&days=30" \
     -H "Authorization: Bearer YOUR_API_KEY"
   ```

</Steps>

Every response has the same shape:

```json
{
  "data": { "period": { "from": "2026-08-18", "to": "2026-09-17", "days": 30 }, "topics": [ … ] },
  "meta": { "api_version": "v1", "brand": { "id": 123, "name": "Acme" }, "market": { "id": 7, "code": "US-en", "label": "🇺🇸 United States · English" } }
}
```

## Markets

On Pro and Growth a brand can be tracked in more than one market: a country plus a language, each with its own questions, answers, scores, competitors, sources and tasks. `GET /markets` lists them. Pass `market` (a code such as `IN-hi`, just `IN`, or the market's id) on any other endpoint to read that market; without it you get the primary market. `meta.market` says which market answered. Brand perception and the technical scan are the same in every market.

```sh
curl "https://app.getintel.ai/api/v1/topics?brand_id=123&market=IN-hi" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

## What you can read

| Area | Endpoints |
| --- | --- |
| Account | `/brands`, `/markets`, `/usage` |
| Visibility | `/overview`, `/visibility` |
| Topics | `/topics`, `/topics/{id}` |
| AI answers | `/prompts`, `/answers`, `/answers/runs`, `/answers/history` |
| Competitors | `/competitors`, `/competitors/{name}` |
| Sources | `/sources`, `/pages`, `/content-gaps` |
| Brand perception | `/brand-perception`, `/brand-perception/transcript` |
| Reddit, Search Console | `/reddit`, `/search-console` |
| Technical and AI traffic | `/technical`, `/ai-crawlers`, `/ai-visitors` |
| Tasks | `/tasks`, `/tasks/{id}`, `/weekly-plan`, `/activity` |
| [Pitch reports](/docs/agencies/pitch-reports/) | `GET /pitches`, `GET /pitches/{id}`, `POST /pitches` |

`POST /pitches` is the one endpoint that isn't a read: it scans a company that isn't a client yet, and spends one of the month's pitch reports. It answers `402` when the allowance is gone and `403` when the plan carries none.

Every endpoint's parameters and responses are in the [API reference](/docs/api/reference/). The machine-readable OpenAPI document is at [`https://app.getintel.ai/api/v1/openapi.json`](https://app.getintel.ai/api/v1/openapi.json).

<Aside>
Brand perception, Reddit, AI traffic and tasks are part of the Pro and Growth plans, the same as in the app. On Monitor those endpoints answer `403`.
</Aside>

<CardGrid>
  <LinkCard title="Authentication" description="API keys, brand_id and keeping keys safe." href="/docs/api/authentication/" />
  <LinkCard title="Errors and limits" description="Error codes, the monthly read budget and rate limits." href="/docs/api/errors-and-limits/" />
  <LinkCard title="Examples" description="curl, JavaScript and Python, plus a daily export." href="/docs/api/examples/" />
  <LinkCard title="API reference" description="Every endpoint, parameter and response." href="/docs/api/reference/" />
</CardGrid>
