N-Ways
Developer docsPlaces

Places

Businesses and places near a point, by text, and one place’s details.

On this page
Note:

Send your key as key=YOUR_API_KEY on the address, or in the X-NWays-Api-Key header. API keys

Base address: https://nways.ng/maps/v1

Businesses and places near a point

GET https://nways.ng/maps/v1/places/nearby

By category (ranked by nearness and prominence, 40 a page; ATM and cash lists put paying machines first) and/or name. fields= sets the SKU: basic fields (default) search; any contact field places_contact; any atmosphere field places_atmosphere. Reasons: LAT_LNG_REQUIRED, CATEGORY_INVALID, CATEGORY_OR_QUERY_REQUIRED, RADIUS_INVALID, PAGE_TOKEN_INVALID, FIELDS_INVALID.

Parameters

NameInTypeDescription
latquerynumberRequired.
lngquerynumberRequired.
categoryquerystringOne of: petrol, charging, food, fastfood, cafe, bar, pos, bank, atm, cash, mechanic, vulcanizer, carwash, police, hospital, pharmacy, hotel, supermarket, shop, market, motorpark, parking, church, mosque, phones, salon, school, office, attraction, estate, residential, government, university.
qquerystringUp to 60 characters.
radiusquerynumber≥ 200, ≤ 50000.
limitqueryintegerDefault: 40. ≥ 1, ≤ 40.
pageTokenquerystring
fieldsquerystringBasic (SKU search): id, name, category, location, formattedAddress, plusCode, country, distanceM, businessStatus, attribution. Contact (places_contact): phone, email, website, openingHours. Atmosphere (places_atmosphere): rating, amenities, details. Default: basic.
cURL
curl "https://nways.ng/maps/v1/places/nearby?lat=6.4474&lng=3.472" \
  -H "X-NWays-Api-Key: YOUR_API_KEY"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/places/nearby?lat=6.4474&lng=3.472', {
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.get(
    "https://nways.ng/maps/v1/places/nearby?lat=6.4474&lng=3.472",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Response

Places

FieldTypeDescription
placesPlace[]Required.
places[].idstringRequired.
places[].namestring
places[].categorystring
places[].locationPoint
places[].location.typestringRequired.
places[].location.coordinatesnumber[]Required. [lng, lat] At least 2 items, at most 2 items.
places[].formattedAddressstring
places[].plusCodestring
places[].countrystring
places[].distanceMnumber
places[].businessStatusstringOne of: OPERATIONAL, UNVERIFIED, REPORTED_CLOSED.
places[].attributionstring
places[].phonestringContact tier
places[].emailstringContact tier
places[].websitestringContact tier
places[].openingHoursobjectContact tier
places[].openingHours.textstringRequired. OpenStreetMap opening_hours syntax
places[].openingHours.sourcestringRequired. One of: listed, owner, brand, usual.
places[].openingHours.confirmedinteger
places[].ratingobjectAtmosphere tier
places[].rating.scorenumber1–5, smoothed
places[].rating.countinteger
places[].rating.percentUpinteger
places[].rating.reviewCountinteger
places[].amenitiesobjectAtmosphere tier: what it offers, as OpenStreetMap tags (payment:*, wheelchair, delivery…).
places[].detailsobjectAtmosphere tier: per-industry details.
nextPageTokenstring
attributionstringRequired.
200 OK
{
  "places": [
    {
      "id": "osm:n2987189855",
      "name": "Shoprite",
      "category": "supermarket",
      "location": {
        "type": "string",
        "coordinates": [
          0
        ]
      },
      "formattedAddress": "string",
      "plusCode": "string",
      "country": "string",
      "distanceM": 0,
      "businessStatus": "OPERATIONAL",
      "attribution": "string",
      "phone": "string",
      "email": "string",
      "website": "string",
      "openingHours": {
        "text": "Mo-Su 09:00-21:00",
        "source": "listed",
        "confirmed": 0
      },
      "rating": {
        "score": 0,
        "count": 0,
        "percentUp": 0,
        "reviewCount": 0
      },
      "amenities": {},
      "details": {}
    }
  ],
  "nextPageToken": "string",
  "attribution": "string"
}

Errors

  • default Error

Businesses and places by text

GET https://nways.ng/maps/v1/places/search

"Zenith Bank Ikeja", "pharmacy near Yaba". SKUs as /places/nearby. Reasons: as /geocode, and RADIUS_INVALID, FIELDS_INVALID.

Parameters

NameInTypeDescription
qquerystringRequired.
nearquerystringlat,lng: rank and pick results near it.
radiusquerynumberWith near. ≥ 200, ≤ 50000.
countryquerystringComma list of NG, GH, BJ, TG, GA, CI, LR, GN, SL, GW, SN, CM, BF, CV, GM.
limitqueryintegerDefault: 10. ≥ 1, ≤ 20.
langquerystringOne of: en, fr, pt. Default: en.
fieldsquerystringBasic (SKU search): id, name, category, location, formattedAddress, plusCode, country, distanceM, businessStatus, attribution. Contact (places_contact): phone, email, website, openingHours. Atmosphere (places_atmosphere): rating, amenities, details. Default: basic.
cURL
curl "https://nways.ng/maps/v1/places/search?q=pharmacy+Yaba" \
  -H "X-NWays-Api-Key: YOUR_API_KEY"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/places/search?q=pharmacy+Yaba', {
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.get(
    "https://nways.ng/maps/v1/places/search?q=pharmacy+Yaba",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Response

Places

FieldTypeDescription
placesPlace[]Required.
places[].idstringRequired.
places[].namestring
places[].categorystring
places[].locationPoint
places[].location.typestringRequired.
places[].location.coordinatesnumber[]Required. [lng, lat] At least 2 items, at most 2 items.
places[].formattedAddressstring
places[].plusCodestring
places[].countrystring
places[].distanceMnumber
places[].businessStatusstringOne of: OPERATIONAL, UNVERIFIED, REPORTED_CLOSED.
places[].attributionstring
places[].phonestringContact tier
places[].emailstringContact tier
places[].websitestringContact tier
places[].openingHoursobjectContact tier
places[].openingHours.textstringRequired. OpenStreetMap opening_hours syntax
places[].openingHours.sourcestringRequired. One of: listed, owner, brand, usual.
places[].openingHours.confirmedinteger
places[].ratingobjectAtmosphere tier
places[].rating.scorenumber1–5, smoothed
places[].rating.countinteger
places[].rating.percentUpinteger
places[].rating.reviewCountinteger
places[].amenitiesobjectAtmosphere tier: what it offers, as OpenStreetMap tags (payment:*, wheelchair, delivery…).
places[].detailsobjectAtmosphere tier: per-industry details.
nextPageTokenstring
attributionstringRequired.
200 OK
{
  "places": [
    {
      "id": "osm:n2987189855",
      "name": "Shoprite",
      "category": "supermarket",
      "location": {
        "type": "string",
        "coordinates": [
          0
        ]
      },
      "formattedAddress": "string",
      "plusCode": "string",
      "country": "string",
      "distanceM": 0,
      "businessStatus": "OPERATIONAL",
      "attribution": "string",
      "phone": "string",
      "email": "string",
      "website": "string",
      "openingHours": {
        "text": "Mo-Su 09:00-21:00",
        "source": "listed",
        "confirmed": 0
      },
      "rating": {
        "score": 0,
        "count": 0,
        "percentUp": 0,
        "reviewCount": 0
      },
      "amenities": {},
      "details": {}
    }
  ],
  "nextPageToken": "string",
  "attribution": "string"
}

Errors

  • default Error

One place's details

GET https://nways.ng/maps/v1/places/{id}

fields is required: the fields you need (they set the SKU), or * for all (places_atmosphere). Reasons: PLACE_ID_INVALID, FIELDS_REQUIRED, FIELDS_INVALID, PLACE_NOT_FOUND.

Parameters

NameInTypeDescription
idpathstringRequired.
fieldsquerystringRequired.
cURL
curl "https://nways.ng/maps/v1/places/osm%3An2987189855?fields=name%2Clocation%2Cphone%2CopeningHours" \
  -H "X-NWays-Api-Key: YOUR_API_KEY"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/places/osm%3An2987189855?fields=name%2Clocation%2Cphone%2CopeningHours', {
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.get(
    "https://nways.ng/maps/v1/places/osm%3An2987189855?fields=name%2Clocation%2Cphone%2CopeningHours",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Response

The place

FieldTypeDescription
idstringRequired.
namestring
categorystring
locationPoint
location.typestringRequired.
location.coordinatesnumber[]Required. [lng, lat] At least 2 items, at most 2 items.
formattedAddressstring
plusCodestring
countrystring
distanceMnumber
businessStatusstringOne of: OPERATIONAL, UNVERIFIED, REPORTED_CLOSED.
attributionstring
phonestringContact tier
emailstringContact tier
websitestringContact tier
openingHoursobjectContact tier
openingHours.textstringRequired. OpenStreetMap opening_hours syntax
openingHours.sourcestringRequired. One of: listed, owner, brand, usual.
openingHours.confirmedinteger
ratingobjectAtmosphere tier
rating.scorenumber1–5, smoothed
rating.countinteger
rating.percentUpinteger
rating.reviewCountinteger
amenitiesobjectAtmosphere tier: what it offers, as OpenStreetMap tags (payment:*, wheelchair, delivery…).
detailsobjectAtmosphere tier: per-industry details.
200 OK
{
  "id": "osm:n2987189855",
  "name": "Shoprite",
  "category": "supermarket",
  "location": {
    "type": "string",
    "coordinates": [
      0
    ]
  },
  "formattedAddress": "string",
  "plusCode": "string",
  "country": "string",
  "distanceM": 0,
  "businessStatus": "OPERATIONAL",
  "attribution": "string",
  "phone": "string",
  "email": "string",
  "website": "string",
  "openingHours": {
    "text": "Mo-Su 09:00-21:00",
    "source": "listed",
    "confirmed": 0
  },
  "rating": {
    "score": 0,
    "count": 0,
    "percentUp": 0,
    "reviewCount": 0
  },
  "amenities": {},
  "details": {}
}

Errors

  • default Error