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

Work with this as data

Every channel here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for event channels

4 MCP tools reach this
  • find_channelsBrowse and filter every channel in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This channel
curl "https://apis.io/api/v1/channels/v1-graphql"
All event channels
curl "https://apis.io/api/v1/channels?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.