Photon Geocoder Scraper
Pricing
from $3.00 / 1,000 results
Photon Geocoder Scraper
Resolve any place name or address into precise coordinates with Photon by komoot on OpenStreetMap, and reverse lookup coordinates into the nearest place. Returns latitude, longitude, street, postcode, city, country, and a map link. Handy for logistics, lead enrichment, and mapping apps.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share

🌍 Photon Geocoder Scraper
🚀 Turn place names into coordinates and coordinates into addresses in one run. Powered by Photon by komoot on top of OpenStreetMap, with no API key required.
🕒 Last updated: 2026-06-04 · 📊 25 fields per record · Global coverage · Forward and reverse geocoding
Photon Geocoder Scraper takes any text query such as "Brandenburg Gate, Berlin" and returns ranked matching locations with latitude, longitude, full address parts, OSM identifiers, and a ready map link. It also works in reverse, turning a latitude and longitude pair into the nearest named place or address.
Coverage is worldwide because Photon indexes the global OpenStreetMap dataset. You can geocode landmarks, streets, house numbers, cities, regions, and countries, and read back structured fields like postcode, district, county, state, country, and country code whenever the underlying OSM object provides them.
| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Data engineers and analysts | Enrich address lists with coordinates |
| Logistics and delivery teams | Validate and standardize delivery points |
| Travel and mapping builders | Power search boxes and place autocomplete |
| Marketers and sales ops | Geocode leads for territory planning |
| Researchers and journalists | Map locations from open data |
📋 What the Photon Geocoder Scraper does
- Forward geocoding: text query to one or more matching locations with coordinates.
- Reverse geocoding: a latitude and longitude pair to the nearest place or address.
- Returns clean structured address parts: name, street, house number, postcode, locality, district, city, county, state, country, and country code.
- Adds a composed
displayName, an OpenStreetMapmapUrl, the bounding boxextent, and the raw OSM identifiersosmIdandosmType. - Auto-detects mode from your input, so you never pick a mode manually.
- Language preference for result names where translations exist.
🎬 Full Demo (🚧 Coming soon)
⚙️ Input
| Field | Key | Type | Description |
|---|---|---|---|
| Search Query | query | string | Place name or address for forward geocoding. |
| Result Language | language | string | Preferred name language. One of en, de, fr, it, es. |
| Latitude | latitude | string | Latitude for reverse geocoding. |
| Longitude | longitude | string | Longitude for reverse geocoding. |
| Max Items | maxItems | integer | Maximum locations returned. Free plan caps at 10. |
Forward geocoding example:
{"query": "Brandenburg Gate, Berlin","language": "en","maxItems": 10}
Reverse geocoding example:
{"latitude": "52.5162699","longitude": "13.3777034","language": "en","maxItems": 5}
⚠️ Good to Know: Provide a Search Query for forward mode, or both Latitude and Longitude for reverse mode. If a query and coordinates are both present, forward geocoding takes priority. Address parts such as house number, postcode, or state appear only when the matched OpenStreetMap object actually carries them, so a city result will not include a house number while a building result will.
📊 Output
Each record includes the following fields.
| Field | Key | Description |
|---|---|---|
| 🧭 Query Mode | queryMode | "forward" or "reverse". |
| 🔎 Query | query | The query or coordinate pair you sent. |
| 📍 Display Name | displayName | Readable composed address line. |
| 🏷 Name | name | Primary place or feature name. |
| 🧭 Latitude | latitude | Latitude of the location. |
| 🧭 Longitude | longitude | Longitude of the location. |
| 🗂 Category | category | OSM key, for example place or tourism. |
| 🗂 Category Detail | categoryDetail | OSM value, for example city or attraction. |
| 🏷 Type | type | Photon result type, for example house or city. |
| 🏠 House Number | houseNumber | Street number when available. |
| 🛣 Street | street | Street name when available. |
| ✉️ Postcode | postcode | Postal code when available. |
| 🏘 Locality | locality | Locality or neighborhood when available. |
| 🗺 District | district | District when available. |
| 🏙 City | city | City when available. |
| 🗺 County | county | County when available. |
| 🗺 State | state | State or region when available. |
| 🌍 Country | country | Country name when available. |
| 🌐 Country Code | countryCode | Two letter country code when available. |
| 🆔 OSM ID | osmId | OpenStreetMap object identifier. |
| 🔠 OSM Type | osmType | OpenStreetMap object type, N, W, or R. |
| 📐 Extent | extent | Bounding box as four coordinates when available. |
| 🔗 Map URL | mapUrl | OpenStreetMap link centered on the location. |
| 🕒 Scraped At | scrapedAt | Timestamp of the run. |
| ❌ Error | error | Null on success, a message on failure. |
Real sample records from a live run:
{"queryMode": "forward","query": "Pariser Platz 1, Berlin","displayName": "Brandenburg Gate Pariser Platz 1, 10117, Berlin, Mitte, Germany","name": "Brandenburg Gate","latitude": 52.5162699,"longitude": 13.3777034,"category": "tourism","categoryDetail": "attraction","type": "house","houseNumber": "1","street": "Pariser Platz","postcode": "10117","locality": "Friedrich-Wilhelm-Stadt","district": "Mitte","city": "Berlin","county": null,"state": null,"country": "Germany","countryCode": "DE","osmId": 518071791,"osmType": "W","extent": [13.3775798, 52.5164328, 13.3778251, 52.516117],"mapUrl": "https://www.openstreetmap.org/?mlat=52.5162699&mlon=13.3777034#map=17/52.5162699/13.3777034","scrapedAt": "2026-06-04T19:34:49.669Z","error": null}
{"queryMode": "forward","query": "Berlin","displayName": "Berlin, Germany","name": "Berlin","latitude": 52.5173885,"longitude": 13.3951309,"category": "place","categoryDetail": "city","type": "city","houseNumber": null,"street": null,"postcode": null,"locality": null,"district": null,"city": null,"county": null,"state": null,"country": "Germany","countryCode": "DE","osmId": 62422,"osmType": "R","extent": [13.088345, 52.6755087, 13.7611609, 52.3382448],"mapUrl": "https://www.openstreetmap.org/?mlat=52.5173885&mlon=13.3951309#map=17/52.5173885/13.3951309","scrapedAt": "2026-06-04T19:34:21.967Z","error": null}
{"queryMode": "forward","query": "Berlin","displayName": "Berlin, 03570, New Hampshire, United States","name": "Berlin","latitude": 44.4696602,"longitude": -71.1810703,"category": "place","categoryDetail": "city","type": "city","houseNumber": null,"street": null,"postcode": "03570","locality": null,"district": null,"city": null,"county": "Coos","state": "New Hampshire","country": "United States","countryCode": "US","osmId": 170184,"osmType": "R","extent": [-71.397858, 44.528436, -71.123642, 44.445057],"mapUrl": "https://www.openstreetmap.org/?mlat=44.4696602&mlon=-71.1810703#map=17/44.4696602/-71.1810703","scrapedAt": "2026-06-04T19:34:22.050Z","error": null}
✨ Why choose this Actor
- No API key and no account on the source side. Photon is open and keyless.
- Two modes in one tool. Forward and reverse are auto-detected from your input.
- Global reach from the OpenStreetMap dataset, from landmarks to whole countries.
- Clean and predictable records with a composed display name and a map link.
- Honest fields. Address parts appear only when the matched object carries them, never padded with fake values.
📈 How it compares to alternatives
| Approach | Coverage | Key required | Reverse mode | Structured address parts |
|---|---|---|---|---|
| Photon Geocoder Scraper | Global OSM | No | Yes | Yes |
| Paid geocoding APIs | Global | Usually yes | Yes | Yes, with quotas and billing |
| Manual map lookups | Manual | No | Manual | Copy by hand |
| Single endpoint scripts | Varies | Varies | Often forward only | Often raw, unmapped |
🚀 How to use
- Create a free Apify account using this sign-up link.
- Open the Photon Geocoder Scraper in Apify Console.
- Enter a Search Query for forward geocoding, or a Latitude and Longitude pair for reverse geocoding.
- Set Max Items and an optional result language, then click Start.
- Watch the run finish and browse or connect the results to your own systems.
💼 Business use cases
Logistics and delivery
| Need | How this helps |
|---|---|
| Standardize delivery points | Convert customer addresses to precise coordinates. |
| Validate new stops | Confirm a place exists and read back its parts. |
Sales and marketing operations
| Need | How this helps |
|---|---|
| Territory planning | Geocode leads to assign regions by state or county. |
| List enrichment | Add coordinates and country codes to contact lists. |
Product and engineering
| Need | How this helps |
|---|---|
| Search and autocomplete | Back a place search box with ranked matches. |
| Map features | Pin results using the included map link and extent. |
Research and analytics
| Need | How this helps |
|---|---|
| Spatial datasets | Build location tables from open address text. |
| Reverse lookups | Label scattered coordinate samples with place names. |
🔌 Automating Photon Geocoder Scraper
Connect runs to the tools you already use:
- Make and Zapier to trigger geocoding from new rows or form entries.
- Slack to post a summary when a batch finishes.
- Airbyte to sync results into a warehouse.
- GitHub Actions to schedule recurring enrichment jobs.
- Google Drive to archive result snapshots for your team.
🌟 Beyond business use cases
- Research: map study sites and survey points from text descriptions.
- Personal: plan trips by resolving landmark names into map pins.
- Non-profit: geocode service locations for community resource maps.
- Experimentation: prototype geocoding features without paid quotas.
🤖 Ask an AI assistant
Paste a result into your assistant of choice and ask for the next step:
Example prompt: "Here is a geocoding result with latitude, longitude, and address parts. Group these places by country and country code and summarize the coverage."
❓ Frequently Asked Questions
Do I need an API key for Photon? No. Photon by komoot is keyless and open, so you only need your Apify account.
What is the difference between forward and reverse geocoding? Forward turns a place name or address into coordinates. Reverse turns a coordinate pair into the nearest named place or address.
How do I choose the mode? You do not. The mode is auto-detected. A Search Query runs forward, a Latitude and Longitude pair runs reverse.
What happens if I send both a query and coordinates? Forward geocoding takes priority and the coordinates are ignored for that run.
Why are some address fields empty? Address parts like house number, postcode, or state appear only when the matched OpenStreetMap object actually carries them. A country or city result will not include a house number.
How many results can I get per query? Up to your Max Items value. Free plans are capped at 10 results per run.
Which languages are supported for names? English, German, French, Italian, and Spanish where the underlying data provides translated names.
Is the data accurate and current? Results come from OpenStreetMap through Photon, so accuracy reflects community OSM data, which is broad and frequently updated.
Can I geocode many addresses at once? Each run resolves a single query. Use an automation platform to loop over a list and trigger one run per address.
What is the map link for?
The mapUrl opens OpenStreetMap centered on the location, which is handy for quick visual checks.
What does the extent field mean? It is the bounding box of the feature as four coordinates, useful for zooming a map to fit the place.
Is this affiliated with komoot or OpenStreetMap? No. This is an independent tool that queries the public Photon service. See the disclaimer below.
🔌 Integrate with any app
Results are available through the Apify API and webhooks, so you can pull records into spreadsheets, databases, dashboards, or any service that speaks HTTP.
🔗 Recommended Actors
- Nominatim OSM Scraper for an alternative OpenStreetMap geocoding source.
- US Census Geocoder Scraper for United States address matching.
- GeoNames Places Scraper for place name and administrative data.
- Overpass OSM POI Scraper for points of interest from OpenStreetMap.
- Address Normalizer to clean and standardize raw address text.
💡 Pro Tip: browse the complete ParseForge collection.
🆘 Need Help? Open our contact form
⚠️ Disclaimer: independent tool, not affiliated with komoot, Photon, or OpenStreetMap. Only publicly available data is collected.