{"openapi":"3.1.0","info":{"title":"Lightbringer API","version":"12.5.0","summary":"Public API surface of the Lightbringer patent platform.","description":"Lightbringer is an AI-powered patent platform. Agents integrate through the MCP server at https://mcp.lightbringer.com/mcp (OAuth 2.1; see the securitySchemes below for the named scopes). This document covers the unauthenticated public endpoints and the OAuth surface of https://app.lightbringer.com. See https://app.lightbringer.com/developers for an overview and https://app.lightbringer.com/llms.txt for agent-oriented guidance.","termsOfService":"https://app.lightbringer.com/terms","contact":{"name":"Lightbringer AB","email":"support@lightbringer.com","url":"https://app.lightbringer.com/contact"}},"servers":[{"url":"https://app.lightbringer.com"}],"externalDocs":{"description":"Lightbringer developer resources","url":"https://app.lightbringer.com/developers"},"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"OAuth 2.1 authorization-code flow with PKCE (S256). Clients register dynamically (RFC 7591) or present a Client ID Metadata Document URL as client_id. Authorization requests must carry an RFC 8707 resource indicator. The mcp:* scopes are consentable directly; the granular scopes are minted through RFC 8693 token exchange against the token endpoint and enforced by the v1 API.","flows":{"authorizationCode":{"authorizationUrl":"https://app.lightbringer.com/api/oauth/authorize","tokenUrl":"https://app.lightbringer.com/api/oauth/token","scopes":{"mcp:read":"Read your patent applications, documents, and prosecution data","mcp:write":"Create and edit your patent applications, documents, and drafts","read:prompts":"Read prompts resources (issued via RFC 8693 token exchange)","read:organisation-settings":"Read organisation settings resources (issued via RFC 8693 token exchange)","write:organisation-settings":"Write organisation settings resources (issued via RFC 8693 token exchange)","read:workflow-blueprints":"Read workflow blueprints resources (issued via RFC 8693 token exchange)","write:workflow-blueprints":"Write workflow blueprints resources (issued via RFC 8693 token exchange)","read:innovation-disclosures":"Read innovation disclosures resources (issued via RFC 8693 token exchange)","delete:automated-tasks":"Delete automated tasks resources (issued via RFC 8693 token exchange)","write:innovation-disclosures":"Write innovation disclosures resources (issued via RFC 8693 token exchange)","write:patent-imports":"Write patent imports resources (issued via RFC 8693 token exchange)","presence:token":"Presence token resources (issued via RFC 8693 token exchange)","write:document-collaboration":"Write document collaboration resources (issued via RFC 8693 token exchange)","write:report-collaboration":"Write report collaboration resources (issued via RFC 8693 token exchange)","write:meeting-collaboration":"Write meeting collaboration resources (issued via RFC 8693 token exchange)","write:workflow-progress":"Write workflow progress resources (issued via RFC 8693 token exchange)","write:aurora-ticket":"Write aurora ticket resources (issued via RFC 8693 token exchange)","write:prosecution":"Write prosecution resources (issued via RFC 8693 token exchange)","write:patent-draft":"Write patent draft resources (issued via RFC 8693 token exchange)","write:knowledge-graph":"Write knowledge graph resources (issued via RFC 8693 token exchange)","write:method-definition":"Write method definition resources (issued via RFC 8693 token exchange)","write:image-generation":"Write image generation resources (issued via RFC 8693 token exchange)","write:comments":"Write comments resources (issued via RFC 8693 token exchange)","read:iprally-search":"Read iprally search resources (issued via RFC 8693 token exchange)","read:reviews":"Read reviews resources (issued via RFC 8693 token exchange)","write:reviews":"Write reviews resources (issued via RFC 8693 token exchange)"}}}},"bearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"ES256 JWT issued by this origin (verification keys at /.well-known/jwks.json). The token carries a space-delimited `scope` claim drawn from the scopes listed on the oauth2 scheme."}}},"paths":{"/api/public/plans":{"get":{"operationId":"getPublicPlans","summary":"Plans and MCP capability document","description":"Unauthenticated JSON describing the available plans, self-serve signup, and how to connect over MCP (server URL, scopes, enablement requirements).","responses":{"200":{"description":"Plans and MCP connection details.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/public/markdown/{page}":{"get":{"operationId":"getPageMarkdown","summary":"Markdown representation of a public page","description":"The markdown variant of the public pages, also reachable by requesting the HTML path with `Accept: text/markdown` or the sibling `.md` URL (for example /about.md).","parameters":[{"name":"page","in":"path","required":true,"schema":{"type":"string","enum":["index","login","about","contact","developers"]}}],"responses":{"200":{"description":"Markdown content.","content":{"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"Unknown page."}}}},"/.well-known/oauth-authorization-server":{"get":{"operationId":"getAuthorizationServerMetadata","summary":"RFC 8414 authorization server metadata","responses":{"200":{"description":"Authorization server metadata, including scopes_supported.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/.well-known/oauth-protected-resource":{"get":{"operationId":"getProtectedResourceMetadata","summary":"RFC 9728 protected resource metadata","responses":{"200":{"description":"Protected resource metadata, including scopes_supported.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/.well-known/jwks.json":{"get":{"operationId":"getJwks","summary":"JSON Web Key Set for token verification","responses":{"200":{"description":"JWKS document.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/oauth/register":{"post":{"operationId":"registerOAuthClient","summary":"RFC 7591 dynamic client registration","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"Client registered."},"400":{"description":"Invalid client metadata."}}}},"/api/oauth/token":{"post":{"operationId":"exchangeToken","summary":"OAuth 2.1 token endpoint","description":"Supports the authorization_code, refresh_token, and urn:ietf:params:oauth:grant-type:token-exchange grants.","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Token response."},"400":{"description":"OAuth error response."}}}}}}