positionstack
Forward and Reverse Batch Geocoding REST API by positionstack (an apilayer product, owned by Idera, Inc.). Convert addresses to coordinates and coordinates to addresses across 2+ billion global places, with optional data modules for country, timezone, sun, and bounding-box enrichment.
1 APIs
13 Features
GeocodingReverse GeocodingMapsLocationAddress ValidationapilayerPublic APIs
Forward Geocoding
Convert addresses, place names, and postal codes into geographic coordinates.
Reverse Geocoding
Convert latitude/longitude coordinates into structured address data.
Batch Geocoding
Run up to 80 forward or reverse lookups per request (Professional plan and above).
Multiple Output Formats
Responses available in JSON, XML, and GeoJSON.
Embeddable Maps
Each result includes a `map_url` that can be embedded via iFrame.
Multi-Language Results
Localize results in multiple languages via the `language` parameter.
Country Module
Optional enrichment adding ISO codes, currency, languages, flag, dial code, and area.
Timezone Module
Optional enrichment with IANA timezone, GMT offset, abbreviation, and DST status.
Sun Module
Optional enrichment with sunrise, sunset, and solar transit times.
BBox Module
Optional enrichment with bounding box coordinates per result.
2+ Billion Places
Global coverage across 2+ billion addresses and places.
99.9% Uptime
Average reported availability across forward, reverse, and batch endpoints.
Overage Notifications
Email and dashboard alerts at 75%, 90%, and 100% of monthly quota.
Address Autocomplete
Power address autocomplete and validation in signup or checkout flows.
Fleet & Asset Tracking
Resolve GPS coordinates from vehicles, IoT devices, or pet trackers into addresses.
Store Locator
Geocode user-entered addresses to find nearest stores or service centers.
Logistics & Delivery
Cleanse and standardize delivery addresses across bulk shipment manifests.
Real Estate Listings
Map property listings by geocoding street addresses.
Market Analysis
Enrich CRM records with geographic, country, and timezone data.
Weather & Local Services
Pair coordinates with weather APIs (e.g. weatherstack) for hyper-local services.
weatherstack
Sibling apilayer API providing weather data for resolved coordinates.
ipstack
Sibling apilayer API offering IP geolocation that pairs with positionstack lookups.
streetlayer
Sibling apilayer API for address verification and autocomplete.
Mapbox / Leaflet / OpenStreetMap
Display positionstack results on third-party map libraries via the embeddable `map_url`.
Power BI / Tableau / Excel
Bulk-enrich spreadsheet data with coordinates via the batch endpoint.
Free / Hobbyist
100 requests/month, personal use, JSON output, no HTTPS.
Basic
100k req/mo, $9.99/mo, HTTPS, multi-format, commercial license.
Professional
1M req/mo, $49.99/mo, batch endpoint enabled.
Business
3M req/mo, $99.99/mo.
Enterprise / Platinum
Custom volume + SLA + dedicated account team.
opencollection: 1.0.0
info:
name: positionstack
version: 1.0.0
request:
auth:
type: apikey
key: access_key
value: '{{access_key}}'
placement: query
items:
- info:
name: Forward Geocoding
type: folder
items:
- info:
name: Forward Geocode an Address
type: http
http:
method: GET
url: https://api.positionstack.com/v1/forward
params:
- name: access_key
value: ''
type: query
description: Your positionstack API access key.
- name: query
value: 1600 Pennsylvania Ave NW, Washington DC
type: query
description: 'The address, place name, or location string to geocode. To run a batch
request, pass multiple comma-separated queries (Professional plan and above).
'
- name: country
value: US,CA
type: query
description: 'Filter results to one or more ISO 3166 alpha-2 country codes (comma separated).
'
- name: region
value: California
type: query
description: Filter results by region or state name.
- name: bbox
value: -74.2591,40.4774,-73.7004,40.9176
type: query
description: 'Bounding box filter as `min_lon,min_lat,max_lon,max_lat` to restrict the
geographic area of the search.
'
- name: limit
value: ''
type: query
description: Maximum number of results returned. Defaults to 10, maximum 80.
- name: language
value: en
type: query
description: Two-letter ISO 639-1 language code for localized results.
- name: fields
value: ''
type: query
description: 'Comma-separated whitelist of fields to include in the response (e.g. `results.latitude,results.longitude`).
Defaults to all fields.
'
- name: output
value: ''
type: query
description: Response output format.
- name: callback
value: ''
type: query
description: JSONP callback function name (JSON output only).
- name: country_module
value: ''
type: query
description: 'Set to `1` to enrich results with country-level data such as ISO codes,
capital, population, currency, language, flag URLs, and dial code.
'
- name: sun_module
value: ''
type: query
description: 'Set to `1` to enrich results with sunrise, sunset, and solar transit times
for the location.
'
- name: timezone_module
value: ''
type: query
description: 'Set to `1` to enrich results with timezone name, abbreviation, GMT offset,
and DST status.
'
- name: bbox_module
value: ''
type: query
description: 'Set to `1` to include the bounding box coordinates of each returned result.
'
docs: 'Convert one or more location strings (street, city, place name, postal code)
into geographic coordinates and structured address data. Supply one or more
comma-separated queries to perform a batch request (Professional plan and above).
'
- info:
name: Reverse Geocoding
type: folder
items:
- info:
name: Reverse Geocode Coordinates
type: http
http:
method: GET
url: https://api.positionstack.com/v1/reverse
params:
- name: access_key
value: ''
type: query
description: Your positionstack API access key.
- name: query
value: 40.7638435,-73.9729691
type: query
description: 'Latitude and longitude coordinate pair as a comma-separated string
("LAT,LON"). For batch reverse lookups, separate multiple pairs with
a semicolon (Professional plan and above).
'
- name: country
value: US,CA
type: query
description: 'Filter results to one or more ISO 3166 alpha-2 country codes (comma separated).
'
- name: region
value: California
type: query
description: Filter results by region or state name.
- name: limit
value: ''
type: query
description: Maximum number of results returned. Defaults to 10, maximum 80.
- name: language
value: en
type: query
description: Two-letter ISO 639-1 language code for localized results.
- name: fields
value: ''
type: query
description: 'Comma-separated whitelist of fields to include in the response (e.g. `results.latitude,results.longitude`).
Defaults to all fields.
'
- name: output
value: ''
type: query
description: Response output format.
- name: callback
value: ''
type: query
description: JSONP callback function name (JSON output only).
- name: country_module
value: ''
type: query
description: 'Set to `1` to enrich results with country-level data such as ISO codes,
capital, population, currency, language, flag URLs, and dial code.
'
- name: sun_module
value: ''
type: query
description: 'Set to `1` to enrich results with sunrise, sunset, and solar transit times
for the location.
'
- name: timezone_module
value: ''
type: query
description: 'Set to `1` to enrich results with timezone name, abbreviation, GMT offset,
and DST status.
'
- name: bbox_module
value: ''
type: query
description: 'Set to `1` to include the bounding box coordinates of each returned result.
'
docs: 'Convert one or more latitude/longitude coordinate pairs into structured
address data. Supply one or more semicolon-separated coordinate pairs
(or comma-separated batched queries) to perform a batch request
(Professional plan and above).
'
bundled: true