# AI Visibility Check

Do AI assistants know this business exists? Asked cold, graded against the facts.

Asks real AI models about a UK business with no hints and grades each answer against the verified profile (knows / vague / unknown / confused), with a 0–100 score and what to fix.

More and more customers ask an AI assistant who to use, and most small businesses have no idea whether those assistants know they exist. This endpoint asks real AI models (answering from memory, without browsing) about a business with no hints, then grades each answer against the verified profile: knows it, half-knows it, has never heard of it, or confuses it with someone else. You get a 0–100 score and the specific things that would change the answer.

- Price: 5 credits
- Page: https://meetkatalis.com/apis/ai-visibility
- OpenAPI: https://meetkatalis.com/openapi.yaml

## Endpoints

- `GET /api/v1/ai-visibility?q=…` — A business name or website

## Call it

```bash
curl -H "x-api-key: $KATALIS_API_KEY" \
  "https://meetkatalis.com/api/v1/ai-visibility?q=greggs.com"
```

```javascript
const res = await fetch("https://meetkatalis.com/api/v1/ai-visibility?q=greggs.com", {
  headers: { "x-api-key": process.env.KATALIS_API_KEY },
});
if (!res.ok) throw new Error(`Katalis ${res.status}: ${await res.text()}`);
console.log(await res.json());
```

```python
import os, requests

r = requests.get(
    "https://meetkatalis.com/api/v1/ai-visibility?q=greggs.com",
    headers={"x-api-key": os.environ["KATALIS_API_KEY"]},
    timeout=60,
)
r.raise_for_status()
print(r.json())
```

## Example response (a real reply)

```json
{
  "business": { "name": "Example Bakery", "whatTheyDo": "Sourdough bakery and café." },
  "visibility": {
    "score": 33,
    "results": [
      { "model": "openai/gpt-4o-mini", "recognition": "unknown", "note": "Said it didn't know the business." },
      { "model": "anthropic/claude-haiku-4-5", "recognition": "vague", "note": "Knew the name, wrong town." }
    ],
    "advice": ["Say what you do and where in the first line of your homepage."]
  }
}
```

## What you'd build with it

- **Agencies and SEO tools.** Add AI visibility (GEO) to every client report, measured the same way each month.
- **Onboarding and audits.** Show a new client where AI stands on them today, as the before picture.
- **Directories.** Flag which listed businesses AI assistants can't find yet.

## Why this one

- **Asked cold.** No hints, no website pasted in: the question a customer would actually ask.
- **Graded, not guessed.** Each answer is checked against the verified profile, so 'confused with someone else' is caught.
- **UK small business first.** Built for the businesses these assistants know least about.
- **The engine behind the free checker.** The same check our free AI Visibility Checker and members' monthly watch run.

## Conventions

- Auth: `x-api-key: kat_live_…` on every request (free key at https://meetkatalis.com/developers: a verified email and mobile, 100 credits a month, no card).
- One credit balance across every API; each endpoint's price is on its page and in `x-credits` in https://meetkatalis.com/openapi.yaml.
- Keys are camelCase everywhere. A registered company is `company: { name, number, status, statusDetail?, filingsOverdue? }` on the register endpoints; the enrichment family (enrich, score, assess, brand-kit, ai-visibility, tender-match) keeps `business` / `profile` with `companyNumber`.
- Every error has `code` and `requestId`; every reply an `x-request-id` header; a charged reply `x-credits-remaining`; a reply that gave credits back `x-credits-refunded`. Missing = 404 with `query`.
- Burst ceiling 60 requests a minute per key (429, `Retry-After`, no credits used). A failure on our side (5xx) gives the call's credits back.
- Company data contains public sector information licensed under the Open Government Licence v3.0.

Provided "as is"; results come from public sources and, in places, AI, and may be inaccurate or out of date; not legal, professional or credit advice. Terms: https://meetkatalis.com/apis/terms