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 | |
| '@defer'ExperimentalRFC2 | 5.0.0-alpha.3 | |
| '@stream'ExperimentalRFC2 | 5.0.0-alpha.3 | |
| Directives on directivesExperimentalRFC2 | 5.0.0-alpha.4 | pr, experimental, behind the |
| 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 | |
| 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 | - |