A scalable, distributed, collaborative, document-graph database, for the realtime web
Full LLM thinking from the 4-phase benchmark pipeline.
{
"service_type": "rest_api",
"base_url": "https://surrealdb.com",
"auth_method": "none",
"auth_config": {},
"endpoints": [
{
"path": "/api/cloud/pricing.json",
"method": "GET",
"purpose": "Get the SurrealDB Cloud pricing catalogue (all published plans)",
"params": {},
"response_format": "json",
"is_primary": true
},
{
"path": "/api/learn/{course}.json",
"method": "GET",
"purpose": "Course outlines (currently returns empty array; not wired to content)",
"params": {
"course": {"type": "string", "required": true}
},
"response_format": "json",
"is_primary": false
},
{
"path": "/{page}.md",
"method": "GET",
"purpose": "Markdown rendering of any site page (also via Accept: text/markdown)",
"params": {},
"response_format": "text",
"is_primary": false
},
{
"path": "/index.md",
"method": "GET",
"purpose": "Markdown rendering of the homepage",
"params": {},
"response_format": "text",
"is_primary": false
},
{
"path": "/.well-known/mcp/server-card.json",
"method": "GET",
"purpose": "MCP server discovery card for the SurrealDB MCP server",
"params": {},
"response_format": "json",
"is_primary": false
},
{
"path": "/.well-known/agent-skills/index.json",
"method": "GET",
"purpose": "Index of installable agent skills (SurrealQL, CLI, SDKs, vector search, performance)",
"params": {},
"response_format": "json",
"is_primary": false
},
{
"path": "/openapi.json",
"method": "GET",
"purpose": "OpenAPI description of the website origin's JSON surface",
"params": {},
"response_format": "json",
"is_primary": false
}
],
"pricing_model": {
"type": "free_tier",
"details": {
"notes": "Website origin is free and unauthenticated; pricing catalogue available at /api/cloud/pricing.json. Free tier available at surrealdb.com/cloud; self-hosted option source-available."
},
"free_tier": {"requests": null, "period": null},
"paid_tiers": []
},
"rate_limits": {"rpm": null, "tpm": null, "daily": null, "concurrent": null},
"capabilities": [
"web_page_markdown_rendering",
"content_negotiation",
"cloud_pricing_data",
"course_outlines",
"agent_discovery_documents",
"mcp_server_discovery",
"agent_skills_index"
],
"agent_readiness": {
"supports_x402": false,
"supports_streaming": false,
"has_sandbox": false,
"sdks": ["rust", "javascript", "python", "go", "java", "csharp", "php"],
"agent_auth_methods": ["public"]
}
}```json
{
"tests": [
{
"name": "get_cloud_pricing_catalogue",
"endpoint": "/api/cloud/pricing.json",
"method": "GET",
"headers": {"Accept": "application/json"},
"payload": {},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns the full pricing catalogue with cloud, selfHosted, and support plan arrays; each plan has id, name, price, features, cta.",
"metrics": ["latency", "status_code", "accuracy"],
"validation": {"field": "cloud", "type": "array", "min_length": 1}
},
{
"name": "get_homepage_markdown",
"endpoint": "/index.md",
"method": "GET",
"headers": {"Accept": "text/markdown"},
"payload": {},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns the homepage as a CommonMark document beginning with a level-one heading, Content-Type text/markdown, with x-markdown-tokens and x-original-tokens headers.",
"metrics": ["latency", "status_code", "content_type", "token_headers"],
"validation": {"field": "body", "type": "string", "min_length": 50}
},
{
"name": "get_top_level_page_markdown",
"endpoint": "/pricing.md",
"method": "GET",
"headers": {"Accept": "text/markdown"},
"payload": {},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns the pricing page as markdown with x-markdown-tokens and x-original-tokens headers and an X-API-Version header.",
"metrics": ["latency", "status_code", "content_type"],
"validation": {"field": "body", "type": "string", "min_length": 50}
},
{
"name": "content_negotiation_on_page_url",
"endpoint": "/pricing",
"method": "GET",
"headers": {"Accept": "text/markdown"},
"payload": {},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Content negotiation: requesting the ordinary page URL with Accept: text/markdown returns the same markdown document as /pricing.md, served as text/markdown.",
"metrics": ["latency", "status_code", "content_type", "negotiation_match"],
"validation": {"field": "content_type", "type": "string", "equals": "text/markdown"}
},
{
"name": "get_nested_section_page_markdown",
"endpoint": "/why/vs-vector-databases.md",
"method": "GET",
"headers": {"Accept": "text/markdown"},
"payload": {},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns a two-segment page's markdown twin with token-estimate headers.",
"metrics": ["latency", "status_code"],
"validation": {"field": "body", "type": "string", "min_length": 50}
},
{
"name": "get_mcp_server_card",
"endpoint": "/.well-known/mcp/server-card.json",
"method": "GET",
"headers": {"Accept": "application/json"},
"payload": {},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns the MCP server discovery card describing transport, endpoint (https://mcp.surrealdb.com) and docs.",
"metrics": ["latency", "status_code", "accuracy"],
"validation": {"field": "body", "type": "object"}
},
{
"name": "get_agent_skills_index",
"endpoint": "/.well-known/agent-skills/index.json",
"method": "GET",
"headers": {"Accept": "application/json"},
"payload": {},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns the agent skills index listing SurrealQL, CLI, SDK, vector-search and performance skills, each with a URL and SHA-256 digest.",
"metrics": ["latency", "status_code", "accuracy"],
"validation": {"field": "body", "type": "object"}
},
{
"name": "get_openapi_description",
"endpoint": "/openapi.json",
"method": "GET",
"headers": {"Accept": "application/json"},
"payload": {},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns the OpenAPI 3.1 description of the website origin with info.version and paths.",
"metrics": ["latency", "status_code", "accuracy"],
"validation": {"field": "openapi", "type": "string"}
},
{
"name": "unknown_api_path_returns_problem_json",
"endpoint": "/api/does-not-exist.json",
"method": "GET",
"headers": {"Accept": "application/json"},
"payload": {},
"expected_status": 404,
"intent": "validation",
"expected_behavior": "Unknown /api path returns an RFC 9457 application/problem+json body with type, title, status, code and resolution fields. A structured 404 is the correct behaviour.",
"metrics": ["status_code", "error_shape"],
"validation": {"field": "code", "type": "string", "min_length": 1}
},
{
"name": "missing_markdown_page_returns_markdown_404",
"endpoint": "/this-page-does-not-exist-xyz.md",
"method"8/12 tests passed
| Test | Endpoint | Status | Latency |
|---|---|---|---|
| get_cloud_pricing_catalogue | GET /api/cloud/pricing.json | 200 | 105ms |
| get_homepage_markdown | GET /index.md | 200 | 197ms |
| get_top_level_page_markdown | GET /pricing.md | 200 | 286ms |
| content_negotiation_on_page_url | GET /pricing | 200 | 658ms |
| get_nested_section_page_markdown | GET /why/vs-vector-databases.md | 200 | 209ms |
| get_mcp_server_card | GET /.well-known/mcp/server-card.json | 200 | 130ms |
| get_agent_skills_index | GET /.well-known/agent-skills/index.json | 200 | 121ms |
| get_openapi_description | GET /openapi.json | 200 | 43ms |
| unknown_api_path_returns_problem_json | GET /api/does-not-exist.json | 404 | 63ms |
| missing_markdown_page_returns_markdown_404 | GET /this-page-does-not-exist-xyz.md | 404 | 69ms |
{"model": "deepseek", "data": {"overall": 78, "dimensions": {"token_efficiency": 7.0, "first_try_success": 9.0, "response_parseability": 9.0, "error_clarity": 10.0, "doc_quality": 10.0, "auth_simplicity": 10.0, "latency": 9.0, "consistency": 9.0}, "pricing_normalized": {"cost_per_1k_requests": null, "cost_per_1m_input_tokens": null, "cost_per_1m_output_tokens": null, "free_tier_requests": null, "estimated_monthly_cost_light": null, "estimated_monthly_cost_heavy": null}, "issues": [{"severity": "high", "detail": "Documented /api/learn/{course}.json endpoint returns 404 resource_not_found instead of the expected 200 with (empty or populated) course outline. The endpoint is advertised in capabilities and OpenAPI but is not wired.", "endpoint": "/api/learn/{course}.json"}, {"severity": "low", "detail": "Markdown 404 responses are human prose rather than structured problem+json; in the JSON API namespace problem+json is used, but page-level markdown 404s return prose. Minor inconsistency in error format between surfaces.", "endpoint": "/{page}.md"}, {"severity": "low", "detail": "Content-negotiation test on /pricing took 658ms, noticeably slower than the .md twins (~200ms); the negotiation path appears to run server-side rendering before downgrading to markdown.", "endpoint": "/pricing"}], "recommendations": ["Wire up or remove the /api/learn/{course}.json endpoint so the OpenAPI description matches real behavior; agents relying on the advertised outline will fail.", "Consider emitting structured problem+json for markdown page 404s (or at least a machine-parseable header/field) to keep error handling uniform across surfaces.", "Optimize content-negotiation rendering so Accept: text/markdown requests don't pay full HTML-render cost; prefer the precomputed markdown twin.", "This origin is a website/content surface, not the SurrealDB product API. Docs already point to api.surrealdb.com for the platform API \u2014 keep that disambiguation prominent so agents route correctly.", "No free_tier request count is exposed; consider documenting a concrete rate limit so agents can size their usage."]}}Show your live agent-readiness score on your own site. Free, no auth — it updates as your score changes.
<a href="https://prowl.world/service/surrealdb">
<img src="https://prowl.world/badge/surrealdb.svg" height="56" alt="Agent-readiness on Prowl">
</a>
See operational metrics, LLM evaluations, agent readiness, and more.
Open in Dashboard