This is the documentation for the old GraphQL Yoga version 2. We recommend upgrading to the latest GraphQL Yoga version 4.

Get started with GraphQL Yoga v4

Integration with Koa

Koa (opens in a new tab) is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs. GraphQL Yoga can be integrated easily as a route to the existing Koa application with a few lines of code. So you can benefit from middlewares written for Koa with GraphQL Yoga. (opens in a new tab)


yarn add @graphql-yoga/node koa graphql


import Koa from 'koa'
import { createServer } from '@graphql-yoga/node'
const app = new Koa()
const graphQLServer = createServer<Koa.ParameterizedContext>()
// Bind GraphQL Yoga to `/graphql` endpoint
app.use(async (ctx) => {
  // Second parameter adds Koa's context into GraphQL Context
  const response = await graphQLServer.handleIncomingMessage(ctx.req, ctx)
  // Set status code
  ctx.status = response.status
  // Set headers
  response.headers.forEach((value, key) => {
    ctx.append(key, value)
  // Converts ReadableStream to a NodeJS Stream
  ctx.body = response.body
app.listen(4000, () => {
  console.log('Running a GraphQL API server at http://localhost:4000')

You can also check a full example on our GitHub repository here (opens in a new tab).