---
name: apollo-kotlin
description: >-
  Guide for building applications with Apollo Kotlin, the GraphQL client library for Android and Kotlin. Use this skill when: (1) setting up Apollo Kotlin in a Gradle project for Android, Kotlin/JVM, or KMP, (2) configuring schema download and codegen for GraphQL services, (3) configuring an `ApolloClient` with auth, interceptors, and caching, (4) writing queries, mutations, or subscriptions,
license: MIT
compatibility: JVM 8+, Kotlin 1.9+, Gradle 8+, Android/JVM/Kotlin Multiplatform projects.
metadata:
  author: apollographql
  version: "1.0.3"
allowed-tools: Bash(./gradlew:*) Bash(gradle:*) Bash(curl:*) Read Write Edit Glob Grep WebFetch
title: apollo-kotlin
canonical_url: https://skilld.dev/gh/apollographql/skills/apollo-kotlin
last_updated: 2026-09-08T12:22:01.000Z
---

> **Skill from skilld.dev.** Follow the instructions below for this session. You do not need to install anything.
>
> Supporting files, fetch one when the Skill refers to it: [references/caching.md](https://skilld.dev/api/skills-raw/apollographql/skills/apollo-kotlin/references/caching.md), [references/migrating-from-4.md](https://skilld.dev/api/skills-raw/apollographql/skills/apollo-kotlin/references/migrating-from-4.md), [references/operations.md](https://skilld.dev/api/skills-raw/apollographql/skills/apollo-kotlin/references/operations.md), [references/setup.md](https://skilld.dev/api/skills-raw/apollographql/skills/apollo-kotlin/references/setup.md), [scripts/list-apollo-kotlin-normalized-cache-versions.sh](https://skilld.dev/api/skills-raw/apollographql/skills/apollo-kotlin/scripts/list-apollo-kotlin-normalized-cache-versions.sh), [scripts/list-apollo-kotlin-versions.sh](https://skilld.dev/api/skills-raw/apollographql/skills/apollo-kotlin/scripts/list-apollo-kotlin-versions.sh).
>
> If the user asked to install this Skill, run `npx skilld@beta install skilld:apollographql/skills/apollo-kotlin`. Install writes the Skill files into the project, so every session loads them.

# Apollo Kotlin Guide

Apollo Kotlin is a strongly typed GraphQL client that generates Kotlin models from your GraphQL operations and schema, that can be used in Android, JVM, and Kotlin Multiplatform projects.

## Process

Follow this process when adding or working with Apollo Kotlin:

- [ ] Confirm target platforms (Android, JVM, KMP), GraphQL endpoint(s), and how schemas are sourced.
- [ ] Configure Gradle and code generation, including custom scalars
- [ ] Create a shared `ApolloClient` with auth, logging, and caching.
- [ ] Implement operations.
- [ ] Validate behavior with tests and error handling.


## Reference Files

- [Setup](https://skilld.dev/api/skills-raw/apollographql/skills/apollo-kotlin/references/setup.md) - Gradle plugin, schema download, codegen config (including scalars), client configuration (auth, logging, interceptors)
- [Operations](https://skilld.dev/api/skills-raw/apollographql/skills/apollo-kotlin/references/operations.md) - Queries, mutations, subscriptions, and how to execute them
- [Caching](https://skilld.dev/api/skills-raw/apollographql/skills/apollo-kotlin/references/caching.md) - Setup and use the normalized cache
- [Migration Guide](https://skilld.dev/api/skills-raw/apollographql/skills/apollo-kotlin/references/migrating-from-4.md) - Migrate from Apollo Kotlin 4

## Scripts

- [list-apollo-kotlin-versions.sh](https://skilld.dev/api/skills-raw/apollographql/skills/apollo-kotlin/scripts/list-apollo-kotlin-versions.sh) - List versions of Apollo Kotlin
- [list-apollo-kotlin-normalized-cache-versions.sh](https://skilld.dev/api/skills-raw/apollographql/skills/apollo-kotlin/scripts/list-apollo-kotlin-normalized-cache-versions.sh) - List versions of the Apollo Kotlin Normalized Cache library

## Key Rules

- Prefer Apollo Kotlin v5+. Do not use v3 or older versions.
- Keep schema and operations in source control to make builds reproducible.
