Developers

usedocs developer portal

API keys, the Answer API, OpenAPI, the usedocs MCP server, rate limits, webhooks, and a sandbox — so agents and integrators can call cited docs answers without scraping HTML.

Quickstart

  1. Sign in at the dashboard (Google, GitHub, or magic link). Free plan: 100 messages/month, no credit card.
  2. Create a bot, crawl a docs URL or upload files, and open Settings → Embed.
  3. Copy botId and the public botKey. Those are your API keys for the widget, Answer API, and MCP tools.
  4. Call POST /chat or connect an agent to https://usedocs.app/mcp.

API keys

usedocs does not issue a separate bearer token for the public Answer API. The embed credentials are the API keys:

  • botId — UUID of the bot (path and JSON body).
  • botKey — public key from Settings → Embed. Send it in the JSON body as botKey.
  • Browser calls also need an Origin header on an allowed origin. Server-to-server MCP and Answer API calls authenticate with botKey; send Origin when the bot has allowed origins configured.
  • Dashboard management routes (/api/bots/…) use the signed-in session cookie, not botKey.

usedocs OpenAPI specification

The machine-readable spec is published at https://usedocs.app/openapi.json. Every public operation has a unique operationId, typed parameters, and JSON error schemas so LLM function-calling can import the file directly. There is no GraphQL surface; use this OpenAPI document instead of introspection.

Answer API

Same retrieval pipeline as the widget. Guide: Answer API.

curl -sS -X POST 'https://usedocs.app/chat' \
  -H 'content-type: application/json' \
  -d '{
    "botId": "YOUR_BOT_ID",
    "botKey": "YOUR_PUBLIC_BOT_KEY",
    "question": "How do I get started?",
    "visitor": "ticket-system"
  }'

Errors are JSON objects with error, code, message, and hint — never HTML error pages on API paths.

usedocs MCP server

The usedocs MCP server speaks Streamable HTTP JSON-RPC at https://usedocs.app/mcp. Discovery: /.well-known/mcp.json.

Tools: ask_docs, search_docs, get_bot_config. Pass botId and botKey in each tool's arguments. Example Cursor / Claude config:

{
  "mcpServers": {
    "usedocs": {
      "url": "https://usedocs.app/mcp"
    }
  }
}

Rate limits

Public chat: 30 requests per 60 seconds per visitor (policy widget-chat). Free SEO tools have separate hourly limits. Responses include RFC 9237 RateLimit and RateLimit-Policy headers. HTTP 429 also sends Retry-After. Honor those headers instead of guessing backoff.

Webhooks

Escalations and leads can POST to your HTTPS endpoint. Setup: webhook integration. GitHub product webhooks use /api/integrations/github/webhook with signature verification.

Sandbox

Try the cited widget without an account: live demo. For API calls, create a Free bot and point it at a public docs URL. Markdown negotiation: curl -H 'Accept: text/markdown' https://usedocs.app/developers returns this page as Markdown with Vary: Accept.

Related