{"openapi":"3.1.0","info":{"title":"bitmcp.dev HTTP surface","version":"0.1.1","description":"Public HTTP endpoints on bitmcp.dev plus reference endpoints for bitmcp apps deployed elsewhere. Append `.md` to any docs URL for markdown, for example `/docs/getting-started/installation.md`.","x-deprecation-policy":"The API version in info.version tracks the documented HTTP surface. Breaking changes increment the minor version. Deprecated endpoints remain available for at least 90 days and are listed in /llms.txt before removal."},"externalDocs":{"description":"bitmcp authentication and deployment guides","url":"https://bitmcp.dev/docs/authentication/supabase"},"servers":[{"url":"https://bitmcp.dev"}],"paths":{"/api/search":{"get":{"operationId":"getSearchIndex","summary":"Documentation search index","description":"Static Orama search index generated from the documentation source. Example: curl https://bitmcp.dev/api/search","x-rateLimit":{"policy":"1000;w=3600","limit":1000},"responses":{"200":{"description":"Search index payload","content":{"application/json":{"schema":{"type":"object","required":["indexes"],"properties":{"indexes":{"type":"array","items":{"type":"object","required":["title","url"],"properties":{"title":{"type":"string"},"url":{"type":"string"},"description":{"type":"string"},"content":{"type":"string"}}}}}}}}},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the rate limit resets"},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/not-found":{"get":{"operationId":"getApiNotFoundExample","summary":"JSON error example for unknown API routes","description":"Unknown /api/* paths redirect here with HTTP 404. Request any missing API path to receive this structured error.","responses":{"404":{"description":"Structured JSON error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/llms.txt":{"get":{"operationId":"getLlmsIndex","summary":"LLM documentation index","description":"Markdown index of all documentation pages and agent recovery links.","responses":{"200":{"description":"Documentation index","content":{"text/markdown":{"schema":{"type":"string"}},"text/plain":{"schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/llms-full.txt":{"get":{"operationId":"getLlmsFullExport","summary":"Full documentation markdown export","description":"Concatenated markdown for all documentation pages.","responses":{"200":{"description":"Concatenated markdown for all documentation pages","content":{"text/markdown":{"schema":{"type":"string"}},"text/plain":{"schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/docs/{slug}.md":{"get":{"operationId":"getDocPageMarkdown","summary":"Single documentation page as markdown","description":"Static markdown sibling for a docs page. Append `.md` to the HTML docs URL.","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"Documentation slug path, for example getting-started/installation"}],"responses":{"200":{"description":"Markdown page content","content":{"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"Documentation page not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/llms.mdx/docs/{slug}/content.md":{"get":{"operationId":"getDocContentMarkdown","summary":"Single documentation page as markdown (build route)","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"Documentation slug path, for example getting-started/installation"}],"responses":{"200":{"description":"Markdown page content","content":{"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"Documentation page not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/404.md":{"get":{"operationId":"getAgentRecoveryMarkdown","summary":"Agent recovery page for missing URLs","description":"Markdown recovery map with sitemap and documentation links.","responses":{"404":{"description":"Recovery markdown with sitemap links","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/health":{"get":{"operationId":"getAppHealth","summary":"bitmcp app health check","description":"Reference endpoint served by bitmcp apps, not by bitmcp.dev itself.","servers":[{"url":"https://your-app.example"}],"responses":{"200":{"description":"Service is healthy","content":{"application/json":{"schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean"}}}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/mcp":{"post":{"operationId":"postMcpJsonRpc","summary":"MCP Streamable HTTP endpoint","description":"Reference JSON-RPC 2.0 endpoint served by bitmcp apps, not by bitmcp.dev itself.","servers":[{"url":"https://your-app.example"}],"security":[{"oauth2":["mcp:tools"]}],"x-bitmcp-scopes":["mcp:tools","mcp:resources"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","id","method"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{},"method":{"type":"string"},"params":{"type":"object"}}}}}},"responses":{"200":{"description":"JSON-RPC response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Insufficient OAuth scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Unknown HTTP path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/.well-known/oauth-authorization-server":{"get":{"operationId":"getOAuthAuthorizationServerMetadata","summary":"OAuth authorization server metadata","description":"Reference endpoint served by bitmcp apps with auth enabled, not by bitmcp.dev itself.","servers":[{"url":"https://your-app.example"}],"responses":{"200":{"description":"OAuth 2.0 authorization server metadata (RFC 8414)","content":{"application/json":{"schema":{"type":"object","properties":{"issuer":{"type":"string"},"authorization_endpoint":{"type":"string"},"token_endpoint":{"type":"string"},"registration_endpoint":{"type":"string"},"scopes_supported":{"type":"array","items":{"type":"string"}}}}}}},"404":{"description":"Auth not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/.well-known/oauth-protected-resource":{"get":{"operationId":"getOAuthProtectedResourceMetadata","summary":"OAuth protected resource metadata","description":"Reference endpoint served by bitmcp apps with auth enabled, not by bitmcp.dev itself.","servers":[{"url":"https://your-app.example"}],"responses":{"200":{"description":"OAuth protected resource metadata (RFC 9728)","content":{"application/json":{"schema":{"type":"object","properties":{"resource":{"type":"string"},"authorization_servers":{"type":"array","items":{"type":"string"}},"scopes_supported":{"type":"array","items":{"type":"string"}}}}}}},"404":{"description":"Auth not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","hint"],"properties":{"code":{"type":"string","enum":["NOT_FOUND","BAD_REQUEST","METHOD_NOT_ALLOWED","INTERNAL_ERROR"]},"message":{"type":"string"},"hint":{"type":"string"}}}}}},"securitySchemes":{"oauth2":{"type":"oauth2","description":"OAuth 2.0 for bitmcp apps deployed by developers. bitmcp.dev itself does not issue tokens.","flows":{"authorizationCode":{"authorizationUrl":"https://your-app.example/oauth/authorize","tokenUrl":"https://your-app.example/oauth/token","scopes":{"mcp:tools":"Invoke MCP tools","mcp:resources":"Read MCP resources","openid":"OpenID Connect identity","profile":"User profile","email":"User email"}}}}}}}