This SDK targets the Apple Maps Server API — a REST HTTP API for backend services. It does not support Android (which lacks
java.net.http.HttpClient), Kotlin Multiplatform, or iOS. See the compatibility notes below.Apple Maps ecosystem
Apple provides three distinct Maps integrations. Apple Maps Java wraps the Server API (#1).| Service | Type | Best for |
|---|---|---|
| Apple Maps Server API | REST HTTP API | Backend services (Java, Kotlin, Python, etc.) that need geocoding, search, directions, or ETA data without a UI. |
| MapKit | Native UI framework | iOS and macOS apps that need interactive maps. |
| MapKit JS | JavaScript UI library | Web apps that need interactive maps in the browser. |
Key features
Geocoding & reverse geocoding
Convert street addresses to coordinates and structured address data, or convert coordinates back to addresses.
Place search & autocomplete
Search for businesses and points of interest. Use autocomplete for typeahead UX, then resolve results in parallel with
resolveCompletionUrls.Directions & ETA
Request turn-by-turn routes between coordinates, or get travel time estimates for one origin and multiple destinations.
Place lookups
Look up a place by its Apple Maps place identifier, batch-lookup multiple places, or resolve alternate IDs.
Automatic token management
Provide your long-lived JWT once. The SDK exchanges it for short-lived access tokens and refreshes them transparently.
Zero framework dependencies
Uses only
java.net.http.HttpClient and Jackson. Works with Spring Boot, Quarkus, plain Java, or any JVM framework.Supported API operations
The SDK provides typed wrappers for the following Apple Maps Server API operations:- Geocoding:
geocode,reverseGeocode - Search:
search - Autocomplete:
autocomplete,resolveCompletionUrl,resolveCompletionUrls - Directions & ETA:
directions,etas - Places:
lookupPlace,lookupPlaces,lookupAlternateIds
Compatibility
| Runtime | Supported |
|---|---|
| Java 17+ (server / JVM) | Yes — Spring Boot, Quarkus, plain Java, and any compatible JDK |
| Kotlin/JVM | Yes — works like any other Maven/Gradle dependency |
| Android | No — Android does not include java.net.http.HttpClient |
| Kotlin Multiplatform / iOS | No — Kotlin/Native cannot consume JVM bytecode artifacts |
Requirements
- Java 17 or later
- An Apple Developer Program membership ($99/year) — required to create a Maps Identifier and private key
- A long-lived Apple Maps authorization token (JWT) — see Authorization
Next step
Quickstart
Get your first geocode result in under 5 minutes.