BotSee API

BotSee API for monitoring AI visibility

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/botsee-io:botsee-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

botsee-io-openapi.json Raw ↑
{"info":{"version":"1.0.0","description":"Monitor how AI search engines see your products. BotSee queries multiple AI models (OpenAI, Claude, Perplexity, Gemini, Grok) with your target questions and analyzes which competitors, sources, and keywords appear in responses.","title":"BotSee API","contact":{"email":"support@botsee.io"},"termsOfService":"https://botsee.io/terms"},"components":{"headers":{"Retry-After":{"description":"Seconds to wait before retrying. Returned on 429 responses.","schema":{"type":"integer","example":60}},"X-RateLimit-Limit":{"description":"Total requests allowed per window (currently 600 per minute).","schema":{"type":"integer","example":600}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window for the caller's bucket.","schema":{"type":"integer","example":599}},"X-RateLimit-Reset":{"description":"Unix timestamp (seconds) when the current window resets.","schema":{"type":"integer","example":1735689660}}},"responses":{"Forbidden":{"description":"Authenticated but lacks permission (e.g. botsee_disabled).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"The requested resource does not exist or is not accessible.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"PaymentRequired":{"description":"Payment required (insufficient credits or x402 challenge).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimited":{"description":"Too many requests. Wait and retry per Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}}},"Unauthorized":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ValidationError":{"description":"Request body or parameters failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Analysis":{"type":"object","properties":{"completed_at":{"type":"string","format":"date-time","nullable":true},"credits_used":{"type":"integer"},"models":{"type":"array","items":{"type":"string"}},"recommendations":{"type":"array","description":"Generated recommendations; empty until POST /analysis/:uuid/recommendations succeeds.","items":{"type":"object","properties":{"action":{"type":"string"},"priority":{"type":"string","enum":["high","medium","low"]},"reasoning":{"type":"string"},"target_keywords":{"type":"array","items":{"type":"string"}},"target_urls":{"type":"array","items":{"type":"string"}}}}},"recommendations_generated_at":{"type":"string","format":"date-time","nullable":true},"response_count":{"type":"integer"},"scope":{"type":"string","enum":["site","customer_type","persona","questions"]},"site_uuid":{"type":"string"},"started_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["pending","running","completed","failed"]},"uuid":{"type":"string"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code (e.g. invalid_api_key)."},"details":{"type":"object","description":"Optional per-field validation errors.","additionalProperties":true},"message":{"type":"string","description":"Human-readable error message."}}}}},"PaymentRequirements":{"type":"object","description":"x402 payment requirements returned in 402 responses.","properties":{"accepts":{"type":"array","items":{"type":"object","description":"Payment scheme accepted by the server (chain, asset, chain, etc.).","additionalProperties":true}},"x402Version":{"type":"integer"}}},"Persona":{"type":"object","properties":{"description":{"type":"string"},"icp_persona":{"type":"string"},"name":{"type":"string"},"uuid":{"type":"string"}}},"Question":{"type":"object","properties":{"category":{"type":"string"},"is_active":{"type":"boolean"},"priority":{"type":"string"},"question":{"type":"string"},"uuid":{"type":"string"}}},"RateLimitHeaders":{"type":"object","description":"Documentation reference for rate-limit response headers. Actual values are returned in HTTP response headers (x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset, retry-after on 429).","properties":{"limit":{"type":"integer","example":600},"remaining":{"type":"integer","example":599},"reset_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the bucket resets."},"window_seconds":{"type":"integer","example":60}}},"Site":{"type":"object","properties":{"aliases":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"customer_type_count":{"type":"integer"},"customer_types":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"persona_count":{"type":"integer"},"uuid":{"type":"string"}}}},"domain":{"type":"string"},"product_name":{"type":"string","nullable":true},"status":{"type":"string"},"uuid":{"type":"string"},"value_proposition":{"type":"string","nullable":true}}},"WebhookEvent":{"type":"object","required":["event","timestamp","data"],"properties":{"data":{"type":"object","description":"Event-specific payload. See /api/v1/webhooks/events for per-event schemas.","additionalProperties":true},"event":{"type":"string","description":"Event type (e.g. analysis.completed).","example":"analysis.completed"},"timestamp":{"type":"string","format":"date-time","description":"ISO 8601 UTC time the event was emitted."}}}},"securitySchemes":{"BearerAuth":{"scheme":"bearer","type":"http","description":"API key starting with 'bts_live_'"}}},"paths":{},"security":[{"BearerAuth":[]}],"openapi":"3.0.3","servers":[{"description":"Production","url":"https://botsee.io"}]}