---
title: "Check AI accessibility for a domain"
method: POST
path: "/api/v1/ai-access/check"
tags: ["AI Access"]
---

# Check AI accessibility for a domain

`POST /api/v1/ai-access/check`

Probe a public domain to determine whether the major AI answer engines (ChatGPT, Claude, Perplexity, Gemini, Copilot, Grok, DeepSeek, Rufus) can crawl it. Returns the same per-model HTTP / robots.txt verdicts the AthenaHQ web app surfaces in its AI accessibility dialog, plus a plain-text diagnostic log shaped for filing host or CDN support tickets.

Rate limited to 30 requests per minute per organization.

## Request body

- object
  - `domain` string, required — The domain to probe (with or without protocol).

## Response `200`

Successful AI access check.

- AIAccessCheckResponse — Successful AI access check response.
  - `result` AIAccessResult, required — Aggregated AI accessibility result. Mirrors the `AIAccessibilityResult` shape rendered in the AthenaHQ web app's AI accessibility dialog.
    - `domain` string, required — The domain that was probed.
    - `status` 'accessible' | 'partial' | 'blocked', required — Overall verdict computed from the live HTTP signals across all 8 model categories.
    - `http` AIAccessUIBotAccess — Per-model accessibility map. Keys map to the major answer engines.
      - `chatgpt` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
      - `claude` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
      - `perplexity` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
      - `gemini` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
      - `copilot` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
      - `grok` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
      - `deepseek` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
      - `rufus` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
    - `robots` AIAccessUIBotAccess — Per-model accessibility map. Keys map to the major answer engines.
      - `chatgpt` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
      - `claude` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
      - `perplexity` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
      - `gemini` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
      - `copilot` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
      - `grok` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
      - `deepseek` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
      - `rufus` AIAccessBotDetails — Per-model conversational/training accessibility booleans.
        - `conversational` boolean, required — Live HTTP signal that the model's conversational user-agent is allowed.
        - `training` boolean, required — Live HTTP signal that the model's training crawler is allowed.
    - `hasSitemap` boolean
    - `checkedAt` string, date-time, required
    - `error` string — Populated only when both probes failed.
  - `diagnostics` AIAccessDiagnostics, required — Per-request diagnostic fingerprint. Useful for filing host or CDN tickets.
    - `userAgentChecks` object, required — Keyed by `${category}.${agentKey}`, e.g. `chatgpt.GPTBot`.
    - `robotsCheck` AIAccessRobotsCheckDetail — robots.txt fetch diagnostics.
      - `url` string, required
      - `status` integer, nullable, required
      - `finalUrl` string, nullable, required
      - `headers` object, required
      - `errorCode` string, nullable, required
      - `errorMessage` string, nullable, required
      - `durationMs` integer, required
      - `checkedAt` string, date-time, required
      - `source` 'direct' | 'fallback' | 'missing', required
  - `log` string, required — Plain-text diagnostic log shaped for a host/CDN ticket. Identical to the string the AthenaHQ web app's `Copy log` button produces.

## Other responses

- `400` — Invalid request body.
- `401` — Unauthorized — invalid or missing API key.
- `429` — Rate limited.
- `500` — Internal server error.

---

[API](https://skmtc.net/athenahq/apis/athenahq-api.md) · [All operations](https://skmtc.net/athenahq/apis/athenahq-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/athenahq/athenahq-api/revisions/6c5d71622cb9/schema)
