Open Places API

Category browse

List every place of a category in an area.

Text search is for finding the best matches. Category browse is for area listing: every returned cafe, pharmacy, hotel, school, or service category within the radius, paged predictably and allowed to be stored.

One request shape.

Send category, lat, lon, and a radius. Use limit and offset to paginate through the area, and min_confidence when you want cleaner records. Find valid category slugs with GET /v1/categories?q=plumbing; a parent slug such as food_and_drink also matches its subcategories.

A plain text search such as q=pharmacy now returns places in the pharmacy category too, with meta.interpreted_as explaining the reading. It returns a single page, so use an explicit category with offset when you need every place in the area.

curl -G "https://api.openplacesapi.com/v1/places" \
  --data-urlencode "category=plumbing" \
  --data-urlencode "lat=40.7128" \
  --data-urlencode "lon=-74.0060" \
  --data-urlencode "radius_mi=25" \
  --data-urlencode "limit=50" \
  --data-urlencode "offset=0" \
  --data-urlencode "min_confidence=0.85" \
  -H "Authorization: Bearer $OPEN_PLACES_API_KEY"

Built for list-building jobs.

Lead generation

Build an area list of local businesses and keep phone or website fields when Overture has them.

Property enrichment

Attach nearby amenities to listings without depending on a proprietary cache window.

Coverage audits

Review category coverage by city, county, service area, or operations territory.

Category browse FAQ.

Can I omit q when I use category?

Yes. category makes q optional. A category-only request lists matching Overture category records inside the requested radius.

How do I find the right category slug?

Look it up instead of guessing. GET https://api.openplacesapi.com/v1/categories?q=plumbing returns matching Overture category slugs with their parent and hierarchy, needs no API key, and does not count against quota. MCP clients can call the list_categories tool. If a search uses an unknown slug, the empty response includes an unknown_category warning with the closest known categories.

How is category browse paginated?

Use limit up to 50 and offset up to 950. Each page is one search against your monthly quota, and meta.next_offset tells you when another page is available.

Does a plain q such as pharmacy return the category too?

Yes. In the default mode=all without category, a q that names a kind of place, such as pharmacy or coffee near me, also searches that category, and meta.interpreted_as says how q was read. That returns one page of up to 20 results. To page through every place in a category, send an explicit category with limit and offset.

Does category browse return only primary-category matches?

It includes returned category membership, with primary-category matches ranked before secondary category matches for category-only browse.