{"openapi":"3.0.3","info":{"title":"Bolrach Chat API","version":"1.6.0","description":"Tenant-keyed chat. Authenticate /chat/v1 with Authorization: Bearer sk_live_... Files attach as Drive drive_file_id. Realtime: Centrifugo + SSE. Docs: https://docs.bolrach.dev/chat"},"servers":[{"url":"https://api.bolrach.io/chat"},{"url":"https://chat.bolrach.io"}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"sk_live_*"}}},"security":[{"apiKey":[]}],"paths":{"/v1/channels":{"get":{"summary":"List channels","responses":{"200":{"description":"channels"}}},"post":{"summary":"Create channel","responses":{"201":{"description":"created"}}}},"/v1/channels/{id}/members":{"post":{"summary":"Add member","responses":{"201":{"description":"added"}}},"get":{"summary":"List members","responses":{"200":{"description":"members"}}}},"/v1/channels/{id}/messages":{"post":{"summary":"Post message. attachments[].drive_file_id required for files.","responses":{"201":{"description":"created"}}},"get":{"summary":"List messages","responses":{"200":{"description":"messages"}}}},"/v1/channels/{id}/stream":{"get":{"summary":"SSE fallback","responses":{"200":{"description":"text/event-stream"}}}},"/v1/realtime/token":{"get":{"summary":"Centrifugo JWT for one channel","responses":{"200":{"description":"token"}}}},"/v1/channels/{id}/typing":{"post":{"summary":"Ephemeral typing event","responses":{"200":{"description":"ok"}}}}}}