RESTful API

The Complete Address Database for Dominica

Access every parish, settlement, and street in the Commonwealth of Dominica through a free, open JSON API. No API key required. Built for developers, businesses, and government services.

GET /api/search?q=roseau
{
  "parishes": [
    { "item": { "id": 7, "name": "St. George" },
      "score": 50.0 }
  ],
  "settlements": [
    { "item": { "id": 52, "name": "Roseau",
        "type": "City",
        "parishName": "St. George" },
      "score": 100.0 }
  ],
  "streets": [ /* ranked matches... */ ]
}
10
Parishes
110
Settlements
163
Streets

Why Use This API?

Free, open, and ready to use — no signup required

Complete Data

Every parish, settlement, and street in Dominica — verified and regularly updated.

Fast & Reliable

Sub-50ms response times with built-in caching and 99.9% uptime guarantee.

Powerful Search

Ranked search with typo tolerance across all entities. Find any location with a single query.

GPS Coordinates

Settlements support polygon boundaries with center-point fallback. Streets include point coordinates. Map-ready data.

Try It Live

Search the API right now — no signup required

API Explorer Live
/api/search?q=
// Click "Send Request" to see live results...

Simple Integration

Get started in minutes with any language

## Get all parishes
curl https://api.dominica-address.com/api/parishes

## Search for a location
curl https://api.dominica-address.com/api/search?q=roseau

## Get a settlement with polygon geometry when available
curl https://api.dominica-address.com/api/settlements/1

## Export settlements as GeoJSON
curl https://api.dominica-address.com/api/bulk/export/settlements?format=json
const BASE_URL = "https://api.dominica-address.com/api";

// Search for a location
const response = await fetch(`${BASE_URL}/search?q=roseau`);
const data = await response.json();

console.log(data.parishes);    // Matching parishes
console.log(data.settlements); // Matching settlements
console.log(data.streets);     // Matching streets

// Get settlement details including polygonGeoJson when available
const settlement = await fetch(`${BASE_URL}/settlements/1`)
    .then(r => r.json());
import requests

BASE_URL = "https://api.dominica-address.com/api"

# Search for a location
response = requests.get(f"{BASE_URL}/search", params={"q": "roseau"})
data = response.json()

print(data["parishes"])     # Matching parishes
print(data["settlements"])  # Matching settlements
print(data["streets"])      # Matching streets

# Get settlement details including polygonGeoJson when available
settlement = requests.get(f"{BASE_URL}/settlements/1").json()
using var client = new HttpClient();
client.BaseAddress = new Uri("https://api.dominica-address.com");

// Search for a location
var result = await client
    .GetFromJsonAsync<SearchResult>("/api/search?q=roseau");

// Get settlement details including polygonGeoJson when available
var settlement = await client
    .GetFromJsonAsync<Settlement>("/api/settlements/1");

API Endpoints

Clean RESTful design with consistent JSON responses

Parishes
GET /api/parishes List all parishes
GET /api/parishes/{id} Get parish details
GET /api/parishes/{id}/settlements Settlements in parish
GET /api/parishes/{id}/streets Streets in parish
Settlements
GET /api/settlements?page=1&pageSize=20 Paginated list with point and polygon geometry fields
GET /api/settlements/{id} Get settlement details including polygonGeoJson when available
GET /api/settlements/{id}/streets Streets in settlement
Streets
GET /api/streets?page=1&pageSize=20 Paginated list
GET /api/streets/{id} Get street details
Search
GET /api/search?q={query}&limit=10&type=settlement Ranked search with filters
GET /api/search/autocomplete?q={prefix}&limit=8 Autocomplete suggestions
Address Validation
POST /api/address/validate Validate and normalize an address
Geo Queries
GET /api/geo/nearby?lat={lat}&lon={lon}&radius=5 Find locations within radius, using settlement polygons when available
GET /api/geo/reverse?lat={lat}&lon={lon} Reverse geocode coordinates with polygon-first settlement matching
GET /api/geo/bounds?minLat=&minLon=&maxLat=&maxLon= Locations within bounding box, including intersecting settlement polygons
Bulk Data
GET /api/bulk/export/settlements?format=json Settlement GeoJSON export with Polygon or Point geometry
GET /api/bulk/export/settlements?format=csv Settlement CSV export including polygonGeoJson
Dataset
GET /api/dataset/version Latest dataset version
GET /api/dataset/changelog?since={versionId} Changes since a version

Frequently Asked Questions

Everything you need to know

The API provides complete address data for the Commonwealth of Dominica, including all 10 parishes, 110 settlements (cities, towns, villages, and hamlets), and 163 streets. Each record includes name, type, hierarchical relationships, and geometry where available. Settlements can expose polygon boundaries and fall back to center coordinates when no boundary is stored.

All responses are returned in JSON format. Paginated endpoints include total count, page number, page size, and total pages metadata alongside the data array.

No. The API is completely free and open — no API key, no signup, no authentication required. Just make HTTP requests directly to the endpoints. Responses are cached for 1 hour for optimal performance.

Geometry is sourced from OpenStreetMap. Streets use point coordinates. Settlements may use polygon boundaries; otherwise their coordinates represent an approximate centre point. Accuracy is suitable for mapping, geocoding, and location-based services but should not be used for surveying purposes.

Absolutely. The API is free for both personal and commercial use. You can integrate it into your applications, websites, and services without restriction. The underlying address data is sourced from public records and OpenStreetMap.

Ready to Get Started?

Start using the API right now — no signup, no API key, completely free.

Enjoying the API? Consider supporting its development.

Buy me a coffee