AsyncAPI channel · Hasura
· Hasura GraphQL Subscriptions over WebSocket
/v1/graphql
Single WebSocket channel used for all Hasura GraphQL subscription, query, and mutation traffic. The channel multiplexes any number of concurrent operations identified by a client-generated `id`.
Channel address
/v1/graphql
Operations
publish
clientMessages
Messages published by the client to Hasura.
subscribe
serverMessages
Messages sent by Hasura to the client.
Messages
ConnectionInit
Client → Server. First message sent after the WebSocket is open. Optionally carries a payload with auth headers and connection parameters that Hasura forwards to its auth layer.
Content-Type:
application/jsonSubscribe
Client → Server. Requests execution of a GraphQL operation (query, mutation, or subscription). The `id` MUST be unique across the WebSocket session; Hasura streams results back tagged with the same `i
Content-Type:
application/jsonPingClient
Client → Server. Optional keep-alive / latency probe. The peer MUST respond with a `pong`. May also be sent unsolicited as a heartbeat.
Content-Type:
application/jsonPongClient
Client → Server. Response to a `ping`. May also be sent unsolicited as a unidirectional heartbeat.
Content-Type:
application/jsonCompleteClient
Client → Server. Signals that the client wishes to stop the operation identified by `id`. Used to unsubscribe.
Content-Type:
application/jsonLegacyConnectionInit
Client → Server. First legacy-protocol message. The payload carries `connectionParams` (auth headers / session variables).
Content-Type:
application/jsonLegacyStart
Client → Server. Starts a GraphQL operation identified by a unique `id`.
Content-Type:
application/jsonLegacyStop
Client → Server. Stops the running operation identified by `id` (unsubscribe).
Content-Type:
application/jsonLegacyConnectionTerminate
Client → Server. Asks Hasura to close the connection.
Content-Type:
application/jsonConnectionAck
Server → Client. Sent after Hasura accepts the connection and the auth handshake completes.
Content-Type:
application/jsonPingServer
Server → Client. Optional keep-alive / latency probe. The peer MUST respond with a `pong`. May also be sent unsolicited as a heartbeat.
Content-Type:
application/jsonPongServer
Server → Client. Response to a `ping`. May also be sent unsolicited as a unidirectional heartbeat.
Content-Type:
application/jsonNext
Server → Client. Carries a single GraphQL execution result for the operation identified by `id`.
Content-Type:
application/jsonError
Server → Client. Communicates one or more GraphQL errors that occurred before execution started (validation or operation errors). Terminates the operation; no further messages with this `id` will be s
Content-Type:
application/jsonCompleteServer
Server → Client. Indicates the operation identified by `id` has completed and no further results will be sent.
Content-Type:
application/jsonLegacyConnectionAck
Server → Client. Acknowledges a successful connection.
Content-Type:
application/jsonLegacyConnectionError
Server → Client. Sent when Hasura rejects the connection (auth failure, parsing error, etc.). The connection will be closed.
Content-Type:
application/jsonLegacyKeepAlive
Server → Client. Periodic keep-alive frame sent after `connection_ack` to keep the WebSocket from idling out.
Content-Type:
application/jsonLegacyData
Server → Client. Carries a GraphQL execution result for the operation identified by `id`.
Content-Type:
application/jsonLegacyError
Server → Client. Indicates the operation identified by `id` failed before execution.
Content-Type:
application/jsonLegacyComplete
Server → Client. Indicates the operation identified by `id` has completed.
Content-Type:
application/jsonAbout AsyncAPI
The AsyncAPI specification describes event-driven APIs the way OpenAPI describes request/response APIs. A channel is the named pipe — a webhook URL, a Kafka topic, a WebSocket route, an MQTT subject — that producers and consumers publish or subscribe to. Each channel carries one or more messages with structured payloads, and an operation declares whether a given party sends or receives on that channel.
Browse every event-driven channel on the APIs.io network or compare with the broader Agent Skill and MCP server surfaces of the same providers.