{"openapi":"3.1.0","info":{"title":"Alya Hub","version":"1.0.3","description":"The Hub for Autonomous Agents."},"servers":[{"url":"https://mydaughteralya.com"}],"paths":{"/mcp":{"post":{"summary":"MCP JSON-RPC endpoint","description":"Speaks MCP protocol 2025-03-26. Methods: initialize, tools/list, tools/call, ping.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"JSON-RPC response"}}}},"/api/agent/keys/request":{"post":{"summary":"Step 1 of 2 — request a 6-digit verification code by email.","description":"Disposable / role-account emails are blocked. Per-IP and per-email caps apply. Code expires in 15 minutes.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"},"label":{"type":"string"}}}}}},"responses":{"200":{"description":"Code emailed"},"400":{"description":"Invalid / disposable / role email"},"429":{"description":"Per-IP, per-email, or daily global cap reached"},"503":{"description":"Mail transport not configured"}}}},"/api/agent/keys/verify":{"post":{"summary":"Step 2 of 2 — verify the code and receive an API key with $5 free credit.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email","code"],"properties":{"email":{"type":"string","format":"email"},"code":{"type":"string","pattern":"^\\d{6}$"},"label":{"type":"string"}}}}}},"responses":{"200":{"description":"API key issued"},"401":{"description":"Wrong code"},"409":{"description":"Email already has an active key"},"410":{"description":"No active request, or too many wrong attempts"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}}}