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

Directives on directivesdraft 5.0.0-alpha.4

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

'@defer'ExperimentalRFC2 5.0.0-alpha.3

pr, doc

'@stream'ExperimentalRFC2 5.0.0-alpha.3

pr, doc

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
Covariant fields mergingExperimental -
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 -