{"auth":{"email":{"login":"POST /api/auth/email/login","register":"POST /api/auth/email/register"},"google":{"callback":"GET /api/auth/google/callback","start":"POST /api/auth/google/start"},"methods":["wallet","email","google"]},"description":"The OS for the agentic world — find a capability and it actually runs, with traces to prove it.","discovery":{"agents":"GET /api/discovery/agents","all":"GET /api/discovery/all","mcp_jsonrpc":"POST /mcp/jsonrpc (anonymous discovery + authoring tools work with NO auth; wallet-scoped tools ride a JWT)","protocols":"GET /api/discovery/protocols","tools":"GET /api/discovery/tools"},"docs":{"api_docs_md":"GET /api/docs.md","llms_txt":"GET /llms.txt","note":"Append /md to any registry listing URL for markdown format","skills_md":"GET /api/marketplace/skills.md"},"marketplace":{"featured":"GET /api/marketplace/featured","listings":"GET /api/marketplace/listings","search":"POST /api/marketplace/search"},"mcp":{"endpoint":"/mcp/jsonrpc","note":"initialize + tools/list + the anonymous tool set (registry_search, registry_get_skill, skill_author, harness_author, ...) need NO auth — start there. Wallet-scoped tools (rigs, harness memory, publish) ride a JWT. Suggested first flow: registry_search for a target skill, then run the Explore rig template on it (GET /api/skills/rig-template-explore) for a full use-case brief.","protocol_version":"2025-11-25"},"registry":{"listing_detail":"GET /api/marketplace/registry/:provider/:id","listing_markdown":"GET /api/marketplace/registry/:provider/:id/md","listings":"GET /api/marketplace/registry","skills_catalog":"GET /api/marketplace/skills.md","stats":"GET /api/marketplace/registry/stats","sync_status":"GET /api/marketplace/registry/sync"},"schema":{"note":"Single source of truth for the SDK <-> Erebus wire contract. Versioned per semver. SDK clients can fetch /api/schema/version to detect drift.","openapi":"GET /api/schema (live OpenAPI 3.1 yaml)","version":"GET /api/schema/version (semver + title)"},"sensitive_data":{"flow":["1. POST /api/wallets/challenge with {wallet_address, wallet_type}","2. Sign the returned challenge message with your wallet private key","3. Include headers: x-wallet-signature and x-challenge-id alongside Authorization: Bearer","4. Applies to: /api/users/lookup, /api/users/:id, /api/users/:id/api-keys, /api/harnesses/*"],"note":"Endpoints accessing user data, harnesses, or API keys require wallet signature proof in addition to JWT."},"service":"rokha","sessions":{"description":"Managed MCP server connections with credential storage and OAuth proxy","endpoints":{"call_tool":"POST /api/sessions/connections/:id/tools/call","create_connection":"POST /api/sessions/connections","delete_connection":"DELETE /api/sessions/connections/:id","get_connection":"GET /api/sessions/connections/:id","list_connections":"GET /api/sessions/connections","list_tools":"POST /api/sessions/connections/:id/tools/list","oauth_callback":"GET /api/sessions/oauth/callback (public, redirects)","start_oauth":"POST /api/sessions/connections/:id/oauth/start","store_credentials":"PUT /api/sessions/connections/:id/credentials (JWT + wallet)"}},"skills":{"detail":"GET /api/skills/:name","file":"GET /api/skills/:name/*path","list":"GET /api/skills","note":"First-party Rokha-authored skills, served from the repo's skills/ folder. CORS-open, no auth required.","skill_md":"GET /api/skills/:name/SKILL.md","spec":"agentskills.io"},"tiers":{"casual":{"llm_requests_per_day":500,"scopes":["read","write"]},"free":{"llm_requests_per_day":100,"scopes":["read","write"]},"pro":{"llm_requests_per_day":"unlimited","scopes":["read","write","admin"]}},"version":"0.1.0"}