API Documentation
Explore our Enterprise API endpoints for programmatic website management
/api-docs.mdAPI Authentication
Enter your API key to test the endpoints below
Your API key is required to test the endpoints. It will only be used for testing and not stored.
MCP Integration Available
Integrate xSeek AI SEO tools directly into your development workflow with Model Context Protocol (MCP)
Use our MCP server to access AI SEO tools like robots.txt scanning and LLMs.txt generation directly from compatible applications.
API Version
v1.0
Latest stable version
Endpoints
38
Available endpoints
Authentication
Bearer
Token-based auth
Interactive API Endpoints
Click on any endpoint to expand details and test it with your API key
Website Management
GET
/api/v1/robotsGet known AI bot user agents and IP ranges for detection (Public - No authentication required)GET
/api/v1/websitesList all websites for your organizationPOST
/api/v1/websitesCreate a new websitePUT
/api/v1/websites/{websiteId}Update an existing websiteGET
/api/v1/websites/{websiteId}/sourcesGet sources cited by AI in prompt responses for a website with pagination, sorting, and filteringGET
/api/v1/websites/{websiteId}/sentiment/runsThe answers behind a sentiment label, newest first, each with the sentence that decided the label and the sources the engine cited in that answer. The drill-down from /sentiment/prompts: from a prompt that reads negative, list its negative answers, then the pages they leaned on. The full answer text is returned only with includeAnswer=true.GET
/api/v1/websites/{websiteId}/metrics/ai-clicksAI referral clicks: total, share of total traffic, per-engine breakdown and a daily time series. These are real visitors arriving from an AI assistant, measured as GA4 sessions — not AI crawler visits. Requires GA4 to be connected; when it is not, the response returns available:false with a reason instead of zeros. Privilege: ai_visits:readGET
/api/v1/websites/{websiteId}/metrics/top-pagesPages ranked by AI referral clicks, with Search Console impressions and the assistant sending the most traffic to each. Note that aiClicks and impressions do not cover the same days: clicks honour your date range, while impressions come from a fixed Search Console scan of the last 7, 30 or 90 days. The response says which one was used in impressionsWindowDays. A page with no Search Console row returns impressions null, not 0. Privilege: ai_visits:readGET
/api/v1/websites/{websiteId}/metrics/share-of-voiceShare of voice over time, optionally scoped to one topic or audience. The denominator is the tracked set (your brand plus its competitors, aliases included), which is the same figure the xSeek dashboard shows. Topics flagged excludeFromSov are always removed. Privilege: prompts:readGET
/api/v1/websites/{websiteId}/topicsAudiences and their topics for a website. Use these ids to scope /metrics/share-of-voice, and to resolve the topicId returned by /prompts. excludeFromSov marks informational topics where AI cites content without naming companies; they are dropped from every share-of-voice figure. Privilege: prompts:readGET
/api/v1/websites/{websiteId}/keywordsSearch keywords with volume, difficulty, and related keywords from DataForSEO. Uses the website language and location settings by default.GET
/api/v1/websites/{websiteId}/keywordsGet keyword search history for the website (no query parameter returns history)GET
/api/v1/websites/{websiteId}/opportunitiesGet content opportunities — queries where competitors are cited by AI but your site is not. Enriched with SEO data.GET
/api/v1/websites/{websiteId}/articlesList articles in Content Studio for a website. Supports status and language filtering, pagination, and a public-blog view that returns published snapshots.POST
/api/v1/websites/{websiteId}/articlesCreate or upsert an article. If an article with the same slug already exists for this website, it is updated in place (200) instead of duplicated (201). Auto-links to a matching current-month opportunity when opportunityId is omitted.GET
/api/v1/websites/{websiteId}/articles/{articleId}Get full article details including the markdown body, schema markup, and generation metadata. ?view=public returns the published snapshot.PATCH
/api/v1/websites/{websiteId}/articles/{articleId}Update an article. Any field can be omitted. Setting status="published" snapshots the current title/content/meta/schema into the public-blog view. Changes to content, title, or quality score also write an entry to the revision history.GET
/api/v1/websites/{websiteId}/articles/by-slug/{slug}Fetch a single article by its slug. Mirrors the by-id endpoint shape — used by the public blog runtime to look up articles without exposing internal IDs.GET
/api/v1/websites/{websiteId}/articles/{articleId}/commentsList editorial comments attached to an article. Comments anchor to a specific text range (selectedText + startOffset/endOffset) so editors can resolve them inline.POST
/api/v1/websites/{websiteId}/articles/{articleId}/commentsCreate an editorial comment on a text range. Used by external review tools to flag changes for the editor to apply.PATCH
/api/v1/websites/{websiteId}/articles/{articleId}/commentsResolve or un-resolve an existing comment. Pass the comment id in the body alongside the new resolved state.AI Visits
GET
/api/v1/websites/{websiteId}/ai-visitsGet aggregated AI bot visit traffic by URL with search, pagination, and filtersPOST
/api/v1/websites/{websiteId}/ai-visitsPublish a new AI bot visit for a specific websiteLLM Queries
GET
/api/v1/websites/{websiteId}/llm-queriesList LLM queries for a specific website with pagination and searchGET
/api/v1/websites/{websiteId}/llm-queries/by-pageFind queries that gave impressions for a specific page URLAPI Keys
GET
/api/v1/api-keysList API keys for your organizationPOST
/api/v1/api-keysCreate a new API key for your organizationRobots.txt Scans
GET
/api/v1/websites/{websiteId}/robots-scansList robots.txt scans for a website (most recent first)GET
/api/v1/websites/{websiteId}/robots-scans/latestGet the latest robots.txt scan for a websiteAI Bot Detection
Public endpoints for detecting AI bots - no authentication required
GET
Public
/api/v1/robotsGet known AI bot user agents and IP ranges for detection (Public - No authentication required)Tools
GET
/api/v1/tools/llms-txtGenerate LLMs.txt content for a given URLGET
/api/v1/tools/robots-txtScan robots.txt for a given URL and return allowed/disallowed AI botsPrompt Management
GET
/api/v1/websites/{websiteId}/promptsList all prompts for a specific websitePOST
/api/v1/websites/{websiteId}/promptsAdd a new prompt to a specific website.GET
/api/v1/websites/{websiteId}/prompts/{promptId}Get a prompt details for a websitePUT
/api/v1/websites/{websiteId}/prompts/{promptId}Update an existing prompt for a websiteGET
/api/v1/websites/{websiteId}/prompts/{promptId}/runsGet the latest runs for a promptGET
/api/v1/websites/{websiteId}/sentiment/promptsHow the AI engines speak of the brand, per tracked prompt, worst first. Every answer that names a tracked brand is read once and labelled positive, neutral, mixed or negative, with the sentence that decided it; this rolls those readings up per prompt. Only readings at or above the confidence floor (0.6) count, the same floor the AI Visibility score uses. Pass company= to read a competitor instead of the brand.GET
/api/v1/websites/{websiteId}/prompts/leaderboardGet leaderboard of companies by mentions for the websiteSupport
Need help with the API?
Enterprise customers get priority API support and assistance with integration.
Contact Support