Docs
Getting started
01
What AuditYourBrand measures
Seven signals, all of them counts over things that actually happened. No estimated volumes, no model scoring another model on a 1–10 scale, no number without the evidence it came from.
AI visibility
Recommendation strength
Share of voice
Citations
Accuracy
GEO readiness
Classic search
02
How the audit works
An audit is the starting point: one domain in, an evidence-backed picture out. It takes a few minutes and you watch it run.
- 1
You enter a domain
Nothing else. No tag to install, no analytics connection, no access to anything behind your login.
- 2
We crawl the public site
Roughly eight pages, unauthenticated — the same view an anonymous visitor and an AI crawler get.
- 3
We build a Brand Genome
What you sell, to whom, how you position, what you claim — each field backed by an evidence quote from a page we actually fetched. Anything the site does not say stays marked unknown rather than being guessed.
- 4
We score six categories
Including AI visibility, which is polled live against the answer engines rather than inferred from your content.
- 5
We rank opportunities
Each with its evidence, its impact and its confidence — and a route into a campaign, a design or an outreach sequence when you approve it.
Want to see it before you sign up? The free scan runs the same engines and the same GEO check on a smaller sample — three generic prompts, one answer each — and says so on the result.
03
How AI-visibility sampling works
Ask an answer engine the same question twice and you can get two different brand lists. That single fact determines the whole design: we sample repeatedly and publish intervals instead of a point.
answers per poll = prompts (≤12) × engines × runs per prompt (5) rate = k mentions / n answers interval = Wilson 95% around that rate delta vs 7d ago = shown only if a two-proportion test clears it
Track the prompts your buyers actually type
unbranded firstRead the band, not the point
Polls run daily and degrade gracefully
Every formula, plus the seven limitations we cannot engineer away, is on /methodology.
04
Connect an agent over MCP
AuditYourBrand ships an MCP server: a stateless streamable-HTTP JSON-RPC endpoint exposing 21 read-only tools — 11 native tools plus 10 proxied classic-SEO tools. Auth is the same bearer token the dashboard uses.
curl -s -X POST "$AYB_API/login/" \
-H 'Content-Type: application/json' \
-d '{"username":"admin","password":"…"}'
# → {"token":"…","username":"admin"}{
"mcpServers": {
"audityourbrand": {
"type": "http",
"url": "https://your-install.example.com/api/mcp/",
"headers": { "Authorization": "Bearer <token>" }
}
}
}Confirm the server before wiring credentials
GET /api/mcp/info/ is public and returns tool names, costs and descriptions with no brand data attached.Free tools vs credit-charging tools
cost stated per toolcost: credits in their own description, and one of them — the site audit — queues a crawl and is explicitly not read-only.What no agent can do
by designThe SEO project is injected server-side
05
Install the agent skills
MCP is the data; skills are the workflow. A tool description can say what a tool returns — it cannot say which tool to reach for, in what order, or when a number means nothing at all. Five skills carry that judgement, as plain markdown you can read, edit and audit.
npx skills add https://github.com/<org>/AuditYourBrand
ayb-brand-audit
skillayb-ai-visibility
skillayb-search-vs-ai
skillayb-fix-gaps
skillayb-weekly-review
skillEvery skill enforces two rules. Anti-fabrication: if AuditYourBrand does not return a value, the agent writes unknown — and no bare percentage, ever, without its sample size and interval. Anti-spend: name the tool, the reason and the rough cost, then wait for a yes before any credit-consuming call.
A typical chain is ayb-brand-audit → ayb-search-vs-ai → ayb-fix-gaps, with the weekly review on a cadence.
06
API quickstart
The public API is read-only and lives at /api/v1/. It uses its own bearer tokens — deliberately not your dashboard session — with a read scope and a throttle of 120 requests per hour per token.
curl -s -X POST "$AYB_API/tokens/" \
-H "Authorization: Bearer <dashboard-token>" \
-H 'Content-Type: application/json' \
-d '{"name":"reporting-script"}'
# → {"id":1,"name":"reporting-script","token":"ayb_…","preview":"ayb_…abcd", …}curl -s "$AYB_API/v1/visibility/summary/?brand=1" \ -H "Authorization: Bearer ayb_…"
| Endpoint | Returns |
|---|---|
| GET /api/v1/brands/ | Every brand in the workspace. |
| GET /api/v1/brands/{id}/report/ | The full audit report — genome, score, opportunities. |
| GET /api/v1/visibility/summary/?brand= | Latest snapshot per engine, with k/n and Wilson intervals. |
| GET /api/v1/visibility/snapshots/?brand=&days= | The daily series behind the trend chart. |
| GET /api/v1/opportunities/?brand=&status= | Ranked opportunities. |
| GET /api/v1/digest/?brand= | The same payload the weekly digest is rendered from. |
| GET /api/v1/geo-readiness/?domain= | The seven-dimension GEO check. |
| GET /api/v1/openapi.json | The schema for all of the above. No token required. |
Schema
no token needed/api/v1/openapi.json is the machine-readable contract for every endpoint above — generate a client from it rather than hand-rolling one.Revoking
API token revoked. The row is kept so the audit trail survives.Push instead of poll
Start with your own domain
The free scan needs nothing but a domain, and it tells you its own sample size.