Bind GraphQL data to your UI with one function call.

Apollo Client is the ultra-flexible, community-driven GraphQL client for React, JavaScript, and native platforms.
Apollo Client works with every frontend platform:

Build UI components without plumbing data.

Specify the data you want with a GraphQL query and Apollo Client gets it for you automatically. Then, add on advanced data management features like pagination, subscriptions, prefetching, and more when you need them.


export default graphql(gql`{
  feed(type: TOP, limit: 10) {
    repository {
      owner { login }
    postedBy { login }
}`)(props => (
    { => (
          item.repository.owner.login +
        subtitle={`Posted by ${item.postedBy.login}`}


export default graphql(gql`
  mutation submitRepository($repoFullName: String!) {
    submitRepository(repoFullName: $repoFullName) {
`)(props => (
    onClick={() => {
      // Mutate function passed via props
        variables: {
          repoFullName: "apollographql/apollo-client"
    Click me

Advanced data loading

Queries, caching, mutations, optimistic UI, subscriptions, pagination, server-side rendering, prefetching, and more.

Built for modern React apps

Compatible out of the box with Redux, React Router, Recompose, Expo, Next.js, and everything else in the React ecosystem.


Used today in critical production apps by KLM, The New York Times, OpenTable, Ticketmaster, Coursera, Khan Academy, and others.


Over 700 contributors and counting. Built by the community, for the community.

Tooling and server friendly

Apollo Chrome devtools, static query analysis, code generation, and autocompletion.

Incrementally adoptable

The only GraphQL client that works with any client-side architecture and every GraphQL server. It adapts to fit your needs.

Native iOS and Android

Apollo Client is also available in fully native iOS and Android versions. They generate Swift or Java code from your GraphQL queries so you can use a typesafe API to integrate GraphQL data into your views.
Just change a query and recompile your project, and Apollo codegen rebuilds your data model.
Read and unmarshal responses from the network without any reflection or type casting.
Use your platform's native type checking to validate that your queries and views work together.
Declaratively load, use, cache, and update data without having to write lots of management code.

Next-generation frontend data tools.

Apollo Client comes with a whole ecosystem of tools that integrate with your workflow to make data management a breeze. Here are some that you should check out first:

Apollo Client Devtools

Run queries in GraphiQL, look at active queries and mutations, and inspect the state of your cache, right from the Chrome developer console.

Learn more


Stop data integration errors before they happen by validating queries against your schema right in your editor.

Learn more


Generate Flow or TypeScript types from your GraphQL queries and ensure the data you're fetching matches your UI code.

Learn more