Skip to main content
Apple Maps Java is a lightweight, unofficial Java SDK for the Apple Maps Server API. It gives JVM applications typed access to Apple’s geocoding, place search, autocomplete, routing, and ETA endpoints — no UI framework required. The SDK automatically exchanges your long-lived authorization token (JWT) for short-lived access tokens and refreshes them as needed, so you don’t have to manage token rotation yourself.
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).
ServiceTypeBest for
Apple Maps Server APIREST HTTP APIBackend services (Java, Kotlin, Python, etc.) that need geocoding, search, directions, or ETA data without a UI.
MapKitNative UI frameworkiOS and macOS apps that need interactive maps.
MapKit JSJavaScript UI libraryWeb 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

RuntimeSupported
Java 17+ (server / JVM)Yes — Spring Boot, Quarkus, plain Java, and any compatible JDK
Kotlin/JVMYes — works like any other Maven/Gradle dependency
AndroidNo — Android does not include java.net.http.HttpClient
Kotlin Multiplatform / iOSNo — Kotlin/Native cannot consume JVM bytecode artifacts
The library targets Java 17 classfiles, so consuming projects must run on JDK 17 or later (including JDK 21, 25, etc.).

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.