Skip to main content

Overview

Apple provides a free daily quota of service calls included with an Apple Developer Program membership. The quota is shared between MapKit JS web API calls and Apple Maps Server API calls — any request from either service counts against the same daily allowance.
Apple’s included quota is currently significantly more generous than comparable limits from other mapping providers. The exact daily limit is not publicly documented by Apple and may vary by membership type.

Apple Developer Program membership

Access to the Apple Maps Server API requires a paid Apple Developer Program membership, which costs $99/year. This membership grants access to all Apple developer ecosystem resources, not just the Maps API. You create your Maps Identifier and private key in the Maps developer dashboard, which is accessible to Apple Developer Program members.

Quota exhaustion

When you exceed your daily quota, Apple returns:
HTTP 429 Too Many Requests
The SDK wraps this in an AppleMapsApiException with statusCode() equal to 429:
try {
    SearchResponse response = api.search(SearchInput.builder("coffee").build());
} catch (AppleMapsApiException e) {
    if (e.statusCode() == 429) {
        // Daily quota exceeded — requests will resume the next day
        System.err.println("Quota exceeded: " + e.getMessage());
    }
}
There is no self-serve mechanism to purchase additional quota or raise the limit. To request a higher quota, contact Apple through the Maps developer dashboard.

Per-operation quota impact

Each SDK method that makes a network request counts as one or more service calls against your quota:
SDK methodCalls per invocation
geocode1
reverseGeocode1
search1
autocomplete1
resolveCompletionUrl1
resolveCompletionUrls(SearchAutocompleteResponse)1 per AutocompleteResult in the response
resolveCompletionUrls(List<AutocompleteResult>)1 per element in the list
directions1
etas1
lookupPlace1
lookupPlaces1
lookupAlternateIds1
resolveCompletionUrls fires one concurrent HTTP request per autocomplete suggestion. If your autocomplete response contains 10 results and you call resolveCompletionUrls, that consumes 10 service calls against your quota. Consider resolving only the suggestions the user actually selects rather than resolving all of them eagerly.

Token refresh

The SDK automatically exchanges your long-lived authorization token (JWT) for short-lived access tokens and refreshes them before they expire. Token exchange calls do not count against your Maps service-call quota.

Quota resets

Apple’s quota resets daily. The reset time is not publicly documented. If you hit a 429, wait until the following day and your quota will be restored automatically. For sustained high-volume usage beyond the included free quota, contact Apple via the Maps developer dashboard.