# Searchable Docs - [Introduction](https://docs.searchable.com/introduction.md): Welcome to Searchable - AI-powered SEO platform for the future of search - [Quickstart](https://docs.searchable.com/quickstart.md): Get up and running with Searchable in under 5 minutes - [Plans & Pricing](https://docs.searchable.com/getting-started/plans-pricing.md): Find the right plan and see the limits on your account - [Connecting Your First Domain](https://docs.searchable.com/getting-started/creating-your-project.md): Step-by-step guide to setting up your first domain in Searchable - [Understanding Your Dashboard](https://docs.searchable.com/getting-started/understanding-dashboard.md): Navigate your Searchable dashboard and complete the essential setup steps - [Understanding Scores](https://docs.searchable.com/using-searchable/understanding-scores.md): Learn how Searchable calculates and interprets your optimization scores - [Working with Prompts](https://docs.searchable.com/using-searchable/working-with-prompts.md): Master the art of creating and managing prompts to track your AI visibility - [AI Visibility Tracking](https://docs.searchable.com/using-searchable/visibility-tracking.md): Monitor and analyze your brand mentions across AI platforms - [AI-Powered Content Generation](https://docs.searchable.com/using-searchable/content-generation.md): Generate optimized content that ranks in both traditional search and AI responses - [Site Audits](https://docs.searchable.com/using-searchable/site-audits.md): Run comprehensive technical and content audits to identify and fix optimization issues - [Troubleshooting](https://docs.searchable.com/using-searchable/troubleshooting.md): Solutions to common issues and problems in Searchable - [Setting Up a Pitch](https://docs.searchable.com/agencies/setting-up-a-pitch.md): Show a prospect their AI visibility before they sign - [Building a Pitch Report](https://docs.searchable.com/agencies/building-a-pitch-report.md): Turn your pitch data into a story that wins the deal - [Integrations Overview](https://docs.searchable.com/integrations/overview.md): Connect Searchable with your favorite tools and platforms - [MCP Integration](https://docs.searchable.com/integrations/mcp.md): Connect Searchable to Claude, ChatGPT, Grok, Gemini, Microsoft Copilot agents, and other MCP-compatible assistants. - [Use Cases](https://docs.searchable.com/use-cases.md): Paste-ready prompts for the Searchable MCP — weekly AI visibility briefs, competitor watch, citation gap analysis, and more. - [Google Search Console Integration](https://docs.searchable.com/integrations/google-search-console.md): Connect Google Search Console to enrich your SEO and AEO data - [Google Analytics 4 Integration](https://docs.searchable.com/integrations/google-analytics-4.md): Connect GA4 to track traffic, conversions, and user behavior from AI platforms - [Recipe: Why did our AI visibility drop?](https://docs.searchable.com/recipes/visibility-drop.md): Confirm the drop, isolate which engines moved, separate 'we fell' from 'a rival rose', and find where the loss sits. - [Recipe: Where do we stand against our competitors?](https://docs.searchable.com/recipes/competitive-position.md): Read share-of-voice standing with ranks and movement, then find the topics where a rival currently leads. - [Recipe: Why aren't we being cited?](https://docs.searchable.com/recipes/citation-gap.md): Find the sources AI answers actually draw on for your space, and whether the gap is your content or your absence from those sources. - [LLM Analytics Setup](https://docs.searchable.com/setup/overview.md): Connect your hosting platform to Searchable so we can show you which AI assistants and crawlers are visiting your site - [Send Vercel traffic to Searchable](https://docs.searchable.com/setup/vercel.md): Stream your Vercel project's request logs to Searchable using a Log Drain — no code changes, takes about 3 minutes - [Send Cloudflare traffic to Searchable (Worker)](https://docs.searchable.com/setup/cloudflare-worker.md): Deploy a small Cloudflare Worker that forwards AI-bot requests to Searchable. Works on every Cloudflare plan, including Free. - [Send Cloudflare traffic to Searchable (Logpush)](https://docs.searchable.com/setup/cloudflare.md): Stream Cloudflare HTTP request logs directly to Searchable using a native Logpush job — Enterprise plan only - [Send Amazon CloudFront traffic to Searchable](https://docs.searchable.com/setup/cloudfront.md): Stream CloudFront standard logs to Searchable through Amazon Data Firehose — works on any CloudFront distribution - [Send Netlify traffic to Searchable (Edge Function)](https://docs.searchable.com/setup/netlify-edge.md): Forward AI-bot traffic from your Netlify-hosted site to Searchable using a small Edge Function that runs on every request. Works on every Netlify plan, including Free. - [Send Netlify traffic to Searchable (HTTP Log Drain)](https://docs.searchable.com/setup/netlify-drain.md): Configure a Netlify HTTP Log Drain to stream request logs to Searchable. No code changes — all configuration is done inside the Netlify dashboard. - [Send Fastly traffic to Searchable (Real-Time Log Streaming)](https://docs.searchable.com/setup/fastly-logs.md): Configure a Fastly HTTPS Logging endpoint to stream request logs to Searchable. No code changes — all configuration is done inside the Fastly UI. - [Send Akamai traffic to Searchable (DataStream 2)](https://docs.searchable.com/setup/akamai-datastream2.md): Configure an Akamai DataStream 2 stream to push request logs to Searchable over HTTPS. No code changes — all configuration is done inside Akamai Control Center. - [Send Google Cloud traffic to Searchable](https://docs.searchable.com/setup/gcp-logs.md): Forward GCP HTTPS Load Balancer and Cloud CDN logs to Searchable via a Pub/Sub push subscription routed through a small Cloud Run relay. - [Connect WordPress to Searchable](https://docs.searchable.com/setup/wordpress.md): Install the Searchable must-use plugin on your WordPress site to forward AI-crawler requests to LLM Analytics — no theme changes, no JavaScript. - [Custom integration](https://docs.searchable.com/setup/custom.md): Ship AI-bot traffic to Searchable from any stack — Next.js, Express, Fastify, Go, Python, Ruby, anything that can make an HTTP call — using middleware or the REST API. - [Send traffic to Searchable with the Middleware SDK](https://docs.searchable.com/setup/middleware.md): Use @searchablehq/middleware to capture AI-bot traffic from any Node app. First-class support for Next.js, and primitives for Express, Fastify, and other Node frameworks. - [Send traffic to Searchable via the REST API](https://docs.searchable.com/setup/rest-api.md): Send AI-bot traffic events to Searchable from any language or platform — a single HTTP POST with a signed Bearer token. - [Test your Searchable integration on a staging site](https://docs.searchable.com/setup/staging.md): Prove a crawler-log integration works against a staging hostname before you point production at it — staging traffic is reported separately and never counts toward your production analytics - [Searchable Agent](https://docs.searchable.com/advanced/ai-assistant.md): Get instant SEO and AEO recommendations from your AI-powered copilot - [Advanced Custom Prompts (Beta)](https://docs.searchable.com/advanced/custom-prompts.md): Master advanced prompt techniques for maximum AI visibility - [Teams & Collaboration (Beta)](https://docs.searchable.com/advanced/teams-collaboration.md): Manage team members, permissions, and collaborative workflows - [Advanced API Usage](https://docs.searchable.com/advanced/api-usage.md): Query your AI visibility data and generate reports programmatically with the Searchable API - [API Error Reference](https://docs.searchable.com/api/errors.md): Every error code the Searchable REST API returns, what it means, and how to fix it - [Changelog](https://docs.searchable.com/changelog.md): Updates to the Searchable REST API and MCP server - [Getting Started](https://docs.searchable.com/api-reference/introduction.md): Authentication, rate limits, idempotency, pagination, and errors for the Searchable REST API - [Agent API](https://docs.searchable.com/api-reference/agent-api.md): Programmatic access to the Searchable agent - [List workspaces](https://docs.searchable.com/api-reference/projects/list-workspaces.md): List the workspaces the API key can reach: your role in each, whether you can create projects there, and the key's projects in each. `POST /api/mcp/projects` takes one of these ids as `workspaceId`. A workspace with API access disabled is left out, and a project-scoped key sees only the workspace ho… - [List projects](https://docs.searchable.com/api-reference/projects/list-projects.md): List all projects the API key can reach — every workspace-accessible project (owner, member, or viewer fallback access), or just the key's bound project if it's project-scoped. - [Create a project](https://docs.searchable.com/api-reference/projects/create-a-project.md): Create a project and set it up as the app's Add project flow does: the project on the workspace's plan cadence, its competitors, brand profile, default location and onboarding record, counted toward the workspace's project quota. It requires the same details the app asks for (brand name and summary,… - [Get a project](https://docs.searchable.com/api-reference/projects/get-a-project.md): Get a single project by id. - [Archive or reactivate a project](https://docs.searchable.com/api-reference/projects/archive-or-reactivate-a-project.md): Archive or reactivate a project, as the app's Archive and Reactivate actions do. `action: "archive"` stops the project running its scheduled checks and keeps its data; `action: "reactivate"` starts them again. A workspace keeps at least one active project, so archiving its only one returns 400 `last… - [Get brand profile](https://docs.searchable.com/api-reference/brand/get-brand-profile.md): The project's brand profile: the knowledge-base profile (name, website, positioning, description, category, topics, reach, language, exact match, disambiguation note, connected entities) plus the AI-observed brand facts, optionally filtered by verification status and platform. - [Update brand profile](https://docs.searchable.com/api-reference/brand/update-brand-profile.md): Update a subset of the project's knowledge-base brand fields (name, headline, description, positioning, category, influence, language, websiteUrl, caseSensitive, brandNameDisambiguation, topics). Does not touch connectedEntities, eeatData, or the project's default location. Requires the `knowledge:m… - [Get domain authority](https://docs.searchable.com/api-reference/brand/get-domain-authority.md): The project domain's authority: the latest snapshot plus its history over the requested window. - [Get prompt catalog](https://docs.searchable.com/api-reference/prompts/get-prompt-catalog.md): The project's prompt catalog: tracked (default), untracked, AI-suggested, or all prompts, with their configuration and a summary count of each status. Paginated. - [Add prompts](https://docs.searchable.com/api-reference/prompts/add-prompts.md): Add 1-10 prompts in one call. They're tracked straight away (`isTracked: true`), as when you add prompts in the app: the project's next scheduled run checks them, and they count toward the prompt allowance. The whole batch is checked against the allowance first; one that does not fit adds nothing an… - [Create a topic](https://docs.searchable.com/api-reference/prompts/create-a-topic.md): Create a user-authored prompt topic — the same `prompt_topics` row the in-app Topics tab creates. A name one of the project's topics already uses (ignoring case and surrounding spaces; archived topics excepted) is refused with 409 `conflict`, carrying that topic's id as `existingTopicId`. Requires t… - [Edit a topic](https://docs.searchable.com/api-reference/prompts/edit-a-topic.md): Edit a prompt topic as the in-app Topics tab does: rename it, change its seed keyword, archive it, or restore an archived one. Archiving takes the topic off every prompt it was on, and restoring it later does not put it back on them. A name another live topic in the project uses (ignoring case and s… - [Update a prompt](https://docs.searchable.com/api-reference/prompts/update-a-prompt.md): Edit a prompt's wording, intent, branded flag, or keyword metrics. Does NOT archive or restore it — use `POST .../tracking` for that. Requires the `prompt:draft` capability. `If-Match` (e.g. `"3"`) is the optimistic-concurrency guard: a stale value returns 409 `stale_revision`. A pitch project that… - [Bulk-edit prompts](https://docs.searchable.com/api-reference/prompts/bulk-edit-prompts.md): Edit existing prompts in bulk, in place: the round trip for a spreadsheet of prompts. Read them with `GET /projects/{projectId}/prompts` (each row carries its `id` and `currentRevision`; `?format=csv` downloads them), change what you need, and send up to 500 rows back in `prompts`. Each row names a… - [Archive or restore a prompt](https://docs.searchable.com/api-reference/prompts/archive-or-restore-a-prompt.md): Archive or restore a prompt, as the app's Archive and Restore actions do. `action: "archive"` stops tracking it and keeps its history and metrics; `action: "restore"` tracks it again, within the prompt allowance. Prompts added through this API are tracked already and need no restore. Requires the `p… - [Get prompt revisions](https://docs.searchable.com/api-reference/prompts/get-prompt-revisions.md): A prompt's wording history, newest revision first, alongside its current revision number. Read-only — unaffected by the pitch freeze, which only blocks mutations. Bare `read` scope, no capability required. - [Restore prompt wording to an earlier revision](https://docs.searchable.com/api-reference/prompts/restore-prompt-wording-to-an-earlier-revision.md): Restore a prompt's wording to an earlier revision by appending a NEW revision with that text (history is never rewritten). Only wording changes — tracking, topics and locations are untouched. `expectedRevision` is required; a stale value returns 409 `stale_revision`. A pitch project that is not curr… - [Get the Prompt Universe brief](https://docs.searchable.com/api-reference/prompts/get-the-prompt-universe-brief.md): Which buyer question types matter at each funnel moment for a business model, which of them are decisive for it, and how many prompts each moment and kind should carry. Planning input only: it calls no model and creates nothing. `count` is clamped by the WORKSPACE's own remaining prompt quota, resol… - [Import prompts](https://docs.searchable.com/api-reference/prompts/import-prompts.md): Add 1-10 validated Prompt Universe candidates to the project as tracked prompts (`isTracked: true`), as when you add prompts in the app: the project's next scheduled run checks them, within the prompt allowance. Starts no Prompt Universe run and calls no model. THE GATES AND THE ALLOWANCE ARE ALL-OR… - [Get visibility summary](https://docs.searchable.com/api-reference/visibility/get-visibility-summary.md): AI visibility score + platform breakdown. Pass unbranded=true or branded=true to restrict every metric (score, mentions, citations) by prompt brand state. `days` defaults to 30, max 365. - [Get visibility history](https://docs.searchable.com/api-reference/visibility/get-visibility-history.md): Visibility time-series data, one point per report. Pass unbranded=true or branded=true to compute the per-report score and stats by prompt brand state. `days` defaults to 90, max 365. - [Get per-prompt visibility](https://docs.searchable.com/api-reference/visibility/get-per-prompt-visibility.md): Per-prompt visibility breakdown. Paginated — the response `pagination` block returns `hasMore` + `nextOffset`; pass `offset` to page through all prompts. `days` defaults to 30, max 180. `limit` defaults to 500, max 5000. - [Get per-topic visibility](https://docs.searchable.com/api-reference/visibility/get-per-topic-visibility.md): Topic-level visibility metrics. Pass unbranded=true or branded=true to restrict every metric by prompt brand state. `days` defaults to 30. - [Get visibility by AI platform](https://docs.searchable.com/api-reference/visibility/get-visibility-by-ai-platform.md): Visibility broken down by AI platform. The same rows appear inside `GET /visibility` as `platforms[]`; this endpoint returns that breakdown on its own and can narrow to specific platforms. `platform` is comma-separated and resolved through the canonical platform map, so it accepts display names (`Ch… - [Get visibility by location](https://docs.searchable.com/api-reference/visibility/get-visibility-by-location.md): Visibility broken down by tracked location (per-country/city), with share of voice, sentiment, avg position, and the change vs the prior equal-length window. Filter with `country` / `locationId` / `platform` / `topicId`. Pass unbranded=true or branded=true to filter by prompt brand state. Returns al… - [Answer a diagnostic question in one call](https://docs.searchable.com/api-reference/visibility/answer-a-diagnostic-question-in-one-call.md): Runs a whole multi-read chain server-side and in parallel, returning the measurements together instead of requiring five or six requests. `question=visibility_drop` (score trend + which engines moved vs the previous period + share-of-voice shift + weakest topics), `competitive_position` (standing wi… - [Get share of voice](https://docs.searchable.com/api-reference/share-of-voice/get-share-of-voice.md): Brand vs competitor share of voice — mention-share percentage, rank among all tracked entities, and day-over-day (today vs yesterday) point change per entity. mentions/citations are always null here (not computed by the backing service, and not shown by the in-app view either) — use /competitors for… - [Get share of voice history](https://docs.searchable.com/api-reference/share-of-voice/get-share-of-voice-history.md): Daily share-of-voice time series for the brand plus its top competitors (competitor set discovered from the same ranking /share-of-voice uses). `days` defaults to 30, max 365. - [List competitors](https://docs.searchable.com/api-reference/competitors/list-competitors.md): The project's real/tracked competitors (rows in the competitors table) with share of voice, sentiment score, and mention counts. Paginated. sov/sentimentScore/mentionsInWindow are windowed by days and honor the platform/topicId/unbranded/branded/country/locationId filters; mentions is always all-tim… - [Add competitors](https://docs.searchable.com/api-reference/competitors/add-competitors.md): Add 1-20 competitors (each by website domain, optionally named) to the project's real/tracked competitor set. An entry that does not resolve to a website domain, such as a bare company name, is refused with 400 `invalid_argument`. `source: "manual"` with exactly one item also runs the duplicate chec… - [Get a competitor](https://docs.searchable.com/api-reference/competitors/get-a-competitor.md): Full detail for one tracked competitor — the list-view fields plus a per-day history[] and up to 10 recent topPrompts[] it was mentioned in. Two distinct citation metrics: citations (top level) counts every citation on responses that mention the competitor, whatever domain it points at; history[].do… - [Edit a competitor](https://docs.searchable.com/api-reference/competitors/edit-a-competitor.md): Edit a tracked competitor as the in-app competitor sheet does: rename it, change its website domain, make it a direct or a SERP competitor, and add or remove the other names it goes by (name variations), which is how its mentions are recognised in AI answers. Changing the domain, or making it direct… - [Get query fanout](https://docs.searchable.com/api-reference/query-fanout/get-query-fanout.md): Query fanout — the sub-queries AI models generate when answering tracked prompts. Returns the most frequent fanout queries, per-prompt fanout counts, and a per-model breakdown. Paginated: limit/offset page the per-prompt list; topQueriesLimit bounds the top-N queries. Pass unbranded=true or branded=… - [Get query fanout for a prompt](https://docs.searchable.com/api-reference/query-fanout/get-query-fanout-for-a-prompt.md): Detailed query fanout for a single prompt — every sub-query AI models generated for it, deduped with per-query frequency, the models that issued it, and the query type (initial_search | model_query). `days` defaults to 30, max 180. - [Get sentiment summary](https://docs.searchable.com/api-reference/sentiment/get-sentiment-summary.md): Brand sentiment summary + per-platform distribution (positive/neutral/negative share, sentiment score). Pass unbranded=true or branded=true to filter by prompt brand state. `days` defaults to 30, max 365. - [Get sentiment history](https://docs.searchable.com/api-reference/sentiment/get-sentiment-history.md): Brand sentiment trend over time — per-day sentiment score and positive/neutral/negative counts, with an improving/declining/stable trend. Pass unbranded=true or branded=true to filter by prompt brand state. `days` defaults to 90, max 365. - [Get competitor sentiment comparison](https://docs.searchable.com/api-reference/sentiment/get-competitor-sentiment-comparison.md): Head-to-head sentiment comparison of the brand vs competitors — sentiment score and positive/neutral/negative share per entity. Pass unbranded=true or branded=true to filter by prompt brand state. `days` defaults to 30, max 365. `limit` defaults to 10, max 50. - [List shared reports](https://docs.searchable.com/api-reference/reports/list-shared-reports.md): List previously shared reports for the project, newest first — { reports: [{id, reportType, title, status, shareUrl, createdAt}], pagination }. Only currently-live, published reports are listed (a report saved as a draft, or later unshared, won't appear). Paginated with limit/offset. `limit` default… - [Generate a shareable report](https://docs.searchable.com/api-reference/reports/generate-a-shareable-report.md): Generate and publish a shareable report; returns { shareToken, shareUrl }. Set whiteLabel=true (requires a white-label-entitled plan) to apply workspace branding. Requires the `read` scope, as sharing a report is open to every project member in the app; the workspace's report sharing policy and a pl… - [List monitored pages](https://docs.searchable.com/api-reference/audits-&-issues/list-monitored-pages.md): Monitored pages with issue counts. - [Get page audits](https://docs.searchable.com/api-reference/audits-&-issues/get-page-audits.md): Latest page audit per page (SEO + AEO scores) plus summary.lastCompletedAt. Pass includeIssues=true to nest each page's open issues. - [Trigger a site audit](https://docs.searchable.com/api-reference/audits-&-issues/trigger-a-site-audit.md): Trigger a site audit (technical + AEO) for the project's pages and return the orchestrator job id; results land on GET /audits. Audits every tracked page by default, or the optional pageIds. Always audits the project's own verified domain. Action endpoint — enforces runnable-state, blocks pitch proj… - [Refresh the project's sitemap](https://docs.searchable.com/api-reference/audits-&-issues/refresh-the-projects-sitemap.md): Re-sync the project's configured sitemap — re-discovers the sitemap and reconciles monitored pages (add/update/remove) + HTTP statuses in the background; returns the coordinator job id. Read the resulting pages on GET /pages. Action endpoint — requires the write scope and write access to the project… - [List site issues](https://docs.searchable.com/api-reference/audits-&-issues/list-site-issues.md): Site issues grouped by severity. - [Get page audits (v1 alias)](https://docs.searchable.com/api-reference/audits-&-issues/get-page-audits-v1-alias.md): Identical contract to `GET /api/mcp/projects/{projectId}/audits` — latest site audit per page + project-level lastCompletedAt. Pass ?includeIssues=true to nest each page's open issues. Requires the `read` scope. - [List opportunities](https://docs.searchable.com/api-reference/opportunities/list-opportunities.md): Actionable opportunities Searchable surfaced for the project — prioritized fix/write/audit suggestions derived from visibility, sentiment, sources, traffic, prompts, site health, and articles. Read-only. Defaults to active opportunities (pass status or includeResolved=true to widen, source/impact to… - [Update an opportunity's status](https://docs.searchable.com/api-reference/opportunities/update-an-opportunitys-status.md): Mark an opportunity completed or dismissed (optionally with a reason/feedback). Requires a connection minted with the `opportunity:manage` capability (not the bare `write` scope). Opportunities are a regular-project feature: an ACTIVE pitch project refuses with 403 `pitch_not_supported`, matching `G… - [List articles](https://docs.searchable.com/api-reference/articles/list-articles.md): List content for a project — merges content_pieces (v2) and legacy articles. `status` defaults to `all` (excludes archived). `limit` defaults to 50, max 100. - [Get an article](https://docs.searchable.com/api-reference/articles/get-an-article.md): Full article content + SEO metadata. Checks content_pieces (v2) first, falls back to legacy articles. - [Get GA4 AI-referral visitors](https://docs.searchable.com/api-reference/ga4/get-ga4-ai-referral-visitors.md): Per-LLM-host AI Source Visitors from GA4 (ChatGPT, Copilot, Gemini, Perplexity, DeepSeek, …): weekly visitor series + week-over-week delta + total. Use this for AI-referral attribution. `weeks` defaults to 12, max 52. Returns 409 ga4_not_connected if no GA4 property is linked. - [Get GA4 traffic trend](https://docs.searchable.com/api-reference/ga4/get-ga4-traffic-trend.md): GA4 daily traffic trend (users, sessions, pageviews) with totals. `weeks` defaults to 12, max 52. Returns 409 ga4_not_connected if no GA4 property is linked. - [Get GA4 top pages](https://docs.searchable.com/api-reference/ga4/get-ga4-top-pages.md): GA4 top landing pages by sessions. `weeks` defaults to 12, max 52; `limit` defaults to 20, max 100. Returns 409 ga4_not_connected if no GA4 property is linked. - [Get GA4 traffic sources](https://docs.searchable.com/api-reference/ga4/get-ga4-traffic-sources.md): GA4 traffic sources by channel group + source. `weeks` defaults to 12, max 52; `limit` defaults to 20, max 100. Returns 409 ga4_not_connected if no GA4 property is linked. - [Get GSC overview](https://docs.searchable.com/api-reference/gsc/get-gsc-overview.md): Live Google Search Console overview for the project's linked site — total clicks, impressions, CTR, average position for the window, plus an optional previous-period comparison with per-metric deltas. Data lags ~3 days (Google withholds the most recent days). Returns 409 gsc_not_connected if no site… - [Get GSC top queries](https://docs.searchable.com/api-reference/gsc/get-gsc-top-queries.md): Live GSC top search queries (query, clicks, impressions, CTR, average position), highest-clicks first. `limit` defaults to 25, max 250. Returns 409 gsc_not_connected if no site is linked. - [Get GSC top pages](https://docs.searchable.com/api-reference/gsc/get-gsc-top-pages.md): Live GSC top pages (page URL, clicks, impressions, CTR, average position), highest-clicks first. `limit` defaults to 25, max 250. Returns 409 gsc_not_connected if no site is linked. - [Get GSC performance trend](https://docs.searchable.com/api-reference/gsc/get-gsc-performance-trend.md): Live GSC daily performance trend (clicks, impressions, CTR, average position per day) with window totals. Returns 409 gsc_not_connected if no site is linked. - [Get GSC performance by country](https://docs.searchable.com/api-reference/gsc/get-gsc-performance-by-country.md): Live GSC performance grouped by country (clicks, impressions, CTR, average position). `limit` defaults to 100, max 250. Returns 409 gsc_not_connected if no site is linked. - [Get GSC performance by device](https://docs.searchable.com/api-reference/gsc/get-gsc-performance-by-device.md): Live GSC performance grouped by device (desktop, mobile, tablet). Returns 409 gsc_not_connected if no site is linked. - [Get GSC quick-win queries](https://docs.searchable.com/api-reference/gsc/get-gsc-quick-win-queries.md): Live GSC quick-win queries — ranking positions 4-15 with high impressions and low CTR, highest-impressions first. Title/snippet optimization candidates. `limit` defaults to 20, max 100. Returns 409 gsc_not_connected if no site is linked. - [Get GSC query distribution by position](https://docs.searchable.com/api-reference/gsc/get-gsc-query-distribution-by-position.md): Live GSC query distribution by ranking bucket (1-3, 4-10, 11-20, 20+) with clicks + impressions per bucket. Returns 409 gsc_not_connected if no site is linked. - [List cited source domains](https://docs.searchable.com/api-reference/sources/list-cited-source-domains.md): Top cited source domains from AI answers — rank, citation counts, usage %, models, and top content types. Paginated and sortable. `days` defaults to 30. `limit` defaults to 20, max 1000 (over-cap values clamp). - [Get a cited domain's detail](https://docs.searchable.com/api-reference/sources/get-a-cited-domains-detail.md): Full detail for a single cited source domain — citation share, trend, top prompts, topics, platforms, and content-type breakdown. - [List a domain's cited URLs](https://docs.searchable.com/api-reference/sources/list-a-domains-cited-urls.md): Cited URLs for a specific domain, with titles and content types. Cursor-paginated. `days` defaults to 30. - [List AI responses that cited a domain](https://docs.searchable.com/api-reference/sources/list-ai-responses-that-cited-a-domain.md): AI responses that cited a specific domain, with the originating prompt, platform, and cited URL. Optionally filter to a specific URL. `days` defaults to 30. - [List all cited URLs](https://docs.searchable.com/api-reference/sources/list-all-cited-urls.md): All cited URLs across a project, with domain, title, content type, and citation counts. Paginated by `offset` (or the legacy `cursor`). `limit` defaults to 20, max 1000 (over-cap values clamp). `days` defaults to 30. - [Get a cited URL's detail](https://docs.searchable.com/api-reference/sources/get-a-cited-urls-detail.md): Citation analytics for a single cited URL — total citations, prompts, mentions, and models that cite it. `{url}` must be percent-encoded. Pass unbranded=true to restrict to non-branded prompts. Returns 404 if the URL has not been cited in the project's data window. `days` defaults to 30. - [Get a cited page's cached content](https://docs.searchable.com/api-reference/sources/get-a-cited-pages-cached-content.md): Cached scraped markdown and entity mentions (brand/competitor) for a cited page. `{url}` must be percent-encoded. Returns 404 if the URL has not been cited in the project's data window. - [Get cited content-type distribution](https://docs.searchable.com/api-reference/sources/get-cited-content-type-distribution.md): Content-type distribution of cited sources (Blog, Product page, How-to, etc.) with citation rates and per-competitor breakdowns. `days` defaults to 30. - [Get cited source-type summary](https://docs.searchable.com/api-reference/sources/get-cited-source-type-summary.md): Source-type summary (editorial, social, forum, review, institutional, etc.) showing citation counts and share per type. `days` defaults to 30. - [Get cited article-type breakdown](https://docs.searchable.com/api-reference/sources/get-cited-article-type-breakdown.md): Article/content-type breakdown by URL count and citation volume. `days` defaults to 30. - [Get cited-source trend](https://docs.searchable.com/api-reference/sources/get-cited-source-trend.md): Citation trend over time for source domains. group='brand' → brand's own cited sources; 'competitors' → competitor cited sources; 'top-domains' (default) → top cited domains overall. Pass unbranded=true to restrict to non-branded prompts. `days` defaults to 30. - [Get AI traffic overview](https://docs.searchable.com/api-reference/traffic/get-ai-traffic-overview.md): First-party AI-traffic overview (crawler visits + AI-referral sessions), both broken down by platform, plus the top crawled pages. `groupBy=botCategory|botName` adds the requested crawl breakdown without replacing `byPlatform`. Returns 409 traffic_not_connected if no tracker/CDN/log source is connec… - [List AI-crawler activity by page](https://docs.searchable.com/api-reference/traffic/list-ai-crawler-activity-by-page.md): Per-page AI-crawler activity — each item is a page with total crawls and a per-platform breakdown (or one platform's count when filtered). `groupBy=botCategory|botName` adds an exact breakdown for the returned page window. Paginated. Returns 409 traffic_not_connected if no source is connected. `days… - [Get AI-referral session timeseries](https://docs.searchable.com/api-reference/traffic/get-ai-referral-session-timeseries.md): First-party AI-referral session timeseries (from the Searchable tracker) — one point per day with a per-platform session breakdown, plus window totals. Returns 409 traffic_not_connected if no source is connected. `days` defaults to 30, max 365. - [Get top AI-referral pages for a platform](https://docs.searchable.com/api-reference/traffic/get-top-ai-referral-pages-for-a-platform.md): Top pages driving AI-referral traffic for one platform. `platform` is required (one of openai, anthropic, google, perplexity, microsoft) — 400 without one. Returns 409 traffic_not_connected if no source is connected. `days` defaults to 30, max 365. - [Get sitemap crawl coverage](https://docs.searchable.com/api-reference/traffic/get-sitemap-crawl-coverage.md): How AI crawlers consume the site's sitemap: per bot, how many times it fetched the sitemap and how often, how many sitemap-listed pages it went on to discover, and the median lag from a page appearing in the sitemap to its first crawl. Use it to answer whether newly published pages are actually reac… - [Get human traffic from AI assistants](https://docs.searchable.com/api-reference/traffic/get-human-traffic-from-ai-assistants.md): Human sessions that arrived FROM an AI assistant — total sessions and visitors for the window, the AI-referred share of them, and a per-platform split. The conversion half of the funnel that the crawler reports open. Returns 409 traffic_not_connected if no tracker/CDN/log source is connected. - [Get crawl-to-visit correlation](https://docs.searchable.com/api-reference/traffic/get-crawl-to-visit-correlation.md): Per page: how often AI crawlers fetched it versus same-window AI-referred human sessions. `groupBy=platform|botCategory|botName` adds the requested crawl-side breakdown; it does not attribute sessions to a crawler. Rows are ranked by AI-referral sessions. `limit` defaults to 50, max 200. - [Get traffic attribution](https://docs.searchable.com/api-reference/traffic/get-traffic-attribution.md): Traffic attribution by UTM tuple (source / medium / campaign) plus referrer domain and bot category, ranked by request count. `limit` defaults to 50, max 200. - [Get raw request logs](https://docs.searchable.com/api-reference/traffic/get-raw-request-logs.md): The raw request feed with the in-app Logs tab's filters (path, status code, bots-only, host, sitemap-only). Cursor-paginated: pass the previous response's `nextCursor.timestamp` and `nextCursor.event_id` back as `cursorTimestamp` and `cursorEventId`. `limit` defaults to 25, max 100. - [Get shopping visibility summary](https://docs.searchable.com/api-reference/shopping/get-shopping-visibility-summary.md): AI shopping/product visibility (Peec-parity) — top products surfaced in AI shopping/product-carousel responses, ranked by mention volume, plus an activation-rate summary. Returns available:false (200, not an error) when the project has no shopping data yet. Returns 403 requiresUpgrade:true if the wo… - [Get shopping product detail](https://docs.searchable.com/api-reference/shopping/get-shopping-product-detail.md): Full detail for one product — occurrences, vendor/pricing rows, a real per-platform breakdown, and up to 50 recent responses that surfaced it. Requires a plan with Shopping Analytics (Scale or higher). Returns 404 if not found in the window. `days` defaults to 30, max 365. - [Get shopping activation timeseries](https://docs.searchable.com/api-reference/shopping/get-shopping-activation-timeseries.md): Daily shopping-activation trend — activation rate, response/product counts, and brand visibility per day. `days` defaults to 30, max 365. - [List AI-ad advertisers](https://docs.searchable.com/api-reference/ads/list-ai-ad-advertisers.md): Who is running sponsored ads in AI answers, ranked by scraped ad-appearance volume, plus the brand's own ad share of voice + rank (or null when the brand isn't advertising) and project-wide totals. Offset-paginated. adCount is ads we scraped in AI answers, not ad-platform impressions. `days` default… - [List AI-ad creatives](https://docs.searchable.com/api-reference/ads/list-ai-ad-creatives.md): Individual ad creatives (deduped sponsored ad variations) surfaced in AI answers — advertiser, headline, body, image, landing URL, how many scraped responses each appeared in, the prompts + AI models it ran on, and first/last seen. A capped top-N by appearance count (no offset paging). `days` defaul… - [List ad-surfacing prompts](https://docs.searchable.com/api-reference/ads/list-ad-surfacing-prompts.md): Which tracked prompts surface the most sponsored ads — per-prompt ad-unit count, ad coverage percent (share of the prompt's responses that carried an ad), response count, and the AI engines that surfaced ads. Server-sorted. `days` defaults to 30, max 365. - [Get AI-ad frequency timeseries](https://docs.searchable.com/api-reference/ads/get-ai-ad-frequency-timeseries.md): Per-advertiser daily ad-frequency trend — one series per top advertiser (brand force-included), each with a { date, adCount } array, plus the filtered-window total ad appearances. `days` defaults to 30, max 365. - [List raw AI responses for a prompt](https://docs.searchable.com/api-reference/answers/list-raw-ai-responses-for-a-prompt.md): Raw, per-response AI-answer data for one prompt (Profound-parity) — platform, response date, response text, brand/competitor mentions, and citations, one entry per AI response. text is the full answer (inline base64 images removed); truncated flags the rare cut at a 50,000-character safety cap. Pagi… - [Get per-URL metrics rollup](https://docs.searchable.com/api-reference/site-health/get-per-url-metrics-rollup.md): One page's three AI series joined in a single call, each as daily buckets: AI-answer citations of the URL, AI-referral sessions landing on it (by platform), and AI-crawler hits fetching it (by bot). `url` is a full URL or a bare path (resolved against the project's domain). The two traffic series de… - [Get prompt rankings within a topic](https://docs.searchable.com/api-reference/topics/get-prompt-rankings-within-a-topic.md): The prompt-level drill-down into one topic: for every prompt assigned to it, the brand's average rank, its visibility, and the competitors ranking above it. Answers which specific questions a weak topic is losing on. `topicId` is required — rankings are scoped to a single topic. - [Get topic by platform position heatmap](https://docs.searchable.com/api-reference/topics/get-topic-by-platform-position-heatmap.md): Average brand mention position per topic x AI platform — where the brand is strong on one engine and absent on another. There is deliberately no platform filter: the platform axis is the report. ## OpenAPI Specs - [openapi](/api-reference/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.