---
title: "Connected GraphQL in JSS apps"
slug: "connected-graphql-in-jss-apps"
abstract: "Query GraphQL endpoints asynchronously and use GraphQL mutations and subscriptions."
---
# Connected GraphQL in JSS apps

With Connected GraphQL, a JSS app makes direct HTTP requests to a Sitecore GraphQL endpoint. This mode is identical to using a GraphQL API in any JavaScript application and is not JSS-specific.

We recommend you use a JavaScript GraphQL client, such as the [Apollo GraphQL Client](https://www.apollographql.com/).

We recommend you use connected GraphQL when:

- You want to load data asynchronously after the page layout is rendered, or in response to app state changes other than route change.
- The component has to run mutations (updates) or subscriptions (real-time data).
- You want full control over the lifecycle of your queries and states, such as integration with Redux or the [apollo-link-state](https://github.com/apollographql/apollo-link-state) package.

We recommend you *avoid* using connected GraphQL when:

- The component uses only content template field data. The default layout data output is sufficient without needing additional GraphQL queries.
- The added page weight of a GraphQL client library is undesirable.

> [!note]
> When you set a GraphQL endpoint, the data output of the connected GraphQL component is tied to that source. The output is identical for both editing and normal modes.