{"openapi":"3.1.0","info":{"title":"TurboPrivate encrypted-room broker","version":"1.1.0","description":"Authenticates developers and allocates encrypted rooms. This host never accepts prompt or response plaintext and intentionally has no /v1 inference route."},"servers":[{"url":"https://api.turboprivate.ai"}],"paths":{"/api/keys/token":{"post":{"summary":"Exchange a standing API key for a one-hour session token","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Session token minted"},"401":{"description":"Invalid credential"}}}},"/api/session/start":{"post":{"summary":"Allocate one encrypted room","description":"The client supplies only a SHA-256 room-capability hash and optional public model controls. Plaintext is sent directly to the allocated room inside a protocol-v2 encrypted envelope. Only approved TurboPrivate models are eligible.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["grantHash","profile","trustClass"],"additionalProperties":false,"properties":{"model":{"type":"string","description":"Exact public model id from /api/config"},"profile":{"const":"MODEL_COMPUTE","description":"Closed Room profile implemented by this endpoint"},"trustClass":{"enum":["ROOM_TRANSIT_ONLY","ROOM_TEE_VERIFIED"],"description":"Minimum accepted Room trust class; never downgraded"},"grantHash":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"SHA-256 of the client-created room capability"},"controls":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"number","minimum":0}]},"description":"Standing room controls by public id; unsupported names or values return 400"}}}}}},"responses":{"200":{"description":"Room coordinates, actual normalized settings and attestation expectation"},"400":{"description":"Unknown or invalid model control"},"402":{"description":"Insufficient prepaid balance"},"503":{"description":"No eligible room is running"}}}},"/api/status":{"get":{"summary":"Read live model availability","responses":{"200":{"description":"Availability by product"}}}},"/api/config":{"get":{"summary":"Read the public model catalog, controls and broker policy","responses":{"200":{"description":"Catalog; every model entry includes its supported controls, legal values, aliases and defaults"}}}},"/api/health":{"get":{"summary":"Control-plane health","responses":{"200":{"description":"Healthy"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"tp_live_… or tps_…"}}}}