Join us from October 8-10 in New York City to learn the latest tips, trends, and news about GraphQL Federation and API platform engineering.Join us for GraphQL Summit 2024 in NYC
Start for Free

Subscriptions Link

Execute subscriptions (or other operations) over WebSocket with the graphql-ws library

We recommend reading Apollo Link overview before learning about individual links.

The GraphQLWsLink is a terminating link that's used most commonly with subscriptions (which usually communicate over WebSocket), although you can send queries and over WebSocket as well.

GraphQLWsLink requires the graphql-ws library. Install it in your project like so:

npm install graphql-ws

Note: This link works with the newer graphql-ws library. If your server uses the older subscriptions-transport-ws, you should use the WebSocketLink link from @apollo/client/link/ws instead.


import { GraphQLWsLink } from "@apollo/client/link/subscriptions";
import { createClient } from "graphql-ws";
const link = new GraphQLWsLink(
url: "ws://localhost:3000/subscriptions",


The GraphQLWsLink constructor takes a single , which is a Client returned from the graphql-ws createClient function.

The createClient function can take many options, described in the graphql-ws docs for ClientOptions. The one required option is url, which is the URL (typically starting with ws:// or wss://, which are the equivalents of http:// and https:// respectively) to your WebSocket server. (Note that this differs from the older link's URL option, which is named uri instead of url.)


See Subscriptions.

WebSocket (older protocol)
Rate articleRateEdit on GitHubEditForumsDiscord

© 2024 Apollo Graph Inc., d/b/a Apollo GraphQL.

Privacy Policy