Skip to content
GET/v1/{metro}/nearbyall plans

List nearby listings

Takes a point (lat/lng) and returns a flat, distance-ordered list — no address resolution and no grouping, unlike /around, which takes an address and returns grouped, ranked results. Use this when the caller already has coordinates; use /around when the caller has an address.

Show more

Returns published, active rows with coordinates within radius_m of lat/lng, nearest first, with the distance in metres on every row. Only rows with something still ahead of them: places always, events that have not started, and classes and camps whose term has not ended.

Paged by cursor only (there is no page); meta.next_cursor is "<distance_m>:<listing_id>", the key of the last row returned, so the page cannot drift as rows are written.

Results are confined to {metro}; a point outside it returns an empty page rather than the neighboring metro's rows. lat/lng choose where in the metro to look, never which metro to look in.

Use types to narrow; each type requested must be in the key's scopes.types. Returns 503 when this endpoint is unavailable.

Try this requestRun it with sample data, no key needed. Paste a key to run it live.
Example request
curl -sS \
  -H "X-API-Key: $TAILEND_API_KEY" \
  "https://api.tailend.dev/v1/philadelphia/nearby"
Example response · 200
{
  "data": [
    {
      "listing_id": "00000000-0000-4000-8000-000000000001",
      "type": "event",
      "name": "example",
      "distance_m": 1
    }
  ],
  "meta": {
    "limit": 1,
    "count": 1,
    "has_more": false
  }
}

Try any request with sample data, no key needed. Available on every plan.

Metro slug from /v1/metros (e.g. philadelphia).

Latitude of the point to search around.

Longitude of the point to search around.

Optional parameters (4)

Radius in metres.

Restrict to these listing types.

meta.next_cursor from the previous page: "<distance_m>:<listing_id>".

Ctrl Enter to send