Logo
GitHubDiscord

Apollo Kotlin

A strongly-typed, caching GraphQL client for the JVM, Android, and Kotlin multiplatform. Over time, Apollo Kotlin grew into a full Kotlin implementation of the GraphQL spec. This explains why features such as capabilities or direcdtives on directives are implemented

Type: client

Website: https://github.com/apollographql/apollo-kotlin

Features

Feature Supported Since Note
MutationsJul 2015
QueriesJul 2015
SubscriptionsJun 2018
Repeatable DirectivesOct 2021
@specifiedByOct 2021
Directives on Variable DefinitionsOct 2021
Interfaces on InterfacesOct 2021
@oneOfSep 2025 4.0.0
Deprecated input valuesSep 2025
Executable documents descriptionsSep 2025 4.0.0

This has been supported for a long time and there is no feature flag. Apollo Kotlin does not detect this as an error if a document were to include them.

'application/graphql-response+json' media typedraft 4.1.0

Apollo Kotlin pull request

'@defer'ExperimentalRFC2 5.0.0-alpha.3

pr, doc

'@stream'ExperimentalRFC2 5.0.0-alpha.3

pr, doc

Directives on directivesExperimentalRFC2 5.0.0-alpha.4

pr, experimental, behind the allowDirectivesOnDirectives flag, and not documented yet.

Fragment ArgumentsExperimentalRFC2 5.0.0-alpha.5

pr, experimental and not documented yet.

'onError' request parameterExperimentalRFC1 5.0.0-alpha.5

pr, experimental and not documented yet.

Deprecated objectsExperimentalRFC1 -
Service capabilitiesExperimentalRFC1 5.0.0-alpha.5

pr, experimental and not documented yet.

Field extensionsExperimentalRFC0 5.0.0-alpha.5

pr, experimental and not documented yet.

@semanticNonNullExperimental 4.0.0

doc

Automatic Persisted QueriesExperimental
HTTP batchingExperimental 4.0.0

Apollo Kotlin supports operation batching using the Apollo format. Variable batching is not supported.

Persisted DocumentsExperimental

The protocol for persisted documents is still TBD

Semantic IntrospectionExperimental -