Geocoding API
CSV2GEO provides a REST API with 19 endpoints for geocoding, reverse geocoding, places search, administrative divisions, address autocomplete, and account management.
Try in ChatGPT
No code needed — geocode addresses directly in ChatGPT. Type an address or drop a CSV/Excel file.
Getting Your API Key
- Log in to csv2geo.com
- Go to API Keys in the sidebar
- Click Create API Key
- Copy your key — it starts with
geo_live_
Free tier: 1,000 API requests per day, no credit card required.
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/geocode | Forward geocode a single address |
| POST | /v1/geocode | Batch forward geocode (up to 10,000) |
| GET | /v1/reverse | Reverse geocode a single coordinate |
| POST | /v1/reverse | Batch reverse geocode (up to 10,000) |
| GET | /v1/places | Search 72M+ places by name |
| GET | /v1/places/nearby | Find places near a coordinate |
| GET | /v1/places/categories | List all place categories |
| GET | /v1/places/brands | Search places by brand |
| GET | /v1/places/by-id/{id} | Get place details by ID |
| GET | /v1/divisions | Search administrative boundaries |
| GET | /v1/divisions/contains | Find what division contains a point |
| GET | /v1/divisions/subtypes | List division subtypes |
| GET | /v1/divisions/countries | List countries with division data |
| GET | /v1/divisions/hierarchy/{id} | Get division hierarchy |
| GET | /v1/divisions/{id} | Get division by ID |
| GET | /v1/divisions/stats | Coverage statistics |
| GET | /v1/divisions/random | Random division (testing) |
| GET | /v1/autocomplete | Address autocomplete |
| GET | /v1/me | Account info, plan, and rate limits |
Quick Start
Forward Geocode (Address → Coordinates)
bash
curl "https://csv2geo.com/api/v1/geocode?q=1600+Pennsylvania+Ave,+Washington+DC&country=US&api_key=YOUR_KEY"Reverse Geocode (Coordinates → Address)
bash
curl "https://csv2geo.com/api/v1/reverse?lat=40.7484&lng=-73.9857&api_key=YOUR_KEY"Python SDK
bash
pip install csv2geopython
from csv2geo import Client
client = Client("YOUR_API_KEY")
# Forward geocode
result = client.geocode("1600 Pennsylvania Ave, Washington DC", country="US")
print(f"{result.lat}, {result.lng}")
# Reverse geocode
result = client.reverse(lat=40.7484, lng=-73.9857)
print(result.formatted_address)Node.js SDK
bash
npm install csv2geo-sdkjavascript
const { Client } = require('csv2geo-sdk');
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const result = await client.geocode('1600 Pennsylvania Ave, Washington DC', { country: 'US' });
console.log(result.lat, result.lng);Import API Collections
Test all 39 endpoints instantly in your favorite API tool:
- Postman Collection — Import into Postman, all endpoints pre-configured
- Insomnia Collection — Import into Insomnia with environment
- OpenAPI Spec — Import into Swagger, Hoppscotch, Bruno, or any tool
Full Documentation
- API Documentation — Interactive docs with live testing
- GitHub — Source code, SDKs, and examples
- RapidAPI — Test and subscribe via RapidAPI Hub
Rate Limits
| Tier | Requests/day | Batch Size |
|---|---|---|
| Free | 1,000 | 100 |
| Starter | 50,000 | 1,000 |
| Growth | 250,000 | 5,000 |
| Pro | 1,000,000 | 10,000 |
Check response headers for your current usage:
X-RateLimit-Limit— Maximum requests per minuteX-RateLimit-Remaining— Requests remainingX-RateLimit-Reset— When the window resets