{"components":{"schemas":{"AiPolicyPatch":{"additionalProperties":false,"properties":{"app_daily_requests":{"maximum":20000,"minimum":1,"type":"integer"},"default_model":{"enum":["gpt-5.6-terra","gpt-5.6-luna","gpt-5.6-sol","gpt-5.5"],"type":"string"},"enabled":{"type":"boolean"},"max_input_chars":{"maximum":64000,"minimum":1,"type":"integer"},"max_output_tokens":{"maximum":4096,"minimum":1,"type":"integer"},"models":{"items":{"enum":["gpt-5.6-terra","gpt-5.6-luna","gpt-5.6-sol","gpt-5.5"],"type":"string"},"minItems":1,"type":"array"},"public_policy":{"enum":["signed-in-quota",null],"type":["string","null"]},"user_daily_requests":{"maximum":2000,"minimum":1,"type":"integer"}},"type":"object"},"AppRequest":{"additionalProperties":false,"properties":{"description":{"maxLength":500,"type":"string"},"identity":{"description":"required for private apps: the app has no login of its own","enum":["platform"],"type":"string"},"kind":{"enum":["static","proxy"],"type":"string"},"name":{"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","type":"string"},"note":{"maxLength":500,"type":"string"},"target":{"description":"static: absolute root; proxy: 127.0.0.1:PORT","type":"string"},"title":{"maxLength":80,"type":"string"},"visibility":{"enum":["private","public_unlisted","public_listed"],"type":"string"}},"required":["name","title","kind","target","visibility"],"type":"object"},"Error":{"properties":{"error":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"}},"type":"object"},"ReleaseManifest":{"additionalProperties":false,"properties":{"ai":{"default":true,"type":"boolean"},"description":{"maxLength":500,"type":"string"},"name":{"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","type":"string"},"provenance":{"additionalProperties":false,"properties":{"commit":{"type":"string"},"note":{"type":"string"},"repository":{"type":"string"}},"type":"object"},"runtime":{"additionalProperties":false,"properties":{"env":{"additionalProperties":{"type":["string","number","boolean"]},"type":"object"},"health_path":{"default":"/","type":"string"},"memory_mb":{"default":512,"maximum":1024,"minimum":64,"type":"integer"},"port":{"maximum":65535,"minimum":1,"type":"integer"}},"type":"object"},"title":{"maxLength":80,"type":"string"},"version":{"maxLength":64,"type":"string"}},"required":["name","title"],"type":"object"}},"securitySchemes":{"publisherToken":{"bearerFormat":"rbpub_ publisher token","scheme":"bearer","type":"http"},"serviceToken":{"bearerFormat":"rbp_ service token","scheme":"bearer","type":"http"}}},"externalDocs":{"description":"Human-readable docs and publisher deploy quickstart (public)","url":"https://auth.repo.box/docs"},"info":{"description":"Scoped machine API for agents. Service tokens (rbp_) expose owner-scoped reads, bounded AI policy updates and app registration requests. Publisher tokens (rbpub_) deploy and operate the publisher's own apps from uploaded `docker save` archives (tag: publisher). Neither is OAuth.","title":"repo.box platform control plane API","version":"v1"},"openapi":"3.1.0","paths":{"/api/platform/v1":{"get":{"responses":{"200":{"description":"OK"}},"security":[],"summary":"Capabilities document (public)"}},"/api/platform/v1/app-requests":{"get":{"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing or invalid service token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"token lacks the scope"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app for this token"}},"security":[{"serviceToken":["apps:request"]}],"summary":"This owner's registration requests"},"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing or invalid service token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"token lacks the scope"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app for this token"}},"security":[{"serviceToken":["apps:request"]}],"summary":"Request an app registration (an operator approves with the CLI)"}},"/api/platform/v1/apps":{"get":{"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing or invalid service token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"token lacks the scope"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app for this token"}},"security":[{"serviceToken":["apps:read"]}],"summary":"Apps this token reaches"}},"/api/platform/v1/apps/{name}":{"get":{"parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing or invalid service token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"token lacks the scope"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app for this token"}},"security":[{"serviceToken":["apps:read"]}],"summary":"One app"}},"/api/platform/v1/apps/{name}/ai":{"get":{"parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing or invalid service token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"token lacks the scope"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app for this token"}},"security":[{"serviceToken":["ai:read"]}],"summary":"AI policy and today's usage"},"patch":{"parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiPolicyPatch"}}},"required":true},"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing or invalid service token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"token lacks the scope"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app for this token"}},"security":[{"serviceToken":["ai:write"]}],"summary":"Update the AI policy within platform ceilings"}},"/api/platform/v1/apps/{name}/route":{"get":{"parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing or invalid service token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"token lacks the scope"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app for this token"}},"security":[{"serviceToken":["routes:read"]}],"summary":"Preview the generated Caddy route (read-only)"}},"/api/platform/v1/mcp":{"post":{"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing or invalid service token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"token lacks the scope"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app for this token"}},"security":[{"serviceToken":["any"]}],"summary":"MCP JSON-RPC endpoint (tools mirror this API)"}},"/api/platform/v1/publisher/apps":{"get":{"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing, wrong-kind, expired or revoked publisher token"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app/release for this publisher"}},"security":[{"publisherToken":[]}],"summary":"Apps this publisher created","tags":["publisher"]}},"/api/platform/v1/publisher/apps/{name}":{"get":{"parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing, wrong-kind, expired or revoked publisher token"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app/release for this publisher"}},"security":[{"publisherToken":[]}],"summary":"One app: status, launcher URL, current release, AI policy","tags":["publisher"]}},"/api/platform/v1/publisher/apps/{name}/logs":{"get":{"parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string"}},{"in":"query","name":"tail","schema":{"maximum":2000,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing, wrong-kind, expired or revoked publisher token"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app/release for this publisher"}},"security":[{"publisherToken":[]}],"summary":"Runtime logs and container state","tags":["publisher"]}},"/api/platform/v1/publisher/apps/{name}/restart":{"post":{"parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string"}},{"description":"long-poll until the release is done","in":"query","name":"wait","schema":{"maximum":600,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing, wrong-kind, expired or revoked publisher token"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app/release for this publisher"}},"security":[{"publisherToken":[]}],"summary":"Restart the live container","tags":["publisher"]}},"/api/platform/v1/publisher/apps/{name}/rollback":{"post":{"parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string"}},{"description":"long-poll until the release is done","in":"query","name":"wait","schema":{"maximum":600,"minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"release":{"type":"string"}},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing, wrong-kind, expired or revoked publisher token"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app/release for this publisher"}},"security":[{"publisherToken":[]}],"summary":"Run a retained earlier release again","tags":["publisher"]}},"/api/platform/v1/publisher/releases":{"get":{"parameters":[{"in":"query","name":"app","schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing, wrong-kind, expired or revoked publisher token"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app/release for this publisher"}},"security":[{"publisherToken":[]}],"summary":"Releases of this publisher","tags":["publisher"]},"post":{"parameters":[{"description":"long-poll until the release is done","in":"query","name":"wait","schema":{"maximum":600,"minimum":0,"type":"integer"}}],"requestBody":{"content":{"multipart/form-data":{"encoding":{"manifest":{"contentType":"application/json"}},"schema":{"properties":{"image":{"description":"docker save output (tar or tar.gz), one linux/amd64 image, <= 2 GiB; send after manifest","format":"binary","type":"string"},"manifest":{"$ref":"#/components/schemas/ReleaseManifest"}},"required":["manifest","image"],"type":"object"}}},"required":true},"responses":{"200":{"description":"release finished (live or failed)"},"202":{"description":"release queued/in progress"},"409":{"description":"name unavailable, or a release of this app is in progress"},"413":{"description":"too large"},"415":{"description":"not multipart/form-data"}},"security":[{"publisherToken":[]}],"summary":"Deploy or update an app from an uploaded docker save archive","tags":["publisher"]}},"/api/platform/v1/publisher/releases/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"long-poll until the release is done","in":"query","name":"wait","schema":{"maximum":600,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing, wrong-kind, expired or revoked publisher token"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app/release for this publisher"}},"security":[{"publisherToken":[]}],"summary":"One release (status, artifact, failure, links)","tags":["publisher"]}},"/api/platform/v1/publisher/releases/{id}/log":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing, wrong-kind, expired or revoked publisher token"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app/release for this publisher"}},"security":[{"publisherToken":[]}],"summary":"Deploy log (text/plain)","tags":["publisher"]}},"/api/platform/v1/publisher/whoami":{"get":{"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing, wrong-kind, expired or revoked publisher token"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app/release for this publisher"}},"security":[{"publisherToken":[]}],"summary":"This publisher, its apps and limits","tags":["publisher"]}},"/api/platform/v1/release":{"get":{"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing or invalid service token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"token lacks the scope"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app for this token"}},"security":[{"serviceToken":["release:read"]}],"summary":"Release status: version, schema, AI broker reachability"}},"/api/platform/v1/whoami":{"get":{"responses":{"200":{"content":{"application/json":{}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"missing or invalid service token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"token lacks the scope"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"no such app for this token"}},"security":[{"serviceToken":["any"]}],"summary":"Token identity, owner and scopes"}},"/docs":{"get":{"responses":{"200":{"content":{"text/html":{}},"description":"OK"}},"security":[],"summary":"Human-readable docs landing with the publisher quickstart (public HTML)"}}},"servers":[{"url":"https://auth.repo.box"}]}