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
Directives on Variable DefinitionsOct 2021
Interfaces on InterfacesOct 2021
Repeatable DirectivesOct 2021
@specifiedByOct 2021
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.

@oneOfSep 2025 4.0.0
'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.

Empty selection setsdraft main

pr

GraphQL over HTTPdraft 4.1.0

Apollo Kotlin pull request

'@defer'ExperimentalRFC2 5.0.0-alpha.3

pr, doc

Fragment ArgumentsExperimentalRFC2 5.0.0-alpha.5

pr, experimental and not documented yet.

'@stream'ExperimentalRFC2 5.0.0-alpha.3

pr, doc

Deprecated objectsExperimentalRFC1 -
Empty abstract typesExperimentalRFC1 main

pr, empty interfaces only (not verified for unions).

Empty objectsExperimentalRFC1 main

pr

'onError' request parameterExperimentalRFC1 5.0.0-alpha.5

pr, experimental and not documented yet.

Service capabilitiesExperimentalRFC1 5.0.0-alpha.5

pr, experimental and not documented yet.

Field extensionsExperimentalGAP 5.0.0-alpha.5

pr, experimental and not documented yet.

@semanticNonNullExperimentalGAP 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.

HTTP QUERY methodExperimental 5.2.0

pr

Persisted DocumentsExperimental

The protocol for persisted documents is still TBD

Semantic IntrospectionExperimental -