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": [] } }