Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

graphql-api-koa logo


GraphQL execution and error handling middleware written from scratch for Koa.


To install graphql-api-koa and its graphql peer dependency with npm, run:

npm install graphql-api-koa graphql

Setup the Koa middleware in this order:

  1. errorHandler, to catch errors from following middleware for a correctly formatted GraphQL response.
  2. A GraphQL multipart request processor like graphqlUploadKoa from graphql-upload, to support file uploads (optional).
  3. A request body parser like koa-bodyparser.
  4. execute, to execute GraphQL.

See the execute middleware examples to get started.


Supported runtime environments:

  • Node.js versions ^14.17.0 || ^16.0.0 || >= 18.0.0.

Projects must configure TypeScript to use types from the ECMAScript modules that have a // @ts-check comment:


The npm package graphql-api-koa features optimal JavaScript module design. It doesn’t have a main index module, so use deep imports from the ECMAScript modules that are exported via the package.json field exports: