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

# Export API

> A read-only REST API for pulling your 3RD visibility, citation, competitor, sentiment, and Recommended rate data into a BI tool, a warehouse, or a data-normalization service.

The Export API gives you your own 3RD data as JSON, so you can load it wherever the rest of your reporting lives — a warehouse, a BI tool, or a service like Funnel.io or Supermetrics that normalizes data across platforms.

Every endpoint is a `GET`, returns JSON, and never writes anything.

<Card title="OpenAPI specification" icon="file-json" href="https://app.get3rd.com/api/export/v1/openapi.json">
  `https://app.get3rd.com/api/export/v1/openapi.json` — import this into your client generator or connector framework. It needs no API key, so your integration team can evaluate the API before you have an account.
</Card>

## Base URL

```
https://app.get3rd.com
```

## What you can pull

| Endpoint | One row per | What it tells you |
| - | - | - |
| `/api/export/v1/brands` | brand | The brands your key can read, and their ids |
| `/api/export/v1/visibility` | date × model × market | How often AI assistants mentioned your brand |
| `/api/export/v1/citations` | date × URL | Which pages the models cited, owned vs earned |
| `/api/export/v1/competitors` | date × competitor | The same visibility measure for each tracked competitor |
| `/api/export/v1/citation-share` | date × URL | Citations per URL, with how many were owned citations |
| `/api/export/v1/sentiment` | date | Positive, neutral, and negative mentions, their weights, and the day's sentiment score |
| `/api/export/v1/recommended-rate` | date × entity | How often AI recommended your brand, and each competitor |

Start with `/brands` — every other endpoint takes a `brandId` from it.

## Matching the dashboard

`/citation-share`, `/sentiment`, and `/recommended-rate` return the rows behind the dashboard's [Citation Share](/metrics/citation-share), [Brand Sentiment](/metrics/sentiment), and [Recommended rate](/metrics/recommended-rate) numbers. To get the number for a period, aggregate the rows. Averaging the daily values gives a different number.

* **`/citation-share`** returns `url`, `domain`, `is_owned`, `citations`, and `owned_citations` for each date and URL. Citation Share for a period is `sum(owned_citations) / sum(citations) × 100` — the same number the Overview card shows.
* **`/sentiment`** returns `positive_mentions`, `neutral_mentions`, `negative_mentions`, `positive_weight`, `negative_weight`, and `sentiment_score` for each day. The score for a period is `sum(positive_weight) / (sum(positive_weight) + sum(negative_weight)) × 100`, not the average of the daily `sentiment_score` values. If a period has only neutral mentions, both weight sums are zero and the formula has no value, so guard against dividing by zero.
* **`/recommended-rate`** returns `entity_name`, `is_brand`, `recommended_rate`, and `judged_answers` for each date and entity — your brand first, then each competitor. The rate for a period is not the average of the daily `recommended_rate` values. Data starts on September 22, 2026.

## A first request

```bash theme={null}
curl -H "X-API-Key: $THIRD_API_KEY" \
  "https://app.get3rd.com/api/export/v1/brands"
```

```json theme={null}
{
  "data": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "Acme",
      "url": "acme.com",
      "industry": "Retail",
      "createdAt": "2026-01-14T09:12:00.000Z"
    }
  ]
}
```

Then pull a metric for that brand:

```bash theme={null}
curl -H "X-API-Key: $THIRD_API_KEY" \
  "https://app.get3rd.com/api/export/v1/visibility?brandId=3fa85f64-5717-4562-b3fc-2c963f66afa6&fromDate=2026-08-01&toDate=2026-08-31"
```

```json theme={null}
{
  "data": [
    {
      "date": "2026-08-31",
      "model_id": "gpt-4o",
      "provider": "openai",
      "market_id": "9c1f0b2e-4d7a-4f11-9a3e-8b6c2d5e7f10",
      "market": "Denmark",
      "total_prompts": 240,
      "visible_count": 96,
      "visibility_rate": 40.0
    }
  ],
  "pagination": { "pageSize": 1000, "hasMore": false, "nextCursor": null },
  "meta": {
    "brandId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "fromDate": "2026-08-01T00:00:00.000Z",
    "toDate": "2026-08-31T23:59:59.000Z",
    "plan": "pro"
  }
}
```

## What is not on this API

* **Paid-placement (ads) performance.** Ad data is available only through the [MCP server](/mcp/overview) today. It reads live from the ad platform over a fixed trailing 30-day window, so it cannot be backfilled into a warehouse.
* **Raw AI responses.** The full answer text the models produced is available through MCP, not here.
* **Writes.** Nothing in this API creates or changes data. Set up brands, prompts, and competitors in the app.

## Related

* [Authentication](/api-reference/authentication) — creating and scoping a key
* [Pagination and history](/api-reference/pagination) — paging through rows, and how far back you can read
* [Errors and rate limits](/api-reference/errors)
* [Looker Studio connector](/integrations/looker-studio) — a ready-made connector on the same API


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.