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`.

Provider: Hasura AsyncAPI: v2.6.0 Spec: Hasura GraphQL Subscriptions over WebSocket Operations: 2 Messages: 21

Channel address

/v1/graphql

Operations

publish
clientMessages
Messages published by the client to Hasura.
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/json
Subscribe
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/json
PingClient
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/json
PongClient
Client → Server. Response to a `ping`. May also be sent unsolicited as a unidirectional heartbeat.
Content-Type: application/json
CompleteClient
Client → Server. Signals that the client wishes to stop the operation identified by `id`. Used to unsubscribe.
Content-Type: application/json
LegacyConnectionInit
Client → Server. First legacy-protocol message. The payload carries `connectionParams` (auth headers / session variables).
Content-Type: application/json
LegacyStart
Client → Server. Starts a GraphQL operation identified by a unique `id`.
Content-Type: application/json
LegacyStop
Client → Server. Stops the running operation identified by `id` (unsubscribe).
Content-Type: application/json
LegacyConnectionTerminate
Client → Server. Asks Hasura to close the connection.
Content-Type: application/json
ConnectionAck
Server → Client. Sent after Hasura accepts the connection and the auth handshake completes.
Content-Type: application/json
PingServer
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/json
PongServer
Server → Client. Response to a `ping`. May also be sent unsolicited as a unidirectional heartbeat.
Content-Type: application/json
Next
Server → Client. Carries a single GraphQL execution result for the operation identified by `id`.
Content-Type: application/json
Error
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/json
CompleteServer
Server → Client. Indicates the operation identified by `id` has completed and no further results will be sent.
Content-Type: application/json
LegacyConnectionAck
Server → Client. Acknowledges a successful connection.
Content-Type: application/json
LegacyConnectionError
Server → Client. Sent when Hasura rejects the connection (auth failure, parsing error, etc.). The connection will be closed.
Content-Type: application/json
LegacyKeepAlive
Server → Client. Periodic keep-alive frame sent after `connection_ack` to keep the WebSocket from idling out.
Content-Type: application/json
LegacyData
Server → Client. Carries a GraphQL execution result for the operation identified by `id`.
Content-Type: application/json
LegacyError
Server → Client. Indicates the operation identified by `id` failed before execution.
Content-Type: application/json
LegacyComplete
Server → Client. Indicates the operation identified by `id` has completed.
Content-Type: application/json

About 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 Naftiko capability, Agent Skill, and MCP server surfaces of the same providers.