{"openapi":"3.1.0","info":{"title":"zer0dev API","version":"0.1.0-beta","description":"zer0dev developer API: boot, skills, Audit Done Gate, telemetry, and MCP. Free tier with self-serve install keys after .edu sign-in. Bearer install key on content routes.","contact":{"name":"Alejandro Loaiza","url":"https://www.linkedin.com/in/zer0dev/"},"x-free-tier":true,"x-self-serve-keys":true,"x-onboarding":"https://zer0dev.vercel.app/api/public/onboarding","x-developer-index":"https://zer0dev.vercel.app/api/public/developer-index","x-capabilities":"https://zer0dev.vercel.app/api/public/capabilities","x-discovery":"https://zer0dev.vercel.app/api/public/discovery"},"servers":[{"url":"https://zer0dev.vercel.app","description":"zer0dev production"}],"tags":[{"name":"public","description":"Unauthenticated endpoints"},{"name":"content","description":"Boot, skills, modules (Bearer)"},{"name":"audit","description":"Audit Done Gate"},{"name":"telemetry","description":"Usage and governance signals"},{"name":"auth","description":"OAuth and install keys"},{"name":"mcp","description":"Model Context Protocol"},{"name":"discovery","description":"Well-known metadata"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"zd_live install key or session token","description":"Install key from Settings or Instant session token"},"oauth2":{"type":"oauth2","description":"Client credentials with install key as client_secret","flows":{"clientCredentials":{"tokenUrl":"https://zer0dev.vercel.app/api/oauth/token","scopes":{"content:read":"zer0dev scope: content:read","audit:write":"zer0dev scope: audit:write","telemetry:write":"zer0dev scope: telemetry:write","memory:write":"zer0dev scope: memory:write","mcp:connect":"zer0dev scope: mcp:connect","install:manage":"zer0dev scope: install:manage"}}}}},"parameters":{"AcceptHeader":{"name":"Accept","in":"header","required":false,"description":"Prefer text/markdown on content routes; responses Vary on Accept","schema":{"type":"string","enum":["text/markdown","application/json"]}},"FormatQuery":{"name":"format","in":"query","required":false,"description":"Override Accept negotiation: json or markdown","schema":{"type":"string","enum":["json","markdown"]}}},"schemas":{"HealthResponse":{"type":"object","required":["ok","service","timestamp"],"properties":{"ok":{"type":"boolean","description":"True when the service is healthy."},"service":{"type":"string","example":"zer0dev"},"timestamp":{"type":"string","format":"date-time"}}},"PublicStatsResponse":{"type":"object","required":["totalPulls"],"properties":{"totalPulls":{"type":"integer","minimum":0,"nullable":true}}},"OnboardingResponse":{"type":"object","required":["product","freeTier","installKeysSelfServe","sandbox","sandboxUrl","testEnvironment"],"properties":{"product":{"type":"string","example":"zer0dev"},"freeTier":{"type":"boolean"},"freeTierAvailable":{"type":"boolean"},"installKeysSelfServe":{"type":"boolean"},"installKeyFormat":{"type":"string","example":"zd_live_*"},"sandbox":{"type":"boolean","description":"Student free tier uses production as test environment."},"sandboxUrl":{"type":"string","format":"uri"},"testEnvironment":{"type":"boolean"},"signupUrl":{"type":"string","format":"uri"},"settingsUrl":{"type":"string","format":"uri"},"openapi":{"type":"string","format":"uri"},"documentation":{"type":"string","format":"uri"},"llmsTxt":{"type":"string","format":"uri"},"signupPolicy":{"type":"string"},"capabilitiesUrl":{"type":"string","format":"uri"},"developerIndexUrl":{"type":"string","format":"uri"},"discoveryUrl":{"type":"string","format":"uri"}}},"DeveloperIndexResponse":{"type":"object","required":["product","productName","resources"],"properties":{"product":{"type":"string"},"productName":{"type":"string"},"description":{"type":"string"},"hostedOn":{"type":"string"},"canonicalOrigin":{"type":"string","format":"uri"},"searchKeywords":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"object","required":["name","url","type","description"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"type":{"type":"string"},"description":{"type":"string"}}}}}},"CapabilitiesResponse":{"type":"object","required":["product","apiType","endpoints","verifiedAt"],"properties":{"product":{"type":"string"},"apiType":{"type":"string","enum":["REST"]},"openapi":{"type":"string","format":"uri"},"publicReachableCount":{"type":"integer","minimum":0},"totalProbed":{"type":"integer","minimum":0},"authSurfaceReachable":{"type":"boolean"},"verifiedAt":{"type":"string","format":"date-time"},"endpoints":{"type":"array","items":{"type":"object","required":["method","path","status","ok","authRequired"],"properties":{"method":{"type":"string"},"path":{"type":"string"},"status":{"type":"integer"},"ok":{"type":"boolean"},"authRequired":{"type":"boolean"}}}}}},"DiscoveryHubResponse":{"type":"object","required":["product","apiVersion","resources"],"properties":{"apiVersion":{"type":"string","example":"v1"},"checklist":{"type":"string","format":"uri"},"description":{"type":"string"},"openapi":{"type":"string","format":"uri"},"product":{"type":"string","example":"zer0dev"},"roadmap":{"type":"string"},"verify":{"type":"string"},"resources":{"type":"array","items":{"type":"object","required":["id","name","type","url","description"],"properties":{"checklistId":{"type":"string","nullable":true},"description":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}},"OpenApiDocumentResponse":{"type":"object","required":["openapi","info","paths"],"properties":{"openapi":{"type":"string","example":"3.1.0"},"info":{"type":"object"},"paths":{"type":"object"},"components":{"type":"object"}}},"BootDocumentResponse":{"type":"object","required":["content","version","tokenCount"],"properties":{"content":{"type":"string"},"version":{"type":"string"},"tokenCount":{"type":"integer","minimum":0},"module":{"type":"string"}}},"SkillIndexResponse":{"type":"object","required":["skills"],"properties":{"skills":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"}}}}}},"SkillModuleResponse":{"type":"object","required":["content","module"],"properties":{"content":{"type":"string"},"module":{"type":"string"},"version":{"type":"string"},"tokenCount":{"type":"integer","minimum":0}}},"AuditOpenRequest":{"type":"object","required":["summary"],"properties":{"summary":{"type":"string","minLength":40,"maxLength":2000},"areas":{"type":"array","items":{"type":"string"}},"paths":{"type":"array","items":{"type":"string"}},"declaredScope":{"type":"string","enum":["micro","ui","feature","architecture","security","full"]}}},"AuditOpenResponse":{"type":"object","required":["auditId","scope","status","items"],"properties":{"auditId":{"type":"string","format":"uuid"},"scope":{"type":"string"},"mapper":{"type":"string","enum":["catalog","llm"]},"status":{"type":"string","enum":["review_required"]},"reminder":{"type":"string"},"gate":{"type":"string"},"items":{"type":"array","items":{"type":"object"}},"suggestedOracles":{"type":"array","items":{"type":"string"}}}},"AuditVerdictRequest":{"type":"object","required":["auditId","verdict"],"properties":{"auditId":{"type":"string","format":"uuid"},"verdict":{"type":"string","enum":["pass","fix-required"]},"note":{"type":"string","maxLength":400},"findings":{"type":"array","items":{"type":"object"}},"evidence":{"type":"object"}}},"AuditVerdictResponse":{"type":"object","required":["auditId","verdict","blockingCount"],"properties":{"auditId":{"type":"string","format":"uuid"},"verdict":{"type":"string","enum":["pass","fix-required"]},"blockingCount":{"type":"integer","minimum":0},"gateClosed":{"type":"boolean"},"reminder":{"type":"string"}}},"AuditReceiptsResponse":{"type":"object","required":["openCount","receipts"],"properties":{"openCount":{"type":"integer","minimum":0},"closedCount":{"type":"integer","minimum":0},"blockingCount":{"type":"integer","minimum":0},"receipts":{"type":"array","items":{"type":"object"}},"reminder":{"type":"string"}}},"TelemetryMissRequest":{"type":"object","required":["kind"],"properties":{"kind":{"type":"string"},"resourceKey":{"type":"string"},"detail":{"type":"string"}}},"TelemetryMissResponse":{"type":"object","required":["recorded"],"properties":{"recorded":{"type":"boolean"},"reminder":{"type":"string"}}},"CacheTelemetryRequest":{"type":"object","required":["resourceKey","version","outcome","tokensAvoided"],"properties":{"resourceKey":{"type":"string"},"version":{"type":"string"},"outcome":{"type":"string","enum":["cache_hit"]},"tokensAvoided":{"type":"integer","minimum":0}}},"CacheTelemetryResponse":{"type":"object","required":["recorded","resourceKey","tokensAvoided"],"properties":{"recorded":{"type":"boolean","enum":[true]},"resourceKey":{"type":"string"},"tokensAvoided":{"type":"integer","minimum":0},"reminder":{"type":"string"}}},"OAuthTokenRequest":{"type":"object","required":["grant_type","client_secret"],"properties":{"grant_type":{"type":"string","enum":["client_credentials"]},"client_secret":{"type":"string","description":"zd_live_ install key"},"scope":{"type":"string"}}},"OAuthTokenResponse":{"type":"object","required":["access_token","token_type","expires_in"],"properties":{"access_token":{"type":"string"},"token_type":{"type":"string","enum":["Bearer"]},"expires_in":{"type":"integer","minimum":0},"scope":{"type":"string"}}},"McpJsonRpcRequest":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"method":{"type":"string"},"params":{"type":"object"}}},"McpJsonRpcResponse":{"type":"object","required":["jsonrpc"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"result":{"type":"object"},"error":{"type":"object"}}},"OAuthAuthorizationServerMetadata":{"type":"object","required":["issuer","token_endpoint","scopes_supported"],"properties":{"issuer":{"type":"string","format":"uri"},"token_endpoint":{"type":"string","format":"uri"},"scopes_supported":{"type":"array","items":{"type":"string"}},"grant_types_supported":{"type":"array","items":{"type":"string"}}}},"OAuthProtectedResourceMetadata":{"type":"object","required":["resource","authorization_servers","scopes_supported"],"properties":{"resource":{"type":"string","format":"uri"},"authorization_servers":{"type":"array","items":{"type":"string","format":"uri"}},"scopes_supported":{"type":"array","items":{"type":"string"}},"bearer_methods_supported":{"type":"array","items":{"type":"string"}}}},"McpDiscoveryManifest":{"type":"object","required":["name","url","transport","mcp_version"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"transport":{"type":"string","enum":["streamable-http"]},"mcp_version":{"type":"string"},"protocolVersion":{"type":"string"},"endpoints":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"transport":{"type":"string"}}}},"capabilities":{"type":"object"}}}}},"security":[{"bearerAuth":[]}],"paths":{"/api/health":{"get":{"operationId":"getHealth","tags":["public"],"security":[],"summary":"Liveness probe","description":"Public health check for load balancers and agent smoke tests.","responses":{"200":{"description":"Service healthy","content":{"application/json":{"schema":{"type":"object","required":["ok","service","timestamp"],"properties":{"ok":{"type":"boolean","description":"True when the service is healthy."},"service":{"type":"string","example":"zer0dev"},"timestamp":{"type":"string","format":"date-time"}}}}}}}}},"/api/openapi":{"get":{"operationId":"getOpenApiSpec","tags":["public"],"security":[],"summary":"OpenAPI 3.1 specification","description":"Machine-readable zer0dev developer API catalog for agents.","responses":{"200":{"description":"OpenAPI document","content":{"application/json":{"schema":{"type":"object","required":["openapi","info","paths"],"properties":{"openapi":{"type":"string","example":"3.1.0"},"info":{"type":"object"},"paths":{"type":"object"},"components":{"type":"object"}}}}}}}}},"/api/public/onboarding":{"get":{"operationId":"getPublicOnboarding","tags":["public"],"security":[],"summary":"Agent onboarding metadata","description":"Free tier, self-serve install keys, sandbox URL, and signup URLs for autonomous agent onboarding.","responses":{"200":{"description":"Onboarding metadata","content":{"application/json":{"schema":{"type":"object","required":["product","freeTier","installKeysSelfServe","sandbox","sandboxUrl","testEnvironment"],"properties":{"product":{"type":"string","example":"zer0dev"},"freeTier":{"type":"boolean"},"freeTierAvailable":{"type":"boolean"},"installKeysSelfServe":{"type":"boolean"},"installKeyFormat":{"type":"string","example":"zd_live_*"},"sandbox":{"type":"boolean","description":"Student free tier uses production as test environment."},"sandboxUrl":{"type":"string","format":"uri"},"testEnvironment":{"type":"boolean"},"signupUrl":{"type":"string","format":"uri"},"settingsUrl":{"type":"string","format":"uri"},"openapi":{"type":"string","format":"uri"},"documentation":{"type":"string","format":"uri"},"llmsTxt":{"type":"string","format":"uri"},"signupPolicy":{"type":"string"},"capabilitiesUrl":{"type":"string","format":"uri"},"developerIndexUrl":{"type":"string","format":"uri"},"discoveryUrl":{"type":"string","format":"uri"}}}}}}}}},"/api/public/developer-index":{"get":{"operationId":"getDeveloperResourceIndex","tags":["public"],"security":[],"summary":"zer0dev developer resource catalog","description":"Machine-readable index of zer0dev API docs, OpenAPI, OAuth, MCP, and onboarding URLs.","responses":{"200":{"description":"Developer resource index","content":{"application/json":{"schema":{"type":"object","required":["product","productName","resources"],"properties":{"product":{"type":"string"},"productName":{"type":"string"},"description":{"type":"string"},"hostedOn":{"type":"string"},"canonicalOrigin":{"type":"string","format":"uri"},"searchKeywords":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"object","required":["name","url","type","description"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"type":{"type":"string"},"description":{"type":"string"}}}}}}}}}}}},"/api/public/capabilities":{"get":{"operationId":"getPublicCapabilities","tags":["public"],"security":[],"summary":"Live public API capability probe","description":"Machine-verifiable probe of reachable zer0dev public REST endpoints for agents.","responses":{"200":{"description":"Capability probe results","content":{"application/json":{"schema":{"type":"object","required":["product","apiType","endpoints","verifiedAt"],"properties":{"product":{"type":"string"},"apiType":{"type":"string","enum":["REST"]},"openapi":{"type":"string","format":"uri"},"publicReachableCount":{"type":"integer","minimum":0},"totalProbed":{"type":"integer","minimum":0},"authSurfaceReachable":{"type":"boolean"},"verifiedAt":{"type":"string","format":"date-time"},"endpoints":{"type":"array","items":{"type":"object","required":["method","path","status","ok","authRequired"],"properties":{"method":{"type":"string"},"path":{"type":"string"},"status":{"type":"integer"},"ok":{"type":"boolean"},"authRequired":{"type":"boolean"}}}}}}}}}}}},"/api/public/discovery":{"get":{"operationId":"getPublicDiscoveryHub","tags":["public","discovery"],"security":[],"summary":"Agent discovery hub","description":"Versioned index of all public agent-discovery surfaces (Is Agentic / Ora).","responses":{"200":{"description":"Discovery hub document","content":{"application/json":{"schema":{"type":"object","required":["product","apiVersion","resources"],"properties":{"apiVersion":{"type":"string","example":"v1"},"checklist":{"type":"string","format":"uri"},"description":{"type":"string"},"openapi":{"type":"string","format":"uri"},"product":{"type":"string","example":"zer0dev"},"roadmap":{"type":"string"},"verify":{"type":"string"},"resources":{"type":"array","items":{"type":"object","required":["id","name","type","url","description"],"properties":{"checklistId":{"type":"string","nullable":true},"description":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}}}}}}}},"/api/public/stats":{"get":{"operationId":"getPublicStats","tags":["public"],"security":[],"summary":"Aggregate pull stats","description":"Public marketing stats (no secrets).","responses":{"200":{"description":"Public stats","content":{"application/json":{"schema":{"type":"object","required":["totalPulls"],"properties":{"totalPulls":{"type":"integer","minimum":0,"nullable":true}}}}}}}}},"/api/boot":{"get":{"operationId":"getBootDocument","tags":["content"],"summary":"Composed boot document","description":"Boot document for IDE sessionStart. Supports Accept: text/markdown.","parameters":[{"$ref":"#/components/parameters/AcceptHeader"},{"$ref":"#/components/parameters/FormatQuery"}],"security":[{"oauth2":["content:read"]},{"bearerAuth":[]}],"responses":{"200":{"description":"Boot document","content":{"application/json":{"schema":{"type":"object","required":["content","version","tokenCount"],"properties":{"content":{"type":"string"},"version":{"type":"string"},"tokenCount":{"type":"integer","minimum":0},"module":{"type":"string"}}}},"text/markdown":{"schema":{"type":"string"}}},"headers":{"Vary":{"schema":{"type":"string"},"example":"Accept, Accept-Encoding"}}},"401":{"description":"Missing or invalid Bearer token"}}}},"/api/skills":{"get":{"operationId":"listSkills","tags":["content"],"summary":"Skill catalog","description":"Index of hosted audit skills.","parameters":[{"$ref":"#/components/parameters/AcceptHeader"}],"security":[{"oauth2":["content:read"]},{"bearerAuth":[]}],"responses":{"200":{"description":"Skill index","content":{"application/json":{"schema":{"type":"object","required":["skills"],"properties":{"skills":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"}}}}}}},"text/markdown":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized"}}}},"/api/skills/{id}":{"get":{"operationId":"getSkillById","tags":["content"],"summary":"Skill module body","description":"Single skill markdown or JSON module.","parameters":[{"name":"id","in":"path","required":true,"description":"Skill identifier","schema":{"type":"string","minLength":1}},{"$ref":"#/components/parameters/AcceptHeader"}],"security":[{"oauth2":["content:read"]},{"bearerAuth":[]}],"responses":{"200":{"description":"Skill module","content":{"application/json":{"schema":{"type":"object","required":["content","module"],"properties":{"content":{"type":"string"},"module":{"type":"string"},"version":{"type":"string"},"tokenCount":{"type":"integer","minimum":0}}}},"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"Unknown skill id"}}}},"/api/quality/audit":{"post":{"operationId":"openAuditGate","tags":["audit"],"summary":"Open Audit Done Gate checklist","description":"Start a scoped Audit with checklist items for the session.","security":[{"oauth2":["audit:write"]},{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["summary"],"properties":{"summary":{"type":"string","minLength":40,"maxLength":2000},"areas":{"type":"array","items":{"type":"string"}},"paths":{"type":"array","items":{"type":"string"}},"declaredScope":{"type":"string","enum":["micro","ui","feature","architecture","security","full"]}}}}}},"responses":{"200":{"description":"Audit opened","content":{"application/json":{"schema":{"type":"object","required":["auditId","scope","status","items"],"properties":{"auditId":{"type":"string","format":"uuid"},"scope":{"type":"string"},"mapper":{"type":"string","enum":["catalog","llm"]},"status":{"type":"string","enum":["review_required"]},"reminder":{"type":"string"},"gate":{"type":"string"},"items":{"type":"array","items":{"type":"object"}},"suggestedOracles":{"type":"array","items":{"type":"string"}}}}}}},"401":{"description":"Unauthorized"}}}},"/api/quality/audit/verdict":{"post":{"operationId":"closeAuditGate","tags":["audit"],"summary":"Close Audit Done Gate","description":"Submit verdict with checklist fetch proof and oracle receipts.","security":[{"oauth2":["audit:write"]},{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["auditId","verdict"],"properties":{"auditId":{"type":"string","format":"uuid"},"verdict":{"type":"string","enum":["pass","fix-required"]},"note":{"type":"string","maxLength":400},"findings":{"type":"array","items":{"type":"object"}},"evidence":{"type":"object"}}}}}},"responses":{"200":{"description":"Audit verdict recorded","content":{"application/json":{"schema":{"type":"object","required":["auditId","verdict","blockingCount"],"properties":{"auditId":{"type":"string","format":"uuid"},"verdict":{"type":"string","enum":["pass","fix-required"]},"blockingCount":{"type":"integer","minimum":0},"gateClosed":{"type":"boolean"},"reminder":{"type":"string"}}}}}},"409":{"description":"checklist_not_fetched or open_gates"}}}},"/api/quality/audit/receipts":{"get":{"operationId":"listAuditReceipts","tags":["audit"],"summary":"List Audit receipts","description":"Fetch Audit receipt history for the authenticated install key.","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["blocking","open","closed","all","fix-required"]}}],"security":[{"oauth2":["audit:write"]},{"bearerAuth":[]}],"responses":{"200":{"description":"Audit receipts","content":{"application/json":{"schema":{"type":"object","required":["openCount","receipts"],"properties":{"openCount":{"type":"integer","minimum":0},"closedCount":{"type":"integer","minimum":0},"blockingCount":{"type":"integer","minimum":0},"receipts":{"type":"array","items":{"type":"object"}},"reminder":{"type":"string"}}}}}}}}},"/api/telemetry/miss":{"post":{"operationId":"recordGovernanceMiss","tags":["telemetry"],"summary":"Report governance miss","description":"Record when governance law was skipped in a session.","security":[{"oauth2":["telemetry:write"]},{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["kind"],"properties":{"kind":{"type":"string"},"resourceKey":{"type":"string"},"detail":{"type":"string"}}}}}},"responses":{"200":{"description":"Miss recorded","content":{"application/json":{"schema":{"type":"object","required":["recorded"],"properties":{"recorded":{"type":"boolean"},"reminder":{"type":"string"}}}}}}}}},"/api/telemetry/cache":{"post":{"operationId":"recordCacheHit","tags":["telemetry"],"summary":"Report cache hit","description":"Record a local content cache hit for analytics.","security":[{"oauth2":["telemetry:write"]},{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["resourceKey","version","outcome","tokensAvoided"],"properties":{"resourceKey":{"type":"string"},"version":{"type":"string"},"outcome":{"type":"string","enum":["cache_hit"]},"tokensAvoided":{"type":"integer","minimum":0}}}}}},"responses":{"200":{"description":"Cache hit recorded","content":{"application/json":{"schema":{"type":"object","required":["recorded","resourceKey","tokensAvoided"],"properties":{"recorded":{"type":"boolean","enum":[true]},"resourceKey":{"type":"string"},"tokensAvoided":{"type":"integer","minimum":0},"reminder":{"type":"string"}}}}}}}}},"/api/oauth/token":{"post":{"operationId":"postOAuthToken","tags":["auth"],"security":[],"summary":"OAuth client_credentials token","description":"Exchange install key (client_secret) for Bearer access token with scopes.","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["grant_type","client_secret"],"properties":{"grant_type":{"type":"string","enum":["client_credentials"]},"client_secret":{"type":"string","description":"zd_live_ install key"},"scope":{"type":"string"}}}}}},"responses":{"200":{"description":"Access token issued","content":{"application/json":{"schema":{"type":"object","required":["access_token","token_type","expires_in"],"properties":{"access_token":{"type":"string"},"token_type":{"type":"string","enum":["Bearer"]},"expires_in":{"type":"integer","minimum":0},"scope":{"type":"string"}}}}}},"401":{"description":"Invalid install key"}}}},"/api/mcp":{"post":{"operationId":"postMcpJsonRpc","tags":["mcp"],"summary":"MCP Streamable HTTP endpoint","description":"Model Context Protocol JSON-RPC over Streamable HTTP.","security":[{"oauth2":["mcp:connect"]},{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"method":{"type":"string"},"params":{"type":"object"}}}}}},"responses":{"200":{"description":"JSON-RPC result","content":{"application/json":{"schema":{"type":"object","required":["jsonrpc"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"result":{"type":"object"},"error":{"type":"object"}}}}}}}}},"/.well-known/oauth-authorization-server":{"get":{"operationId":"getOAuthAuthorizationServerMetadata","tags":["auth","discovery"],"security":[],"summary":"OAuth 2.0 authorization server metadata","description":"RFC 8414 metadata including scopes_supported.","responses":{"200":{"description":"Authorization server metadata","content":{"application/json":{"schema":{"type":"object","required":["issuer","token_endpoint","scopes_supported"],"properties":{"issuer":{"type":"string","format":"uri"},"token_endpoint":{"type":"string","format":"uri"},"scopes_supported":{"type":"array","items":{"type":"string"}},"grant_types_supported":{"type":"array","items":{"type":"string"}}}}}}}}}},"/.well-known/oauth-protected-resource":{"get":{"operationId":"getOAuthProtectedResourceMetadata","tags":["auth","discovery"],"security":[],"summary":"OAuth 2.0 protected resource metadata","description":"RFC 9728 metadata including scopes_supported for the zer0dev API.","responses":{"200":{"description":"Protected resource metadata","content":{"application/json":{"schema":{"type":"object","required":["resource","authorization_servers","scopes_supported"],"properties":{"resource":{"type":"string","format":"uri"},"authorization_servers":{"type":"array","items":{"type":"string","format":"uri"}},"scopes_supported":{"type":"array","items":{"type":"string"}},"bearer_methods_supported":{"type":"array","items":{"type":"string"}}}}}}}}}},"/.well-known/mcp":{"get":{"operationId":"getMcpDiscoveryManifest","tags":["mcp","discovery"],"security":[],"summary":"MCP discovery manifest","description":"Live MCP Streamable HTTP handshake metadata for agents.","responses":{"200":{"description":"MCP discovery manifest","content":{"application/json":{"schema":{"type":"object","required":["name","url","transport","mcp_version"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"transport":{"type":"string","enum":["streamable-http"]},"mcp_version":{"type":"string"},"protocolVersion":{"type":"string"},"endpoints":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"transport":{"type":"string"}}}},"capabilities":{"type":"object"}}}}}}}}}}}