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

# AI Access

> Programmatically check whether major AI answer engines can crawl a public domain.

The AI Access API lets you probe a public domain and find out whether the
major AI answer engines (ChatGPT, Claude, Perplexity, Gemini, Copilot,
Grok, DeepSeek, Rufus) can actually reach it. Useful when triaging why a
brand isn't being cited, or when filing a host or CDN ticket because a
specific bot is being blocked.

## What you get back

Every check returns three pieces:

* **`result`** — the per-model verdict. Two parallel maps under `http`
  and `robots` (see [`AIAccessUIBotAccess`](#ai-access-ui-bot-access))
  plus an overall `status` (`accessible`, `partial`, or `blocked`).
* **`diagnostics`** — the request fingerprint for every probe: HTTP
  status code, CDN headers (`cf-ray`, `x-vercel-id`, `x-amz-cf-id`,
  `x-fastly-request-id`, `x-akamai-request-id`, `server`, `via`,
  `x-served-by`, `x-cache`), error codes, duration, and UTC timestamp.
  Pasted into a host or CDN ticket, this is enough for support to
  correlate the request on their side.
* **`log`** — a plain-text rendering of `result + diagnostics` shaped
  for a host/CDN ticket. Identical to the string the AthenaHQ web app's
  "Copy log" button produces.

## Quickstart

```bash theme={null}
curl -X POST https://api.athenahq.ai/api/v1/ai-access/check \
  -H "x-api-key: $ATHENA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "example.com"}'
```

```json theme={null}
{
  "result": {
    "domain": "example.com",
    "status": "partial",
    "checkedAt": "2026-05-10T14:32:11.221Z",
    "http": {
      "chatgpt": { "conversational": true, "training": true },
      "claude": { "conversational": true, "training": false },
      "perplexity": { "conversational": true, "training": true },
      "gemini": { "conversational": true, "training": true },
      "copilot": { "conversational": true, "training": true },
      "grok": { "conversational": false, "training": false },
      "deepseek": { "conversational": true, "training": true },
      "rufus": { "conversational": true, "training": true }
    },
    "robots": { "...": "same shape as http" },
    "hasSitemap": true
  },
  "diagnostics": {
    "robotsCheck": { "...": "robots.txt fetch fingerprint" },
    "userAgentChecks": {
      "chatgpt.GPTBot": { "...": "per-agent fingerprint" }
    }
  },
  "log": "AI Accessibility diagnostic log\nDomain: example.com\nOverall status: partial\n..."
}
```

## Status values

| Value        | Meaning                                                               |
| ------------ | --------------------------------------------------------------------- |
| `accessible` | Every model's primary user-agent received a successful HTTP response. |
| `partial`    | At least one model is allowed and at least one is blocked.            |
| `blocked`    | No model received a successful HTTP response.                         |

The `status` field reflects **live HTTP behaviour**, not robots.txt. A
permissive `robots.txt` paired with a CDN that blocks `GPTBot` returns
`blocked` for ChatGPT, because robots.txt is a policy hint and not all
crawlers honour it.

## Rate limits

The endpoint is rate-limited to **30 requests per minute per
organization**. Exceeding the limit returns `429` with `Retry-After`.

## Authentication

Standard AthenaHQ API key authentication. See [Authentication](/api-reference/authentication).

## Endpoint reference

See [POST /api/v1/ai-access/check](/api-reference/ai-access/check-ai-accessibility-for-a-domain)
for the full request and response schema.
