Build with Pmap API
Map data, address lookup, geocoding, routing, places, and business data — one API key, 54 African countries, production-ready from day one.
How it works
One authenticated request. Data from all 54 African countries. JSON back in under 100 ms.
Your app calls PMap
A single REST request with your Bearer key — from any language.
PMap resolves it
Own basemap, geocoder, routing engine and POI graph — first-party African data.
You get clean JSON
Predictable, documented responses — ready to drop straight into your product.
Get started in 3 steps
From zero to live API call in under 5 minutes.
Get API key
Your key is generated instantly on the dashboard. Secure it and never commit it to git.
Open dashboard →Make your first call
Copy a code example below and hit send. You'll have a live response in under 100 ms.
Read docs →Everything you need to build
Six production-ready APIs. One key. Standard REST with JSON responses.
Code examples
Standard REST API. Works with any language.
// PMap API — JavaScript / Node.js
const PM_KEY = 'pm_live_YOUR_API_KEY'
const BASE = 'https://pechmap.com/api/v1'
// 1. Geocode a place
const geo = await fetch(`${BASE}/geocode?q=Ikoyi+Lagos`, {
headers: { 'Authorization': `Bearer ${PM_KEY}` }
}).then(r => r.json())
// { lat: 6.4549, lng: 3.4342, formatted: 'Ikoyi, Lagos Island, Lagos' }
// 2. Find places nearby
const places = await fetch(
`${BASE}/places/nearby?lat=6.5244&lng=3.3792&category=pharmacy`,
{ headers: { 'Authorization': `Bearer ${PM_KEY}` } }
).then(r => r.json())
// { places: [{ name: 'HealthPlus Pharmacy', lat: 6.5251, ... }] }
// 3. Route between two points
const route = await fetch(
`${BASE}/route?from=6.5244,3.3792&to=6.4549,3.4342`,
{ headers: { 'Authorization': `Bearer ${PM_KEY}` } }
).then(r => r.json())
// { distance_km: 8.4, duration_min: 22, steps: [...] }Rate limits
Metered per account plan in the dashboard — not invented list prices.
| Plan | Daily limit | Monthly | Price |
|---|---|---|---|
| Free (default) | Per-endpoint | 1,000 calls/mo default if no plan row | $0 |
Rate limits apply per API key. Exceeded limits return HTTP 429. Learn more
Your API key
Sign in to get your real key. Preview below.
pm_live_••••••••••••••••Sign in to reveal your real key. Keep it secret — never commit to git.
SDKs & Libraries
HTTPS + the browser map script. No invented npm/pip package.
Browser map
Drop-in MapLibre map on PMap tiles. Replaces google.maps.Map for Africa.
<script src="https://pechmap.com/sdk/v1/pmap.js">Google adapter
Geocoder / Directions / Places callbacks for teams leaving Google Maps Platform.
<script src="https://pechmap.com/pmap-google.js">Any language
HTTPS JSON. No invented npm/pip package — fetch or requests against /api/v1.
Authorization: Bearer pm_live_…Documentation
Everything you need to integrate quickly and confidently.
Getting Started
Set up your first API call in minutes.
API Reference
Full endpoint docs with examples.
Migrate from Google
Parameter map + browser adapter for teams leaving Google / Mapbox / HERE.
Authentication
Bearer pm_live_… or Google-style ?key= on geo endpoints.
Integrate a business
Full map API catalog + recipes for every platform.
PechMove for shops
Ecommerce & marketplaces: pins, track, POD via API.
Capabilities
GET /api/v1/capabilities — what actually ships today.