See what's launched

The next gen Gatsby is here Performance, developer velocity, and scaling to meet Enterprise needs - See what’s launched

Sign Up for Free
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: ``
          key: `fr`,
          url: ``

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.

© 2022 Gatsby, Inc.