Datasets API endpoint
Searches Airbnb hosts from the dataset id enum value `airbnb-hosts` — public host profiles with display name, location, bio, Superhost and identity-verification status, hosting tenure, total guest reviews, number of listings and interests. Each record is one host, not one listing. Sort enum: `review_count_desc`, `listing_count_desc`, `hosting_years_desc`, `relevance`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).
/datasets/airbnb-hosts/searchDataset id enum:
airbnb-hostsQuery parameters:
q: optional full-text query over host name and bio, max 256 characters.location: optional free-text match over the location the host wrote on the profile, e.g. Portugal or Lisbon. Every word must match. The field is free text typed by the host, so spellings and detail vary (Lisbon, Portugal, NY), and some hosts leave it blank.interest: optional exact interest, as returned by the interest facet, e.g. Architecture, max 128 characters.verification: optional exact verification, as returned by the verification facet, e.g. Identity, max 128 characters.is_superhost: optional boolean. true keeps only Superhosts; false keeps only hosts without the badge.is_home_host: optional boolean filter on the home-host flag.identity_verified: optional boolean. true keeps only hosts whose identity is verified.min_listings: optional minimum number of listings the host manages, 0 or greater.max_listings: optional maximum number of listings the host manages, 0 or greater; must not be below min_listings.min_reviews: optional minimum total guest reviews received, 0 or greater.min_hosting_years: optional minimum years of hosting, 0 or greater.sort: optional sort order. Allowed values: review_count_desc, listing_count_desc, hosting_years_desc, relevance. Defaults to relevance with q, otherwise review_count_desc.page: optional page number, defaults to 1.page_size: optional page size, defaults to 20 and maxes at 100.Response behavior:
host_id, name, url (the host's public Airbnb profile), is_superhost, is_home_host, identity_verified, verifications, location, about, hosting_years, member_years, review_count, listing_count, interests, first_seen_at, last_seen_at and fetched_at.listing_count is the number of listings the host's profile reports; it is not limited to listings in other datasets.hosting_years and member_years are whole years. 0 means under a year or that the profile did not show the value.10000; page * page_size must not exceed 10000.items array (not an error) when nothing matches or the dataset has no data yet.total as the number of matching hosts collected so far, not the number on Airbnb.1 credit per record returned, minimum 2. A search that returns 20 records costs 20 credits, a full page of 100 costs 100, and an empty or one-record result costs 2. You are charged for what comes back, not for the page_size you ask for, but your balance must cover the requested page_size for the call to be accepted. The response header x-credit-cost shows what a call was charged.
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| host_id | 20 | |
| name | 20 | |
| url | 20 | airbnb.com |
| is_superhost | 20 | true in 2 of 20 |
| is_home_host | 20 | true in 20 of 20 |
| identity_verified | 20 | true in 15 of 20 |
| verifications | 20 | median 3 entries |
| location | 18 | |
| about | 20 | median 341 characters |
| hosting_years | 20 | 7 to 11, median 9 |
| member_years | 20 | 7 to 12, median 9 |
| review_count | 20 | 49,620 to 127,917, median 61,811 |
| listing_count | 20 | 227 to 3,677, median 740 |
| interests | 20 | median 14 entries |
| first_seen_at | 20 | 2026-11-05 |
| last_seen_at | 20 | 2026-11-05 to 2026-11-06 |
| fetched_at | 20 | 2026-11-05 to 2026-11-06 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | No | Full-text query over host name and bio, max 256 characters | ||
| location | string | No | Free-text match over the profile location, e.g. Portugal; every word must match, max 128 characters | ||
| interest | string | No | Exact interest as returned by the interest facet, e.g. Architecture, max 128 characters | ||
| verification | string | No | Exact verification as returned by the verification facet, e.g. Identity, max 128 characters | ||
| is_superhost | boolean | No | true keeps only Superhosts, false keeps only hosts without the badge | ||
| is_home_host | boolean | No | Filter on the home-host flag | ||
| identity_verified | boolean | No | true keeps only hosts whose identity is verified | ||
| min_listings | integer | No | Minimum number of listings the host manages, 0 or greater | ||
| max_listings | integer | No | Maximum number of listings the host manages, 0 or greater | ||
| min_reviews | integer | No | Minimum total guest reviews received, 0 or greater | ||
| min_hosting_years | integer | No | Minimum years of hosting, 0 or greater | ||
| sort | string | No | Sort enum: review_count_desc, listing_count_desc, hosting_years_desc, relevance Allowed values: review_count_desc, listing_count_desc, hosting_years_desc, relevance. | ||
| page | integer | No | 1 | Page number, defaults to 1 | |
| page_size | integer | No | 20 and maxes at 100 | Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/datasets/airbnb-hosts/search?q=coffee&is_superhost=true&is_home_host=true&identity_verified=true&sort=review_count_desc&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"dataset": "airbnb-hosts",
"items": [
{
"host_id": "65056940",
"name": "Ana",
"url": "https://www.airbnb.com/users/show/65056940",
"is_superhost": true,
"is_home_host": false,
"identity_verified": true,
"verifications": [
"Identity",
"Email address"
],
"location": "Lisbon, Portugal",
"about": "Architect and wine lover. Happy to share local tips.",
"hosting_years": 6,
"member_years": 10,
"review_count": 888,
"listing_count": 3,
"interests": [
"Architecture",
"Wine"
],
"first_seen_at": "2026-11-04T00:00:00Z",
"last_seen_at": "2026-11-04T00:00:00Z",
"fetched_at": "2026-11-04T00:00:00Z"
}
],
"page": 1,
"page_size": 20,
"total": 1,
"sort": "review_count_desc"
}
}Request schema
No body schema
Response schema
#/definitions/datasets.airbnbHostsSearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | datasets.AirbnbHostsSearchResponse | No | ||||
| data.dataset | string | No | Identifier of the dataset queried (`airbnb-hosts`). | |||
| data.items | array | No | Matching Airbnb host records on this page. AirbnbHostItem record, 17 fields: about, fetched_at, first_seen_at, host_id, hosting_years, identity_verified, interests, is_home_host, is_superhost, last_seen_at, listing_count, location and 5 more. Described under Get an Airbnb host from the dataset API. | |||
| data.page | integer | No | Page number returned. | |||
| data.page_size | integer | No | Number of items per page. | |||
| data.sort | string | No | Sort order applied. | |||
| data.total | integer | No | Total number of records matching the filters. | |||
| 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-hosts/search?q=coffee&is_superhost=true&is_home_host=true&identity_verified=true&sort=review_count_desc&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"