Address intelligence
Resolve an Adrehs code into a digital id, coordinates and the Sierra Leone administrative areas around it.
Use Adrehs as the local location layer in ecommerce, delivery, logistics, navigation and digital-service apps.
https://api.adrehs.orgconst code = "C2B T6W";
const response = await fetch(
`https://api.adrehs.org/addresses/${encodeURIComponent(code)}`,
{ headers: { Accept: "application/json" } }
);
if (!response.ok) throw new Error("Address not found");
const address = await response.json();
console.log(address.digital_id);
// WAU C2B T6W
Resolve an Adrehs code into a digital id, coordinates and the Sierra Leone administrative areas around it.
Search public places by name, category, district or Adrehs code and bring the results into your product.
Connect confirmed destinations to checkout, dispatch, fleet, field-service and delivery workflows.
Use coordinates for routing and turn Adrehs links into QR codes for fast, consistent location sharing.
Resolve an Adrehs code such as C2B T6W or a full digital id such as WAU C2B T6W. Codes are case-insensitive.
/addresses/{code}curl --request GET \
'https://api.adrehs.org/addresses/C2B%20T6W' \
--header 'Accept: application/json'
const code = "C2B T6W";
const response = await fetch(
`https://api.adrehs.org/addresses/${encodeURIComponent(code)}`,
{ headers: { Accept: "application/json" } }
);
if (!response.ok) {
throw new Error(`Lookup failed: ${response.status}`);
}
const address = await response.json();
{
"code": "C2B T6W",
"digital_id": "WAU C2B T6W",
"region": "WESTERN",
"district": "WESTERN AREA URB",
"district_code": "WAU",
"chiefdom": "CENTRAL II",
"section": "CONNAUGHT HOSPITAL",
"coords": { "lat": 8.48876, "lng": -13.23863 },
"name": "Connaught Hospital",
"address": "Percival Street, Freetown"
}
The first three characters of a full Adrehs digital id identify its Sierra Leone district. For example, WAU means Western Area Urban.
/regions/districtsCanonical reference
Use the API code value as the district prefix. The endpoint is sorted by region and district name and includes each district's chiefdom count.
| Code | District | Region | Chiefdoms |
|---|---|---|---|
KAI | Kailahun | Eastern | 15 |
KEN | Kenema | Eastern | 15 |
KON | Kono | Eastern | 15 |
KAM | Kambia | North Western | 8 |
KAR | Karene | North Western | 12 |
PLD | Port Loko | North Western | 10 |
BOM | Bombali | Northern | 13 |
FAL | Falaba | Northern | 13 |
KOI | Koinadugu | Northern | 10 |
TON | Tonkolili | Northern | 19 |
BOD | Bo | Southern | 17 |
BON | Bonthe | Southern | 7 |
MOY | Moyamba | Southern | 13 |
PUJ | Pujehun | Southern | 14 |
WAR | Western Area Rural | Western | 3 |
WAU | Western Area Urban | Western | 8 |
{
"KAI": "Kailahun",
"KEN": "Kenema",
"KON": "Kono",
"KAM": "Kambia",
"KAR": "Karene",
"PLD": "Port Loko",
"BOM": "Bombali",
"FAL": "Falaba",
"KOI": "Koinadugu",
"TON": "Tonkolili",
"BOD": "Bo",
"BON": "Bonthe",
"MOY": "Moyamba",
"PUJ": "Pujehun",
"WAR": "Western Area Rural",
"WAU": "Western Area Urban"
}
Generate an Adrehs code from a valid Sierra Leone latitude and longitude. The operation is idempotent per coordinate: it returns the existing address when known and may create an address record on the first successful request.
/addresses/generatecurl --request POST \
'https://api.adrehs.org/addresses/generate' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"lat": 8.4791,
"lng": -13.23323
}'
const response = await fetch(
"https://api.adrehs.org/addresses/generate",
{
method: "POST",
headers: {
Accept: "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
lat: 8.4791,
lng: -13.23323
})
}
);
if (!response.ok) {
throw new Error(`Generation failed: ${response.status}`);
}
const address = await response.json();
404.Search the national directory by place name, Adrehs code, address, section, chiefdom, district or region. Discover valid category ids before filtering.
/public-places/categories/public-placesCategory reference
Send the API id as the category query value. Labels and public types are returned for display and compatibility; fetch and cache the category endpoint instead of hardcoding the list in production.
finance1,584 recordsPublic typeFinancial Service
fire8 recordsPublic typeFire Station
health2,274 recordsPublic typeHealth Facility
libraries18 recordsPublic typeLibraries
markets94 recordsPublic typeMarkets
police44 recordsPublic typePolice Station
post21 recordsPublic typePost Office
tourism348 recordsPublic typeTourism
school10,545 recordsPublic typeSchool
["finance", "fire", "health", "libraries", "markets", "police", "post", "tourism", "school"]
| Parameter | Type | Description | Example |
|---|---|---|---|
category | string | Category id, label or public type. | markets |
q | string | Search across place and administrative fields. | lumley |
sort | string | name, adrehs, digital_id, section, chiefdom, district, region or address. | name |
dir | string | Sort direction. | asc |
page | integer | One-based page number. | 1 |
size | integer | Results per page, from 1 to 1000. | 25 |
curl --request GET \
'https://api.adrehs.org/public-places?category=markets&q=lumley&sort=name&dir=asc&page=1&size=25' \
--header 'Accept: application/json'
const params = new URLSearchParams({
category: "markets",
q: "lumley",
sort: "name",
dir: "asc",
page: "1",
size: "25"
});
const response = await fetch(
`https://api.adrehs.org/public-places?${params}`,
{ headers: { Accept: "application/json" } }
);
if (!response.ok) throw new Error(`Search failed: ${response.status}`);
const result = await response.json();
{
"total": 1,
"page": 1,
"size": 25,
"pages": 1,
"items": [
{
"name": "Lumley St. Market",
"adrehs": "W3G TQ1",
"digital_id": "WAU W3G TQ1",
"section": "LUMLEY",
"chiefdom": "WEST III",
"district_code": "WAU",
"address": "Regebt Road Lumley",
"category": "Markets",
"coords": { "lat": 8.45481, "lng": -13.2723 }
}
]
}
Keep the short code visible to the user, then use its Sierra Leone administrative and geolocation data behind the scenes.
Ask for an Adrehs code at checkout, booking, dispatch or registration.
Look up the code from your server and store the returned digital id.
Show the place, district and chiefdom so the user can confirm it.
Use the coordinates for mapping, navigation or delivery and the code for communication.
Create a link to the public lookup page, then render that URL with the QR library already used by your web or mobile stack. Scanning it opens the address lookup.
const shareUrl = new URL("https://adrehs.org/");
shareUrl.searchParams.set("code", "C2B T6W");
console.log(shareUrl.toString());
// https://adrehs.org/?code=C2B+T6W
The endpoints are straightforward; a reliable integration still needs normal production controls.
Resolve a real Sierra Leone address, then connect the same API pattern to your commerce, navigation, dispatch or logistics workflow.