Datasets API endpoint
Returns an aggregate geohash-grid density map of Airbnb listings within a radius of a coordinate, from dataset id enum value `airbnb-markets`. Each cell reports a centroid, listing count and Superhost share; thin cells are suppressed. Aggregate-only.
/datasets/airbnb-markets/nearbyReturns an aggregate geohash-grid density map of Airbnb listings within a radius of a coordinate. Each cell reports a centroid, listing count and Superhost share; cells below the small-cell suppression floor are omitted. It is aggregate-only ā it never returns individual listings or hosts.
Dataset id enum:
airbnb-marketsQuery parameters:
lat: required center latitude, from -90 through 90.lon: required center longitude, from -180 through 180.radius_m: required search radius in meters, from 1 through 50000.precision: optional geohash precision, from 1 through 12; defaults to a value derived from the radius.min_listings: optional minimum listings per cell; raises the small-cell suppression floor.country: optional exact ISO-3166-1 alpha-2 country filter, e.g. US.superhost: optional filter to count only Superhost listings.min_rating: optional minimum listing rating, from 0 through 5.active_since: optional freshness filter, an ISO-8601 date (YYYY-MM-DD).Response behavior:
cells entry carries the geohash, its centroid lat/lon, listings count and superhost_pct.precision in the response is the geohash precision actually used.cells array (not an error) when no cell clears the suppression floor.| Field | Filled in, of 29 checked | Values in the sample |
|---|---|---|
| geohash | 29 | |
| lat | 29 | |
| lon | 29 | |
| listings | 29 | 52 to 357, median 69 |
| superhost_listings | 29 | 1 to 119, median 27 |
| superhost_pct | 29 | 1.7 to 69.6, median 37.7 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| lat | number | Yes | Center latitude, from -90 through 90 | 40.7484257 | |
| lon | number | Yes | Center longitude, from -180 through 180 | -73.98567 | |
| radius_m | integer | Yes | Search radius in meters, from 1 through 50000 | 5000 | |
| precision | integer | No | a value derived from the radius | Geohash precision, from 1 through 12; defaults to a value derived from the radius | |
| min_listings | integer | No | Minimum listings per cell; raises the small-cell suppression floor | ||
| country | string | No | Exact ISO-3166-1 alpha-2 country filter, e.g. US | ||
| superhost | boolean | No | Count only Superhost listings | ||
| min_rating | number | No | Minimum listing rating, from 0 through 5 | ||
| active_since | string | No | Freshness filter, an ISO-8601 date (YYYY-MM-DD) | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/datasets/airbnb-markets/nearby?lat=40.7484257&lon=-73.98567&radius_m=5000&country=us&superhost=true" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"dataset": "airbnb-markets",
"lat": 30.27,
"lon": -97.74,
"radius_m": 5000,
"precision": 6,
"cells": [
{
"geohash": "9v6m",
"lat": 30.27,
"lon": -97.74,
"listings": 320,
"superhost_listings": 96,
"superhost_pct": 30
}
],
"total": 1
}
}Request schema
No body schema
Response schema
#/definitions/datasets.airbnbMarketsNearbyResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | datasets.AirbnbMarketNearbyResponse | No | ||||
| data.cells | array | No | Density cells within the radius, each with its geohash, centre and listing counts. | |||
| data.cells[].geohash | string | No | Geohash string that identifies the grid cell. | |||
| data.cells[].lat | number | No | Latitude of the cell centre, in decimal degrees. | |||
| data.cells[].listings | integer | No | Number of listings in the cell. | |||
| data.cells[].lon | number | No | Longitude of the cell centre, in decimal degrees. | |||
| data.cells[].superhost_listings | integer | No | Number of listings in the cell seen with the Superhost badge. | |||
| data.cells[].superhost_pct | number | No | Share of listings in the cell seen with the Superhost badge, from 0 to 100. | |||
| data.dataset | string | No | Identifier of the dataset queried (`airbnb-markets`). | |||
| data.lat | number | No | Latitude of the search centre, in degrees. | |||
| data.lon | number | No | Longitude of the search centre, in degrees. | |||
| data.precision | integer | No | Geohash precision of the cells returned. | |||
| data.radius_m | integer | No | Search radius, in metres. | |||
| data.total | integer | No | Number of cells returned. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/datasets/airbnb-markets/nearby?lat=40.7484257&lon=-73.98567&radius_m=5000&country=us&superhost=true" \
-H "x-api-key: $CRAWLORA_API_KEY"