Migrate to Netlify Today

Netlify announces the next evolution of Gatsby Cloud. Learn more

ContactSign Up
Community Plugin
View plugin on GitHub


version badge license badge

Gatsby source plugin that exposes multiple GraphQL endpoints as a single merged schema. This plugin is based on the gatsby-source-graphql plugin.


npm install --save @xebiastudio/gatsby-source-graphql-multiple


To use this plugin, add the following to your Gatsby configuration:

// gatsby-config.js
exports.plugins = [
    resolve: `@xebiastudio/gatsby-source-graphql-multiple`,
    options: {
      typeName: `MyCombinedSource`,
      fieldName: `myCombinedSource`,
      // The paramName will create a query parameter on myCombinedSource that determines which source to use
      // As an example, let's imagine that each source contains content in a specific language
      paramName: `language`,
      sources: [
          key: `en`,
          url: `example.com/en/graphql`
          key: `fr`,
          url: `example.com/fr/graphql`

This will allow you to query content in the following way:

query GetContent($language: String!) {
  myCombinedSource(language: $language) {
    # This part of the query is delegated to the source with key === $language
    pages {
      nodes {

Example use cases

This plugin works well when you have more than one GraphQL source with the same schema, such as:

  • When using WPGraphQL on a WordPress site that is using the MultiSite plugin
  • When using multiple Contentful spaces with the same content model (when using space-level localization as mentioned here)


Publishing a new version

To publish a new version, run

npm version major|minor|patch

This will automatically update the version in the package.json, commit the change and tag it. Push your changes:

git push && git push --tags

Whenever a new tag is created, Github Actions will automatically publish the new version to the Package Registry.

© 2023 Gatsby, Inc.