GraphQL Cheat Sheet

Last Updated: November 21, 2025

Schema Definition

type User {
  id: ID!
  name: String!
  email: String
  posts: [Post!]!
}

type Post {
  id: ID!
  title: String!
  content: String
  author: User!
}

type Query {
  user(id: ID!): User
  users: [User!]!
  post(id: ID!): Post
}

type Mutation {
  createUser(name: String!, email: String): User!
  updateUser(id: ID!, name: String): User
  deleteUser(id: ID!): Boolean
}

Queries

# Basic query
query {
  user(id: "1") {
    name
    email
  }
}

# Query with variables
query GetUser($id: ID!) {
  user(id: $id) {
    name
    email
    posts {
      title
    }
  }
}

# Nested query
query {
  users {
    name
    posts {
      title
      comments {
        text
      }
    }
  }
}

# Aliases
query {
  user1: user(id: "1") { name }
  user2: user(id: "2") { name }
}

Mutations

# Create
mutation {
  createUser(name: "John", email: "john@example.com") {
    id
    name
  }
}

# Update
mutation UpdateUser($id: ID!, $name: String!) {
  updateUser(id: $id, name: $name) {
    id
    name
  }
}

# Delete
mutation {
  deleteUser(id: "1")
}

Fragments

fragment UserFields on User {
  id
  name
  email
}

query {
  user(id: "1") {
    ...UserFields
    posts {
      title
    }
  }
}
💡 Pro Tip: Use fragments to reuse common field selections across queries!
← Back to Databases & APIs | Browse all categories | View all cheat sheets