Skip to main content

Overview

The /find-places endpoint lets you search for a large number of places over 3 different data sources: Overture, Foursquare and Reprompt. The most use cases is to find places near a given coordinate with a radius.

Interactive Demo

Try it: Click anywhere on the map to set a search location, adjust the parameters, then click “Find Places” The simplest way to find places is by searching within a radius of a specific coordinate.

Search by Coordinates and Radius

curl -X POST \
  'https://api.reprompt.io/v2/find-places' \
  -H 'Authorization: Bearer {YOUR_API_KEY}' \
  -H 'Content-Type: application/json' \
  -d '{
    "location_filter": {
      "latitude": 37.7749,
      "longitude": -122.4194,
      "radius": 1000
    },
    "categories": ["cafe"]
  }'
Response:
{
  "results": [
    {
      "place_id": "9d7de33e-5d98-57af-9307-02481c03b7ad",
      "name": "Blue Bottle Coffee",
      "full_address": "55 s van ness ave, san francisco, ca 94103",
      "latitude": 37.773909,
      "longitude": -122.418616,
      "category_primary": "coffee_shop",
      "phone": "+1 510-661-3510",
      "website": "https://bluebottlecoffee.com/",
      "operating_status": "Open",
      "distance_m": 129.965146
    }
  ]
}
Key Parameters:
  • latitude (required): Latitude coordinate in decimal degrees
  • longitude (required): Longitude coordinate in decimal degrees
  • radius (optional): Search radius in meters. Default: 500m, Maximum: 10,000m (10km)
  • categories (optional): Array of place categories to filter results

Multiple Categories

Search for multiple types of places simultaneously:
curl -X POST \
  'https://api.reprompt.io/v2/find-places' \
  -H 'Authorization: Bearer {YOUR_API_KEY}' \
  -H 'Content-Type: application/json' \
  -d '{
    "location_filter": {
      "latitude": 40.7128,
      "longitude": -74.0060,
      "radius": 2000
    },
    "categories": ["restaurant", "cafe", "bar"]
  }'
Response:
{
  "results": [
    {
      "place_id": "1a2b3c4d-5e6f-7g8h-9i0j-k1l2m3n4o5p6",
      "name": "The Modern",
      "full_address": "9 w 53rd st, new york, ny 10019",
      "category_primary": "restaurant",
      "distance_m": 450.123
    },
    {
      "place_id": "2b3c4d5e-6f7g-8h9i-0j1k-l2m3n4o5p6q7",
      "name": "Stumptown Coffee Roasters",
      "full_address": "18 w 29th st, new york, ny 10001",
      "category_primary": "cafe",
      "distance_m": 678.456
    },
    {
      "place_id": "3c4d5e6f-7g8h-9i0j-1k2l-m3n4o5p6q7r8",
      "name": "The Dead Rabbit",
      "full_address": "30 water st, new york, ny 10004",
      "category_primary": "bar",
      "distance_m": 892.789
    }
  ]
}

Compare Coffee Chain Coverage

Find multiple chains to compare their coverage in an area:
import requests
from collections import Counter

response = requests.post(
    "https://api.reprompt.io/v2/find-places",
    headers={
        "Authorization": "Bearer {YOUR_API_KEY}",
        "Content-Type": "application/json"
    },
    json={
        "location_filter": {
            "latitude": 37.7749,
            "longitude": -122.4194,
            "radius": 3000
        },
        "categories": ["coffee_shop", "cafe"]
    }
)

places = response.json()

# Filter results by chain name
starbucks = [p for p in places['results'] if 'Starbucks' in p['name']]
philz = [p for p in places['results'] if 'Philz' in p['name']]

print(f"Starbucks: {len(starbucks)} locations")
print(f"Philz Coffee: {len(philz)} locations")

Search Entire Cities

Search all places within a city boundary - no need for multiple radius searches.
import requests

response = requests.post(
    "https://api.reprompt.io/v2/find-places",
    headers={
        "Authorization": "Bearer {YOUR_API_KEY}",
        "Content-Type": "application/json"
    },
    json={
        "location_filter": {
            "locality": "San Francisco",
            "country_code": "US"
        },
        "categories": ["restaurant"]
    }
)

places = response.json()
print(f"Found {places['metadata']['total_results']} restaurants")
Returns first 500 results immediately. For complete datasets with >500 places, results include information about accessing the full dataset.

Search Within Custom Boundaries

Use GeoJSON polygons to search specific neighborhoods or custom areas.
import requests

# Mission District boundary (San Francisco postal code 94110)
mission_boundary = {
    "type": "Polygon",
    "coordinates": [[[-122.405115, 37.764635], [-122.405212, 37.763469], [-122.405832, 37.762199], [-122.406365, 37.761199], [-122.40645, 37.760114], [-122.406167, 37.759315], [-122.40405, 37.757619], [-122.403428, 37.756871], [-122.403328, 37.756082], [-122.40315, 37.754488], [-122.403437, 37.753199], [-122.403364, 37.752366], [-122.405091, 37.745281], [-122.405614, 37.7442], [-122.406652, 37.741241], [-122.407045, 37.739587], [-122.408136, 37.73964], [-122.408009, 37.737734], [-122.408284, 37.736846], [-122.409287, 37.735258], [-122.410052, 37.734675], [-122.411978, 37.733732], [-122.414554, 37.732371], [-122.416255, 37.732034], [-122.419881, 37.732016], [-122.423718, 37.73155], [-122.425944, 37.731698], [-122.422274, 37.732383], [-122.421787, 37.732774], [-122.422472, 37.733967], [-122.422901, 37.734388], [-122.426983, 37.735455], [-122.427849, 37.734718], [-122.428578, 37.735082], [-122.428454, 37.735882], [-122.42551, 37.737774], [-122.42452, 37.739868], [-122.424394, 37.740405], [-122.424168, 37.740805], [-122.426453, 37.764634], [-122.421885, 37.764908], [-122.42173, 37.763304], [-122.421248, 37.764947], [-122.407553, 37.765798], [-122.407431, 37.764497], [-122.405115, 37.764635]]]
}

response = requests.post(
    "https://api.reprompt.io/v2/find-places",
    headers={
        "Authorization": "Bearer {YOUR_API_KEY}",
        "Content-Type": "application/json"
    },
    json={
        "location_filter": {"geometry": mission_boundary},
        "categories": ["restaurant"]
    }
)

places = response.json()
print(f"Found {len(places['results'])} restaurants in Mission District")
I