---
title: "Facet the Airbnb markets dataset"
method: GET
path: "/datasets/airbnb-markets/facets"
tags: ["Datasets"]
---

# Facet the Airbnb markets dataset

`GET /datasets/airbnb-markets/facets`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/datasets/airbnb-markets/facets`
- Auth: API key in header `x-api-key`

Returns suppressed distribution counts over the Airbnb markets dataset, honoring the same filters as search. Facet enum: `country`, `market`, `currency`, `superhost`, `guest_favorite`, `rating_band`, `review_band`, `admin1` (top subdivision), `locality` (settlement), `room_type` (`entire_place`/`private_room`/`hotel`/`shared_room`), `property_type` (Airbnb's canonical listing type from the detail page), `amenities` (each amenity with the count of listings offering it). Enrichment-derived facets include a `coverage` object with the number and share of filtered listings carrying that dimension; buckets stay empty below the 20% minimum visibility gate. Coverage above the gate may still be partial. group_by enum: `country`, `market`, `admin1`, `locality`, `room_type`, `property_type`.

## Query parameters

- `facet` 'country' | 'market' | 'currency' | 'superhost' | 'guest_favorite' | 'rating_band' | 'review_band' | 'admin1' | 'locality' | 'room_type' | 'property_type' | 'amenities', required
- `group_by` 'country' | 'market' | 'admin1' | 'locality' | 'room_type' | 'property_type'
- `country` string
- `market` string
- `superhost` boolean
- `guest_favorite` boolean
- `min_rating` number
- `min_review_count` integer
- `active_since` string
- `min_listings` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- DatasetsAirbnbMarketsFacetResponseDoc
  - `code` integer
  - `data` DatasetsAirbnbMarketFacetResponse
    - `coverage` EsAirbnbDimensionCoverage
      - `coverage_pct` number: Share of the filtered universe with the dimension, from 0 through 100.
      - `covered_listings` integer: Number of filtered listings with the dimension field populated.
      - `dimension` string: Dimension whose field coverage was measured (for example room_type).
      - `meets_threshold` boolean: Whether the existing presentation gate permits buckets for this result.
      - `minimum_coverage_pct` number: Minimum coverage share required before buckets are returned.
      - `total_listings` integer: Number of listings in the filtered universe, including those without the dimension.
    - `dataset` string: Identifier of the dataset queried (`airbnb-markets`).
    - `facet` string: Facet that was aggregated.
    - `items` EsAirbnbMarketFacetItem[]: Facet values with the number of matching records for each.
      - `count` integer: Number of listings with this value.
      - `value` string: Facet value, for example a country code, market name, currency or room type.
  - `msg` string

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/afac9b012a27?raw)
