---
title: "AI Answer Visibility"
method: POST
path: "/tools/ai-answer-visibility/runs"
tags: ["GEO"]
---

# AI Answer Visibility

`POST /tools/ai-answer-visibility/runs`

## Request

- Base URL: `https://seogeoaeo.ai/api/v1`
- URL: `https://seogeoaeo.ai/api/v1/tools/ai-answer-visibility/runs`
- Auth: HTTP bearer

Sample ChatGPT, Perplexity and Gemini answers to one question and see whether they mention or cite your brand, and who they name instead. Ask ChatGPT, Perplexity and Gemini the question your customers ask, with web search on, and see whether each answer names your brand, where it ranks among the brands named, whether it cites your site, and which brands and sites it recommends instead. Costs 120 credits per run. Docs: https://seogeoaeo.ai/tools/ai-answer-visibility

## 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
    - `url` string, required: Public http(s) URL. Private, local, and non-web addresses are rejected.
    - `prompt` string, required: The question customers ask an AI assistant, such as What is the best CRM for a small team?
    - `brand` string: Brand name as people write it, such as Linear. Read from the home page when omitted.
  - `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)
