canonical: https://jentic.com/apis/gisgraphy.com/gisgraphy

# Gisgraphy webservices

Gisgraphy is an open-source geocoding and geolocation framework that exposes REST webservices for forward and reverse geocoding, address parsing, full-text search, nearby place search, and street lookup. Data comes from OpenStreetMap, GeoNames, and Quattroshapes - over 100 million entries - making it a free alternative to Google Maps and Mapbox. Output formats include JSON, XML, PHP, Python, Ruby, YAML, GeoRSS, and Atom, and optional premium servers accept an api_key for higher quotas.

## For AI agents

Geocode addresses, reverse-geocode coordinates, parse address strings, and search for nearby places using Gisgraphy's open-source webservices.

## Scope

Does not handle turn-by-turn directions, traffic data, or map tile rendering - use for geocoding, reverse geocoding, address parsing, and place search only.

## Capabilities

- Geocode a street address into latitude and longitude via `/geocoding/geocode`
- Reverse-geocode a lat/lng pair into the closest address via `/reversegeocoding/reversegeocode`
- Parse free-form address strings into structured components via `/addressparser/parse`
- Search for places, cities, and points of interest via `/fulltext/search`
- Find features near a coordinate within a radius via `/geoloc/search`
- Resolve street and segment metadata via `/street/find`

## Use cases

### Address Form Autocomplete

Power a checkout or signup form with structured address suggestions backed by OpenStreetMap data. The `/fulltext/search` endpoint returns places matching a partial query, and `/geocoding/geocode` resolves the chosen suggestion into precise coordinates for delivery routing.

Example prompt: Call `/fulltext/search` with q='1600 Pennsylvania' and country=US, then geocode the top suggestion via `/geocoding/geocode`

### Delivery and Logistics Routing

Convert customer-supplied addresses into coordinates for routing and dispatch. `/geocoding/geocode` returns lat/lng plus admin-level breakdown, and `/reversegeocoding/reversegeocode` resolves driver pings back into human-readable street addresses for delivery proof.

Example prompt: Reverse-geocode lat=51.5034 lng=-0.1276 via `/reversegeocoding/reversegeocode` and return the formatted street address

### Local Search for a Mobile App

Show points of interest near a user's location in a mobile app. `/geoloc/search` accepts a lat/lng centre and a radius, returning OpenStreetMap features sorted by distance - restaurants, parks, transit stops - without licensing fees from a commercial maps provider.

Example prompt: Call `/geoloc/search` with lat=40.7128 lng=-74.0060 radius=500 and placetype=Restaurant; return the names of the five closest results

### AI Agent Address Parsing

Let an AI agent normalise free-form address strings collected from email, chat, or scraped data. The agent issues an intent like 'parse a postal address', Jentic resolves the `/addressparser/parse` call, executes it, and returns structured fields the agent can validate or store.

Example prompt: Through Jentic, call `/addressparser/parse` with address='Apt 4B 221 Baker Street London NW1' and return houseNumber, streetName, and city

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/geocoding/geocode` | Forward geocode an address to coordinates |
| GET | `/reversegeocoding/reversegeocode` | Reverse geocode coordinates to an address |
| GET | `/addressparser/parse` | Parse a free-form address string |
| GET | `/fulltext/search` | Full-text search across places and admin areas |
| GET | `/geoloc/search` | Find features within a radius of a coordinate |
| GET | `/street/find` | Look up street segments |

## Key resources

- **Geocoding** — Forward geocoding from address to coordinates
- **Reverse Geocoding** — Reverse geocoding from coordinates to nearest address
- **Address Parser** — Structured parsing of free-form address strings
- **Full-text Search** — Search places, cities, and POIs by name
- **Geoloc Search** — Find features within a radius of a coordinate
- **Street** — Look up street and segment metadata

## Why Jentic

- **Setup:** Wiring Gisgraphy by hand means passing an api_key in the query string for premium servers, choosing between the free and premium hosts, and formatting geocoding parameters yourself. Through Jentic you install once, import Gisgraphy from the API Directory, store the key once for premium use, and your agent calls it.
- **Permission scoping:** Gisgraphy carries its query and coordinates in the request parameters rather than a resource id in the URL path, so scope the agent to the operations it needs, such as geocoding an address or parsing one. You choose the allowed operations, so wider ones like reverse geocoding or place search are only available if you include them.
- **Credential handling:** Your Gisgraphy api_key is stored once, encrypted, by your own Jentic One instance and injected at execution time, while the free server can be called with no credential. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'geocode an address' or 'parse a postal address', and Jentic returns the matching Gisgraphy operation with its query-parameter schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **MapQuest API** — Commercial geocoding, routing, and search built on OSM and proprietary data
- **HERE Maps API** — Enterprise mapping with global address coverage and traffic data
- **LocationIQ API** — Hosted OpenStreetMap-backed geocoding with free and paid tiers
- **Positionstack API** — Forward and reverse geocoding with 25k free monthly requests

## FAQ

### What authentication does the Gisgraphy API use?

The free server at free.gisgraphy.com is open and does not require credentials. Premium servers accept an api_key query parameter for higher quotas. Through Jentic the api_key is stored encrypted in your Jentic One instance and only injected at execution time.

### Can I geocode an address with the Gisgraphy API?

Yes. Call GET `/geocoding/geocode` with address and country to convert a postal address to coordinates. The response includes lat, lng, formatted address, and the matched admin levels (city, state, country) drawn from OpenStreetMap data.

### What are the rate limits for the Gisgraphy API?

The free tier on free.gisgraphy.com is best-effort and may throttle aggressive clients without a fixed published cap. Production deployments should host Gisgraphy themselves or use the premium servers, which are sized to the subscription tier.

### How do I reverse-geocode coordinates through Jentic with Gisgraphy?

Search Jentic for 'reverse geocode coordinates', load the GET `/reversegeocoding/reversegeocode` schema, and execute with lat and lng. The response returns the closest street address along with admin-level fields drawn from the underlying OpenStreetMap dataset.

### What data does Gisgraphy use under the hood?

Gisgraphy ingests OpenStreetMap, GeoNames, and Quattroshapes - more than 100 million entries - into a Solr-backed search index. That makes it suitable for a Google-Maps-free or Mapbox-free deployment when licensing is the dominant constraint.

### Is the Gisgraphy API free?

Yes. Both the framework and the free public server are released under an open-source licence with no usage charge. Paid premium servers exist for users who need higher quotas, an SLA, or commercial support beyond what the open community endpoint provides.

### Can I limit what my agent is allowed to do with the Gisgraphy API?

Yes. Because Jentic One is self-hosted, you decide which Gisgraphy operations your agent may call, so you can allow narrow ones like forward geocoding an address or parsing a postal string while withholding wider ones such as reverse geocoding coordinates or nearby place search. Since Gisgraphy carries its query and coordinates in request parameters rather than a resource id in the URL path, scoping is done at the operation level and an operation is only reachable if you include it. Your own rules also govern the api_key used for premium servers, which stays under your control and is injected only at execution time.
