Build location-intelligent platforms for Sierra Leone.

Use Adrehs as the local location layer in ecommerce, delivery, logistics, navigation and digital-service apps.

Base URL
https://api.adrehs.org
Public access
No access token for the read endpoints below
GET /addresses/{code}
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("Address not found");
const address = await response.json();

console.log(address.digital_id);
// WAU C2B T6W
01

Address intelligence

Resolve an Adrehs code into a digital id, coordinates and the Sierra Leone administrative areas around it.

02

Place discovery

Search public places by name, category, district or Adrehs code and bring the results into your product.

03

Operational workflows

Connect confirmed destinations to checkout, dispatch, fleet, field-service and delivery workflows.

04

Navigation and sharing

Use coordinates for routing and turn Adrehs links into QR codes for fast, consistent location sharing.

01

Adrehs code lookup

Resolve an Adrehs code such as C2B T6W or a full digital id such as WAU C2B T6W. Codes are case-insensitive.

GET/addresses/{code}
cURL
curl --request GET \
  'https://api.adrehs.org/addresses/C2B%20T6W' \
  --header 'Accept: application/json'
JavaScript
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();
200 response · live shape verified 25 August 2026
{
  "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"
}
Use it for: checkout validation, dispatch records, map destinations, address confirmation and delivery labels.
02

District prefixes

The first three characters of a full Adrehs digital id identify its Sierra Leone district. For example, WAU means Western Area Urban.

GET/regions/districts

Canonical reference

All Sierra Leone district codes

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.

16 districts · verified 4 September 2026
CodeDistrictRegionChiefdoms
KAIKailahunEastern15
KENKenemaEastern15
KONKonoEastern15
KAMKambiaNorth Western8
KARKareneNorth Western12
PLDPort LokoNorth Western10
BOMBombaliNorthern13
FALFalabaNorthern13
KOIKoinaduguNorthern10
TONTonkoliliNorthern19
BODBoSouthern17
BONBontheSouthern7
MOYMoyambaSouthern13
PUJPujehunSouthern14
WARWestern Area RuralWestern3
WAUWestern Area UrbanWestern8
Copy-ready district map
{
  "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"
}
03

Adrehs code generation

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.

POST/addresses/generate
cURL
curl --request POST \
  'https://api.adrehs.org/addresses/generate' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{
    "lat": 8.4791,
    "lng": -13.23323
  }'
JavaScript
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();
Write behaviour: Do not call this endpoint speculatively on page load or on every map movement. Generate only after the user or an authorised workflow confirms the coordinate. A point outside Sierra Leone coverage can return 404.
Generate from CSV or ExcelThe portal validates and maps columns, then calls this endpoint once per unique valid coordinate.
04

Public places

Search the national directory by place name, Adrehs code, address, section, chiefdom, district or region. Discover valid category ids before filtering.

GET/public-places/categories
GET/public-places

Category reference

Available public-place categories

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.

9 categories · verified 27 August 2026
finance1,584 records

Financial Services

Public typeFinancial Service

fire8 records

Fire Stations

Public typeFire Station

health2,274 records

Health Facilities

Public typeHealth Facility

libraries18 records

Libraries

Public typeLibraries

markets94 records

Markets

Public typeMarkets

police44 records

Police Stations

Public typePolice Station

post21 records

Post Offices

Public typePost Office

tourism348 records

Tourism

Public typeTourism

school10,545 records

School

Public typeSchool

Copy-ready category ids
["finance", "fire", "health", "libraries", "markets", "police", "post", "tourism", "school"]
ParameterTypeDescriptionExample
categorystringCategory id, label or public type.markets
qstringSearch across place and administrative fields.lumley
sortstringname, adrehs, digital_id, section, chiefdom, district, region or address.name
dirstringSort direction.asc
pageintegerOne-based page number.1
sizeintegerResults per page, from 1 to 1000.25
cURL
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'
JavaScript
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();
200 response · example item
{
  "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 }
    }
  ]
}

A dependable location workflow.

Keep the short code visible to the user, then use its Sierra Leone administrative and geolocation data behind the scenes.

  1. 01Collect

    Ask for an Adrehs code at checkout, booking, dispatch or registration.

  2. 02Resolve

    Look up the code from your server and store the returned digital id.

  3. 03Validate

    Show the place, district and chiefdom so the user can confirm it.

  4. 04Act

    Use the coordinates for mapping, navigation or delivery and the code for communication.

Share an Adrehs in a QR code.

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.

JavaScript
const shareUrl = new URL("https://adrehs.org/");
shareUrl.searchParams.set("code", "C2B T6W");

console.log(shareUrl.toString());
// https://adrehs.org/?code=C2B+T6W
QR code that opens the Adrehs lookup for C2B T6W
WAU C2B T6WConnaught Hospital · Scannable example
07

Production guidance

The endpoints are straightforward; a reliable integration still needs normal production controls.

  • Call from your backend.Browser-side requests depend on your web origin being permitted by the API. A server integration avoids exposing that dependency to customers.
  • Debounce search.Do not call the public-place API on every keystroke. Wait for a short pause or submit action.
  • Paginate and cache.Request only the rows needed, and cache category metadata and repeat lookups where appropriate.
  • Handle failures.Set timeouts, check HTTP status codes, retry transient failures with backoff and keep a manual fallback.
  • Confirm launch terms.No public SLA, numeric rate limit or unlimited-throughput commitment is stated here. Confirm production capacity and access requirements with Adrehs before launch.

Make location intelligence part of your product.

Resolve a real Sierra Leone address, then connect the same API pattern to your commerce, navigation, dispatch or logistics workflow.

Start integratingOpen bulk generation