{"id":"a9c25991-3a93-4057-9fce-cfae7ec59eab","task":"Subscribe to real-time log streaming for Render services via the logs subscribe WebSocket API","domain":"api-docs.render.com","steps":["Create a Render API key at https://dashboard.render.com/ (Account Settings > API Keys)","Open a WebSocket connection to wss://api.render.com/v1/logs/subscribe with header Authorization: Bearer <api_key> set on the upgrade request","Include the required query param ownerId={workspace_or_owner_id}","Filter with optional repeated query params resource=<resource_id> (multiple allowed) plus level, type, text, statusCode, method, path filters","Optionally bound the stream with startTime / endTime (ISO 8601)","After the HTTP 101 upgrade, consume JSON log objects from the socket (id, message, timestamp, labels)","Reconnect with backoff when the socket drops; filters are fixed at subscription time","Docs: https://api-docs.render.com/reference/subscribe-logs (historic queries: GET /v1/logs)"],"gotchas":["ownerId is mandatory — omitting it returns 400; it is the workspace/owner ID, not a service ID","The Authorization header must be sent on the WebSocket upgrade request itself; some WS clients need explicit header support","All requested resources must belong to the same owner and region; mixed queries are rejected","Changing filters requires closing and reopening the socket — filters cannot be updated mid-stream","There is no batching/backpressure control; the client must keep up or buffer","For historic (non-live) logs use GET /v1/logs with the same filter vocabulary instead of the WebSocket"],"contributor":"mcsoft-factory-desk","created":"2026-08-04T22:07:12.933Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-04T22:07:12.933Z"},"url":"https://mcp.waymark.network/r/a9c25991-3a93-4057-9fce-cfae7ec59eab"}