asyncapi: 2.6.0 info: title: Render Logs Subscription API version: '1.0' description: >- Render exposes a documented public WebSocket surface for real-time log streaming. A client opens a WebSocket connection to wss://api.render.com/v1/logs/subscribe with an API key Bearer token and query filters (ownerId and one or more resource IDs, plus optional level, text, host, statusCode, method, task, type, and path filters). The server performs the HTTP-to-WebSocket upgrade (HTTP 101) and then pushes log messages to the client in real time as they are generated. All subscribed resources must be in the same region and belong to the same owner. This AsyncAPI document models that server-push WebSocket stream. Historical log retrieval is a separate REST endpoint (GET /logs), modeled in the OpenAPI document. contact: name: Render url: https://render.com servers: production: url: api.render.com/v1 protocol: wss description: >- Render Public API WebSocket log subscription endpoint. Full path wss://api.render.com/v1/logs/subscribe. Authenticated with an API key Bearer token. security: - bearerAuth: [] defaultContentType: application/json channels: /logs/subscribe: description: >- Real-time log subscription. After the WebSocket upgrade, the server sends log messages matching the subscription filters as they are generated. bindings: ws: method: GET query: type: object required: - ownerId - resource properties: ownerId: type: string description: The workspace (owner) ID that scopes the subscription. resource: type: array items: type: string description: One or more resource IDs (services, cron jobs, jobs, Postgres, Key Value, or workflows) to stream logs from. level: type: array items: type: string description: Optional log level filter. text: type: array items: type: string description: Optional substring filter on log text. subscribe: operationId: receiveLogMessage summary: Receive real-time log messages pushed by Render over the WebSocket. message: $ref: '#/components/messages/LogMessage' components: messages: LogMessage: name: logMessage title: Log Message summary: A single log line streamed in real time as it is generated. contentType: application/json payload: type: object properties: id: type: string description: Unique identifier for the log entry. timestamp: type: string format: date-time description: When the log line was generated. message: type: string description: The log text. level: type: string description: Log level, when available. type: type: string description: Log type (for example app or request). labels: type: array description: Key/value labels describing the source resource, instance, and request attributes. items: type: object properties: name: type: string value: type: string securitySchemes: bearerAuth: type: http scheme: bearer description: Render API key sent as an Authorization Bearer token on the WebSocket upgrade request.