{"openapi":"3.1.0","info":{"title":"3DBAE Developer API","summary":"Public scene data and agent integration discovery for 3DBAE.","description":"Use the public REST resources for published scene data and capability discovery. Use the 3DBAE Platform MCP endpoint for authenticated workspace automation. Every operation has a stable operationId, typed inputs, and typed responses for function-calling clients.","version":"1.0.0","termsOfService":"https://3dbae.com/terms-of-service","contact":{"name":"3DBAE Developer Support","url":"https://3dbae.com/contact","email":"connect@3dbae.com"}},"servers":[{"url":"https://3dbae.com","description":"Production"}],"externalDocs":{"description":"3DBAE developer hub","url":"https://3dbae.com/developers"},"tags":[{"name":"Discovery","description":"Stable machine-readable integration entry points."},{"name":"Published scenes","description":"Public, read-only scene publication data."},{"name":"MCP","description":"Authenticated JSON-RPC over the MCP Streamable HTTP transport."}],"paths":{"/api/agent/v1/capabilities":{"get":{"tags":["Discovery"],"operationId":"get3dbaeCapabilities","summary":"Discover 3DBAE agent integration capabilities","description":"Returns stable links for OpenAPI, MCP, OAuth metadata, agent instructions, REST errors, least-privilege scopes, and self-serve onboarding.","responses":{"200":{"description":"Current 3DBAE agent integration capabilities.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCapabilities"}}}},"405":{"description":"A machine-readable error using RFC 9457 Problem Details.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/public/scenes/{slug}":{"get":{"tags":["Published scenes"],"operationId":"get3dbaePublishedScene","summary":"Get a published 3DBAE scene","description":"Reads the active publication for a public scene slug. The response contains the immutable scene document, viewer dimensions, AR handoff facts when enabled, and publication version metadata.","parameters":[{"name":"slug","in":"path","required":true,"description":"The scene slug from a 3DBAE viewer URL.","schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"The active published scene.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishedScene"}}}},"404":{"description":"A machine-readable error using RFC 9457 Problem Details.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/mcp/platform/mcp":{"post":{"tags":["MCP"],"operationId":"call3dbaePlatformMcp","summary":"Send a request to the 3DBAE Platform MCP server","description":"Sends a JSON-RPC request using MCP Streamable HTTP. First complete OAuth discovery and request only the scopes needed by the MCP tool being called. MCP clients should follow the protocol handshake instead of invoking this operation as an ordinary REST action.","security":[{"oauth2":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcRequest"}}}},"responses":{"200":{"description":"An MCP JSON-RPC response or Streamable HTTP event stream.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}},"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"An MCP transport or JSON-RPC error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}},"401":{"description":"An MCP transport or JSON-RPC error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}},"403":{"description":"An MCP transport or JSON-RPC error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}},"429":{"description":"An MCP transport or JSON-RPC error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}}}},"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"3DBAE OAuth 2.0 Authorization Code with PKCE. Dynamic client registration is available at /api/mcp/oauth/register.","flows":{"authorizationCode":{"authorizationUrl":"https://3dbae.com/mcp/authorize","tokenUrl":"https://3dbae.com/api/mcp/oauth/token","refreshUrl":"https://3dbae.com/api/mcp/oauth/token","scopes":{"projects:read":"List and inspect projects of every 3DBAE project type.","projects:write":"Create, rename, and delete projects within your normal account limits.","configurators:read":"Inspect 3D configurator scenes, capabilities, and versions.","configurators:write":"Create configurator projects and apply validated scene changes.","image-configurators:read":"Read Image and 360° Image Configurator documents and versions.","image-configurators:write":"Save validated Image and 360° Image Configurator documents.","canvas:read":"Inspect Canvas workflows and the available node catalog.","canvas:write":"Apply validated, version-safe changes to Canvas workflows.","library:read":"Browse Library assets, folders, metadata, and optimization status.","library:write":"Create folders and rename, move, delete, or queue optimization for Library assets.","account:read":"Read your safe account, plan, usage, subscription, storage, and AI credit facts.","guidance:read":"Search official 3DBAE workflow guidance and feature instructions."}}}}},"schemas":{"AgentCapabilities":{"type":"object","additionalProperties":false,"required":["service","status","description","whenToUse","discovery","rest","mcp","onboarding"],"properties":{"service":{"type":"string"},"status":{"type":"string","enum":["available"]},"description":{"type":"string"},"whenToUse":{"type":"array","minItems":1,"items":{"type":"string"}},"discovery":{"type":"object","additionalProperties":{"type":"string","format":"uri"}},"rest":{"type":"object","additionalProperties":true},"mcp":{"type":"object","additionalProperties":true},"onboarding":{"type":"object","additionalProperties":true}}},"PublishedScene":{"type":"object","additionalProperties":false,"required":["allowCloning","ar","document","package","project","publishedAt","updatedAt","version"],"properties":{"allowCloning":{"type":"boolean"},"ar":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":true}]},"document":{"type":"object","description":"The versioned 3DBAE Scene Document.","additionalProperties":true},"package":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":true}]},"project":{"type":"object","additionalProperties":false,"required":["height","name","width"],"properties":{"height":{"type":"integer","minimum":1},"name":{"type":"string"},"width":{"type":"integer","minimum":1}}},"publishedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"version":{"type":"integer","minimum":1}}},"JsonRpcRequest":{"type":"object","additionalProperties":false,"required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"method":{"type":"string","minLength":1},"params":{"type":"object","additionalProperties":true}}},"JsonRpcResponse":{"type":"object","additionalProperties":true,"required":["jsonrpc"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"oneOf":[{"type":"string"},{"type":"integer"},{"type":"null"}]},"result":{},"error":{"type":"object","additionalProperties":true}}},"Problem":{"type":"object","additionalProperties":true,"required":["type","title","status","detail","instance","code","resolution"],"properties":{"type":{"type":"string","format":"uri-reference"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"instance":{"type":"string","format":"uri-reference"},"code":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$"},"resolution":{"type":"string"}}}}}}