---
title: "AI Bot Log Analyzer"
method: POST
path: "/tools/ai-bot-log-analyzer/runs"
tags: ["GEO"]
---

# AI Bot Log Analyzer

`POST /tools/ai-bot-log-analyzer/runs`

## Request

- Base URL: `https://seogeoaeo.ai/api/v1`
- URL: `https://seogeoaeo.ai/api/v1/tools/ai-bot-log-analyzer/runs`
- Auth: HTTP bearer

See what GPTBot, ClaudeBot, PerplexityBot and ChatGPT-User actually fetch from your site, and catch impostors. Paste your server or CDN access log to see which AI crawlers and assistants visit, which pages they read, which requests your server refused or broke, and which visits used a crawler's name from an IP its operator does not publish. Costs 8 credits per run. Docs: https://seogeoaeo.ai/tools/ai-bot-log-analyzer

## Headers

- `Idempotency-Key` string: Reuse on retries so the same run is returned instead of charged again. A key only matches a run of the same tool and input, and only while that run is among the workspace's latest 1,000.

## Request body

- object
  - `input` object, required
    - `log` string, required: Raw web server access log lines (combined, common, W3C or JSON lines), at most 750,000 characters.
  - `idempotencyKey` string: Reuse on retries so the same run is returned instead of charged again. A key only matches a run of the same tool and input, and only while that run is among the workspace's latest 1,000.
  - `maxCredits` integer: Refuse the run with max_credits_exceeded if it costs more than this.

## Response `200`

Finished run.

- object
  - `run` Run, required
    - `id` string
    - `toolId` string
    - `slug` string
    - `toolVersion` string
    - `status` 'succeeded' | 'failed'
    - `creditsCharged` integer
    - `priceVersion` string
    - `input` object
    - `result` unknown
    - `improvementTips` ImprovementTips, nullable: What to change to improve the result. Null when the run failed or its result is no longer available.
      - `status` 'changes' | 'clean' | 'incomplete', required: incomplete when any part of the analysis could not run, changes when there are tips, clean when the tool checked everything and found nothing to change.
      - `summary` string, required: Plain-text checklist of every tip, ordered by priority.
      - `tips` ImprovementTip[], required
        - `id` string, required: Names one kind of change and stays the same across runs, so a fixed tip is recognized by its absence.
        - `priority` 'high' | 'medium' | 'low', required
        - `title` string, required
        - `action` string, required: The change to make.
        - `why` string, required
        - `detail` string, required: What the tool observed.
        - `affected` string[], required: URLs, headers, or items the change applies to.
        - `fixIn` 'dns' | 'external': Set when the change is made outside the site's code: in DNS, or in another service.
      - `unchecked` object[], required: Parts of the analysis that could not run. While not empty, the result cannot show that the site is clean.
        - `id` string, required
        - `title` string, required
        - `detail` string, required: What went wrong.
        - `action` string, required: What to do before trusting the result.
      - `rerunVerifies` boolean, required: True when running the tool again with the same input shows whether the changes worked. False when the tips come from the input, so the same input returns them again.
      - `verify` string, required: How to confirm the changes worked.
    - `errorClass` string, nullable
    - `errorMessage` string, nullable
    - `createdAt` string, date-time
    - `startedAt` string, date-time, nullable
    - `finishedAt` string, date-time, nullable

## Other responses

- `400`: Error envelope.
- `401`: Error envelope.
- `402`: Error envelope.
- `404`: Error envelope.
- `409`: Error envelope.
- `413`: Error envelope.
- `429`: Error envelope.
- `502`: Error envelope.
- `503`: Error envelope.

---

[API](https://skmtc.dev/seogeoaeo/apis/seogeoaeo-ai-api.md) · [All operations](https://skmtc.dev/seogeoaeo/apis/seogeoaeo-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/seogeoaeo/apis/seogeoaeo-ai-api/revisions/e6f4e073e822?raw)
