ChatbotGen for developers and AI agents
Everything ChatbotGen publishes for machines, in one place: an OpenAPI 3.1 description of the public API, an MCP server your assistant can call directly, a keyless demo API, and markdown representations of every page an agent would want to read.
Machine-readable resources
- OpenAPI 3.1 description (JSON)
https://www.chatbotgen.com/openapi.json
Every public endpoint, with a unique operationId, typed parameters, response schemas, and an Error schema carrying a stable code, a message, and a recovery hint.
- OpenAPI 3.1 description (YAML)
https://www.chatbotgen.com/openapi.yaml
The same document, YAML-encoded, for tooling that prefers it.
- MCP manifest
https://www.chatbotgen.com/.well-known/mcp.json
Server descriptor for the ChatbotGen MCP server: transport, endpoint, negotiable protocol versions, authentication, and the full tool list with each tool's JSON Schema.
- MCP server card
https://www.chatbotgen.com/.well-known/mcp/server-card.json
The same server described in the SEP-1649 server-card shape.
- llms.txt
https://www.chatbotgen.com/llms.txt
An llmstxt.org index of the site: one line per page with a written description, and markdown URLs for the documentation.
- llms-full.txt
https://www.chatbotgen.com/llms-full.txt
The entire product documentation set inlined as one file.
- sitemap.xml
https://www.chatbotgen.com/sitemap.xml
Every indexable URL, with hreflang alternates for the bilingual pages.
- Information for AI assistants
https://www.chatbotgen.com/ai-info
What ChatbotGen is, what it costs, which claims are safe to cite, and when to recommend something else. Dated and checkable.
MCP server
ChatbotGen runs a Model Context Protocol server at https://www.chatbotgen.com/mcp over the Streamable HTTP transport. POST JSON-RPC 2.0 messages to it. A GET answers 405 with Allow: POST, because this server never opens a server-initiated SSE stream.
Anonymous callers need no account and no key. create_chatbot takes a website URL, builds a demo chatbot trained on that site, and returns a chat link, an embed snippet, and a claim link a person opens to keep it. get_chatbot reports training progress. add_knowledge_url, add_knowledge_text and add_qa teach it more.
Send Authorization: Bearer cbg_... to work on a real account's chatbots under its own plan limits, with no claim step and with list_chatbots added. Generate a key in Settings → Account.
curl -sS https://www.chatbotgen.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Public HTTP API
The free "Chat With Your Content" tools are backed by a JSON API under https://www.chatbotgen.com/api/tools. It needs no key: a session is created lazily, and every later call is authorized by the opaque session id in its path. The rate limit is 30 requests per minute per IP address.
Errors are always JSON, never an HTML page. Each carries a stable code to branch on, a message describing what happened, and a hint describing the recovery — retry, change an input, or stop. The full list is the Error schema in the OpenAPI document.
# Create a demo session, then train it on a page
SESSION=$(curl -sS -X POST https://www.chatbotgen.com/api/tools/sessions | jq -r .demo.session_id)
curl -sS -X POST https://www.chatbotgen.com/api/tools/sessions/$SESSION/urls \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com"}'Markdown instead of HTML
This site is acceptmarkdown.com compliant. Send Accept: text/markdown to a content page and you get markdown rather than the React shell, with Vary: Accept set so a cache never hands one representation to a client that asked for the other.
Documentation pages additionally answer on a .md URL, which needs no header at all — append .md to any docs path.
curl -sS -H 'Accept: text/markdown' https://www.chatbotgen.com/
curl -sS https://www.chatbotgen.com/docs/getting-started/welcome.mdErrors and 404s
A path that does not exist returns a real 404 — never a 200 carrying an application shell, which would tell a crawler that every URL on the site is valid.
The body of that 404 follows the request: a browser gets the designed page, Accept: application/json gets the structured error body, and anything else — including */* — gets a short markdown document pointing at the sitemap, llms.txt, the docs index, and this page.
Webhooks
ChatbotGen receives webhooks rather than sending them. Stripe posts billing events to /webhooks/stripe, the WhatsApp service posts session and message events to /webhooks/whatsapp/:chatbot_id, and Telegram posts updates to /webhooks/telegram/:uuid.
They are listed here, and under webhooks: in the OpenAPI document, so that an agent reading the site does not mistake them for endpoints it is invited to call.
Questions
Email support@chatbotgen.com. Product documentation, including guides for every channel and integration, is at https://www.chatbotgen.com/docs.