Google Maps 2026
SKU Shock & Session Token Calculator
Model the cost difference between un-debounced autocomplete keystrokes ($2.83/1k session) versus Mapbox and Radar geolocation migrations.
Monthly API Usage Volume
Migration Alternative Comparison
Complete Google Maps API Pricing Table
| API / SKU | Price (0–100k req) | Price (100k–500k) | Price (500k+) | Mapbox Equivalent | Savings |
|---|---|---|---|---|---|
| Places Autocomplete (session) | $17.00 / 1k sessions | $14.45 / 1k | $11.90 / 1k | $4.50 / 1k (Search Box) | −74% |
| Places Autocomplete (per-keystroke) | $2.83 / 1k keystrokes | $2.41 / 1k | $1.98 / 1k | $4.50 / 1k session | |
| Geocoding API | $5.00 / 1k requests | $4.00 / 1k | $3.00 / 1k | $0.75 / 1k | −85% |
| Directions API (Basic) | $5.00 / 1k requests | $4.00 / 1k | $3.00 / 1k | $2.00 / 1k | −60% |
| Dynamic Maps (JS API) | $7.00 / 1k loads | $5.60 / 1k | $4.20 / 1k | $2.50 / 1k | −64% |
| Static Maps API | $2.00 / 1k requests | $1.60 / 1k | $1.20 / 1k | $0.00 (free) | −100% |
| Place Details | $17.00 / 1k requests | $13.60 / 1k | $10.20 / 1k | $8.00 / 1k | −53% |
| Distance Matrix | $5.00 / 1k elements | $4.00 / 1k | $3.00 / 1k | $2.00 / 1k | −60% |
Google Maps Session Token Implementation
Session tokens are the single most impactful optimization for Places Autocomplete users. Without session tokens, each HTTP request to the Autocomplete API is billed separately at $2.83/1k and a typical user generates 5–8 keystrokes per address search. Session tokens group all keystrokes into a single billable "session" at a flat $0.017 per session regardless of keystroke count.
Without Session Tokens (Expensive)
With Session Tokens (Optimized)
getDetails(), Google reverts to per-keystroke billing silently. Audit your implementation: check your monthly invoice for unexpected "Autocomplete per keystroke" line items.
Google Maps Pricing Frequently Asked Questions
Did Google Maps remove the $200 free credit?
How much do Google Maps session tokens save?
Is Mapbox cheaper than Google Maps?
What is the Google Maps Geocoding API price per request in 2026?
What is the cheapest way to use Google Maps for high-volume geocoding?
Google Maps Platform Architecture: SKU Splitting & $200 Monthly Credit TCO
Google Maps Platform provides every billing account with a $200 monthly free credit, but its multi-tiered SKU matrix can lead to rapid budget exhaustion. While basic map loads cost $7.00 per 1,000 loads, Places API - Place Details costs $17.00/1k, and Atmosphere Data (reviews, user photos, ratings) charges an additional $5.00/1k. Failing to specify exact field masks in API requests automatically defaults to fetching all atmospheric data fields, tripling per-request SKU charges.
| Maps Platform SKU | Price per 1,000 Requests | Free Credit Volume Limit | Cost per 50,000 Requests | Field Mask Requirement |
|---|---|---|---|---|
| Dynamic Maps (JS SDK) | $7.00 / 1k | 28,571 map loads | $350.00 ($150 after credit) | Standard map container render |
| Place Details (Basic Data only) | $17.00 / 1k | 11,764 requests | $850.00 ($650 after credit) | fields=formatted_address,geometry |
| Place Details (Unmasked All-Data) | $25.00 / 1k (Atmosphere included) | 8,000 requests | $1,250.00 ($1,050 after credit) | Omitted fields param = 3x bill |
Production Pipeline: Session Token Autocomplete & Field-Mask Optimization
Using Autocomplete Session Tokens groups multiple keystroke character lookups into a single billing SKU alongside Place Details:
import { v4 as uuidv4 } from 'uuid';
export class MapsLocationClient {
private sessionToken = uuidv4();
public async getPlaceDetails(placeId: string) {
// CRITICAL: Always include explicit 'fields' parameter to prevent Contact/Atmosphere SKUs
const url = new URL('https://maps.googleapis.com/maps/api/place/details/json');
url.searchParams.append('place_id', placeId);
url.searchParams.append('fields', 'formatted_address,geometry/location,name');
url.searchParams.append('sessiontoken', this.sessionToken);
url.searchParams.append('key', process.env.GOOGLE_MAPS_API_KEY!);
const response = await fetch(url.toString());
const data = await response.json();
// Refresh session token for the next user transaction
this.sessionToken = uuidv4();
return data.result;
}
}
Production Best Practices & Budget Guardrails
- Use Static Maps for Previews: Rendering a static PNG map (`Static Map API` at $2.00/1k) instead of interactive Dynamic Maps ($7.00/1k) on list items cuts rendering costs by 71%.
- Cache Geocoded Lat/Long Coordinates: Google Maps terms of service allow caching geocoded latitude/longitude pairs and place IDs indefinitely for operational purposes. Never re-geocode static warehouse addresses.
- Enforce Daily Quota Hard Caps: In the Google Cloud Console, set strict daily request caps on the Places API to prevent automated malicious scraping bots from running up thousands in overage fees.