Developers
ShownInAI API
Run AI visibility scans, track brands over time and pull competitors, cited sources and generated content fixes into your own tools. Available on Growth and Enterprise.
Base URL
https://showninai.com/api/v1
Format
JSON over HTTPS
Rate limit
60 req / min / key
Authentication
Create a key in Dashboard → API. Keys are scoped to one workspace, shown once, and can be revoked at any time. Send the key as a bearer token.
curl https://showninai.com/api/v1/scans \ -H "Authorization: Bearer sia_live_..."
Errors & limits
Errors return a non-2xx status and a body of the form below. Codes: unauthorized (401), plan_required (403), not_found (404), validation_error (400), limit_reached (409), rate_limited (429).
{ "error": { "code": "validation_error", "message": "Business name and category are required." } }AI answers vary between runs. Treat scores as samples and use tracked brands for trends.
POST/scans
Runs a AI scan with web search (about 15–40 seconds) and returns the full result. Scans created through the API are fully unlocked and saved to your workspace.
curl -X POST https://showninai.com/api/v1/scans \
-H "Authorization: Bearer $SHOWNINAI_KEY" \
-H "Content-Type: application/json" \
-d '{"kind":"saas","website":"attio.com"}'
# or with details: {"kind":"saas","business_name":"Attio","category":"CRM for startups","website":"attio.com","competitors":["HubSpot","Pipedrive"],"prompts":10}
# local business: {"kind":"local","business_name":"Smile Studio Dental","category":"dentist","city":"Austin, TX"}{
"data": {
"id": "k2x9fq1a",
"score": 14,
"mention_rate": 0.13,
"mentioned": 2,
"answers_total": 15,
"per_engine": { "chatgpt": { "mentioned": 0, "total": 5 }, ... },
"top_competitors": [{ "name": "Barton Creek Dental", "count": 12 }, ...],
"top_sources": [{ "domain": "yelp.com", "count": 9 }, ...],
"fixes": [{ "title": "...", "detail": "...", "impact": "high" }, ...],
"answers": [{ "engine": "chatgpt", "prompt": "...", "mentioned": false, "position": null, ... }],
"report_url": "https://showninai.com/r/k2x9fq1a",
"pdf_url": "https://showninai.com/api/reports/k2x9fq1a/pdf"
}
}GET/scans
Lists recent scans in the workspace, newest first, without the raw answers. Query: limit (1–100, default 20).
GET/scans/{id}
Returns one scan. Add ?include=content to also get generated content fixes: llmsTxt, robotsTxt, localBusinessJsonLd, faqJsonLd, faqs and per-fix fixCopy.
curl "https://showninai.com/api/v1/scans/k2x9fq1a?include=content" -H "Authorization: Bearer $SHOWNINAI_KEY"
POST/brands
Starts tracking a product or business. The first scan runs immediately, then re-scans run on your plan cadence (daily on Growth and Enterprise), with alert emails on score drops of 10+ points or competitor overtakes. Same fields as POST /scans (kind, website, business_name, category, competitors, city), plus client_name and alert_email. Alerts also post to Slack when connected.
curl -X POST https://showninai.com/api/v1/brands \
-H "Authorization: Bearer $SHOWNINAI_KEY" -H "Content-Type: application/json" \
-d '{"kind":"saas","website":"attio.com","competitors":["HubSpot","Pipedrive","Folk"]}'GET/brands
Lists tracked brands with their current score and full score history.
GET/brands/{id}
Returns one tracked brand with history points (at, score, mention_rate, scan_id, top_competitor) and recent alerts.
{ "data": { "id": "br_...", "score": 41, "history": [{ "at": "2026-10-11T06:00:00Z", "score": 41, ... }], "alerts": [] } }