diff --git a/CHANGELOG.md b/CHANGELOG.md
index e4b05a6..3388410 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changelog
+## v1.10.0-sdk.1
+
+- Regenerated from the public API contract (525 to 529 operations). Adds the
+ **Airbnb Markets dataset** (4 endpoints): aggregate short-term-rental market
+ statistics -- listing supply, Superhost share, ratings, and nightly-price bands
+ -- rolled up by country, metro, and geo cell (search, item lookup, facets, and
+ nearby density). Aggregate-only: no individual listings or hosts.
+
## v1.9.0-sdk.1
- Regenerated from the public API contract (499 to 525 operations). Adds four
diff --git a/docs/operations.md b/docs/operations.md
index 1fd7852..bbe7b02 100644
--- a/docs/operations.md
+++ b/docs/operations.md
@@ -2,7 +2,7 @@
Generated from `openapi/public.json`. Deprecated, admin, and internal operations are excluded from this SDK contract.
-Total operations: `525`
+Total operations: `529`
| Group | SDK method | Operation ID | HTTP | Params | Auth | Response | Notes |
| --- | --- | --- | --- | --- | --- | --- | --- |
@@ -93,6 +93,10 @@ Total operations: `525`
| web | `web.antibotCheck` | `antibot-check` | `POST /diagnostics/antibot-check` | `request` (body String required) | `ApiKeyAuth` | `WebAntibotCheckResponse` | |
| web | `web.scrape` | `web-scrape` | `POST /web/scrape` | `scrapeOption` (body String required) | `ApiKeyAuth` | `WebScrapeResponse` | |
| datasets | `datasets.list` | `datasets-list` | `GET /datasets` | none | `ApiKeyAuth` | `DatasetsListResponse` | |
+| datasets | `datasets.airbnbMarketsFacets` | `datasets-airbnb-markets-facets` | `GET /datasets/airbnb-markets/facets` | `facet` (query String required)
`group_by` (query String)
`country` (query String)
`market` (query String)
`superhost` (query Boolean)
`min_rating` (query Double)
`min_review_count` (query Integer)
`active_since` (query String)
`min_listings` (query Integer) | `ApiKeyAuth` | `DatasetsAirbnbMarketsFacetsResponse` | |
+| datasets | `datasets.airbnbMarketsItem` | `datasets-airbnb-markets-item` | `GET /datasets/airbnb-markets/items/{country}` | `country` (path String required) | `ApiKeyAuth` | `DatasetsAirbnbMarketsItemResponse` | |
+| datasets | `datasets.airbnbMarketsNearby` | `datasets-airbnb-markets-nearby` | `GET /datasets/airbnb-markets/nearby` | `lat` (query Double required)
`lon` (query Double required)
`radius_m` (query Integer required)
`precision` (query Integer)
`min_listings` (query Integer)
`country` (query String)
`superhost` (query Boolean)
`min_rating` (query Double)
`active_since` (query String) | `ApiKeyAuth` | `DatasetsAirbnbMarketsNearbyResponse` | |
+| datasets | `datasets.airbnbMarketsSearch` | `datasets-airbnb-markets-search` | `GET /datasets/airbnb-markets/search` | `group_by` (query String)
`country` (query String)
`market` (query String)
`superhost` (query Boolean)
`min_rating` (query Double)
`min_review_count` (query Integer)
`active_since` (query String)
`min_listings` (query Integer)
`sort` (query String)
`page` (query Integer)
`page_size` (query Integer) | `ApiKeyAuth` | `DatasetsAirbnbMarketsSearchResponse` | |
| datasets | `datasets.appsChartsSearch` | `datasets-apps-charts-search` | `GET /datasets/apps-charts/search` | `q` (query String)
`store` (query String)
`chart_type` (query String)
`collection` (query String)
`category` (query String)
`country` (query String)
`app_id` (query String)
`date` (query String)
`sort` (query String)
`page` (query Integer)
`page_size` (query Integer) | `ApiKeyAuth` | `DatasetsAppsChartsSearchResponse` | |
| datasets | `datasets.appsReviewsSearch` | `datasets-apps-reviews-search` | `GET /datasets/apps-reviews/search` | `q` (query String)
`store` (query String)
`app_id` (query String)
`country` (query String)
`min_score` (query Integer)
`sort` (query String)
`page` (query Integer)
`page_size` (query Integer) | `ApiKeyAuth` | `DatasetsAppsReviewsSearchResponse` | |
| datasets | `datasets.appsSearch` | `datasets-apps-search` | `GET /datasets/apps/search` | `q` (query String)
`store` (query String)
`category` (query String)
`country` (query String)
`developer` (query String)
`free` (query Boolean)
`min_rating` (query Double)
`min_reviews` (query Integer)
`sort` (query String)
`page` (query Integer)
`page_size` (query Integer) | `ApiKeyAuth` | `DatasetsAppsSearchResponse` | |
diff --git a/openapi/public.json b/openapi/public.json
index 4ef2ec5..acda16d 100644
--- a/openapi/public.json
+++ b/openapi/public.json
@@ -8479,6 +8479,84 @@
},
"type": "object"
},
+ "datasets.AirbnbMarketFacetResponse": {
+ "properties": {
+ "dataset": {
+ "type": "string"
+ },
+ "facet": {
+ "type": "string"
+ },
+ "items": {
+ "items": {
+ "$ref": "#/definitions/es.AirbnbMarketFacetItem"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "datasets.AirbnbMarketNearbyResponse": {
+ "properties": {
+ "cells": {
+ "items": {
+ "$ref": "#/definitions/es.AirbnbDensityCell"
+ },
+ "type": "array"
+ },
+ "dataset": {
+ "type": "string"
+ },
+ "lat": {
+ "type": "number"
+ },
+ "lon": {
+ "type": "number"
+ },
+ "precision": {
+ "type": "integer"
+ },
+ "radius_m": {
+ "type": "integer"
+ },
+ "total": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "datasets.AirbnbMarketSearchResponse": {
+ "properties": {
+ "dataset": {
+ "type": "string"
+ },
+ "group_by": {
+ "type": "string"
+ },
+ "items": {
+ "items": {
+ "$ref": "#/definitions/es.AirbnbMarketCell"
+ },
+ "type": "array"
+ },
+ "min_listings": {
+ "type": "integer"
+ },
+ "page": {
+ "type": "integer"
+ },
+ "page_size": {
+ "type": "integer"
+ },
+ "sort": {
+ "type": "string"
+ },
+ "total": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"datasets.AppsSearchResponse": {
"properties": {
"dataset": {
@@ -8703,6 +8781,70 @@
},
"type": "object"
},
+ "datasets.airbnbMarketResponseDoc": {
+ "properties": {
+ "code": {
+ "example": 200,
+ "type": "integer"
+ },
+ "data": {
+ "$ref": "#/definitions/es.AirbnbMarketDetail"
+ },
+ "msg": {
+ "example": "OK",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "datasets.airbnbMarketsFacetResponseDoc": {
+ "properties": {
+ "code": {
+ "example": 200,
+ "type": "integer"
+ },
+ "data": {
+ "$ref": "#/definitions/datasets.AirbnbMarketFacetResponse"
+ },
+ "msg": {
+ "example": "OK",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "datasets.airbnbMarketsNearbyResponseDoc": {
+ "properties": {
+ "code": {
+ "example": 200,
+ "type": "integer"
+ },
+ "data": {
+ "$ref": "#/definitions/datasets.AirbnbMarketNearbyResponse"
+ },
+ "msg": {
+ "example": "OK",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "datasets.airbnbMarketsSearchResponseDoc": {
+ "properties": {
+ "code": {
+ "example": 200,
+ "type": "integer"
+ },
+ "data": {
+ "$ref": "#/definitions/datasets.AirbnbMarketSearchResponse"
+ },
+ "msg": {
+ "example": "OK",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"datasets.appsSearchResponseDoc": {
"properties": {
"code": {
@@ -9538,6 +9680,144 @@
},
"type": "object"
},
+ "es.AirbnbDensityCell": {
+ "properties": {
+ "geohash": {
+ "type": "string"
+ },
+ "lat": {
+ "type": "number"
+ },
+ "listings": {
+ "type": "integer"
+ },
+ "lon": {
+ "type": "number"
+ },
+ "superhost_listings": {
+ "type": "integer"
+ },
+ "superhost_pct": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "es.AirbnbGeoBounds": {
+ "properties": {
+ "bottom_right": {
+ "$ref": "#/definitions/es.GeoPoint"
+ },
+ "top_left": {
+ "$ref": "#/definitions/es.GeoPoint"
+ }
+ },
+ "type": "object"
+ },
+ "es.AirbnbMarketCell": {
+ "properties": {
+ "avg_rating": {
+ "type": "number"
+ },
+ "avg_review_count": {
+ "type": "number"
+ },
+ "key": {
+ "type": "string"
+ },
+ "last_seen": {
+ "type": "string"
+ },
+ "listings": {
+ "type": "integer"
+ },
+ "rated_listings": {
+ "type": "integer"
+ },
+ "superhost_listings": {
+ "type": "integer"
+ },
+ "superhost_pct": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "es.AirbnbMarketDetail": {
+ "properties": {
+ "avg_rating": {
+ "type": "number"
+ },
+ "avg_review_count": {
+ "type": "number"
+ },
+ "bounds": {
+ "$ref": "#/definitions/es.AirbnbGeoBounds"
+ },
+ "country": {
+ "type": "string"
+ },
+ "currencies": {
+ "items": {
+ "$ref": "#/definitions/es.AirbnbPriceStats"
+ },
+ "type": "array"
+ },
+ "last_seen": {
+ "type": "string"
+ },
+ "listings": {
+ "type": "integer"
+ },
+ "metros": {
+ "items": {
+ "$ref": "#/definitions/es.AirbnbMarketCell"
+ },
+ "type": "array"
+ },
+ "rated_listings": {
+ "type": "integer"
+ },
+ "superhost_listings": {
+ "type": "integer"
+ },
+ "superhost_pct": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "es.AirbnbMarketFacetItem": {
+ "properties": {
+ "count": {
+ "type": "integer"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "es.AirbnbPriceStats": {
+ "properties": {
+ "currency": {
+ "type": "string"
+ },
+ "listings": {
+ "type": "integer"
+ },
+ "p25": {
+ "type": "number"
+ },
+ "p50": {
+ "type": "number"
+ },
+ "p75": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
"es.AppRecord": {
"properties": {
"android_max_installs": {
@@ -48059,6 +48339,393 @@
]
}
},
+ "/datasets/airbnb-markets/facets": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns suppressed distribution counts over the Airbnb markets dataset, honoring the same filters as search. Facet enum: `country`, `market`, `currency`, `superhost`, `rating_band`, `review_band`. group_by enum: `country`, `market`.",
+ "operationId": "datasets-airbnb-markets-facets",
+ "parameters": [
+ {
+ "description": "Facet enum: country, market, currency, superhost, rating_band, review_band",
+ "in": "query",
+ "name": "facet",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Aggregate cell dimension enum: country, market. Defaults to country",
+ "in": "query",
+ "name": "group_by",
+ "type": "string"
+ },
+ {
+ "description": "Exact ISO-3166-1 alpha-2 country filter, e.g. FR",
+ "in": "query",
+ "name": "country",
+ "type": "string"
+ },
+ {
+ "description": "Exact metro-market filter, max 128 characters",
+ "in": "query",
+ "name": "market",
+ "type": "string"
+ },
+ {
+ "description": "Count only Superhost listings",
+ "in": "query",
+ "name": "superhost",
+ "type": "boolean"
+ },
+ {
+ "description": "Minimum listing rating, from 0 through 5",
+ "in": "query",
+ "name": "min_rating",
+ "type": "number"
+ },
+ {
+ "description": "Minimum listing review count, 0 or greater",
+ "in": "query",
+ "name": "min_review_count",
+ "type": "integer"
+ },
+ {
+ "description": "Freshness filter, an ISO-8601 date (YYYY-MM-DD)",
+ "in": "query",
+ "name": "active_since",
+ "type": "string"
+ },
+ {
+ "description": "Minimum listings per bucket; raises the small-cell suppression floor",
+ "in": "query",
+ "name": "min_listings",
+ "type": "integer"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/datasets.airbnbMarketsFacetResponseDoc"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "500": {
+ "description": "Internal Server Error",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Facet the Airbnb markets dataset",
+ "tags": [
+ "Datasets"
+ ]
+ }
+ },
+ "/datasets/airbnb-markets/items/{country}": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns one country's full aggregate Airbnb market profile from dataset id enum value `airbnb-markets` — headline supply, Superhost share, ratings, its top metros, bounding box and per-currency nightly-price percentiles. Aggregate-only. Returns 404 for a country below the suppression floor.",
+ "operationId": "datasets-airbnb-markets-item",
+ "parameters": [
+ {
+ "description": "ISO-3166-1 alpha-2 country code, e.g. FR",
+ "in": "path",
+ "name": "country",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/datasets.airbnbMarketResponseDoc"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "500": {
+ "description": "Internal Server Error",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Get an Airbnb market from the dataset",
+ "tags": [
+ "Datasets"
+ ]
+ }
+ },
+ "/datasets/airbnb-markets/nearby": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "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.",
+ "operationId": "datasets-airbnb-markets-nearby",
+ "parameters": [
+ {
+ "description": "Center latitude, from -90 through 90",
+ "in": "query",
+ "name": "lat",
+ "required": true,
+ "type": "number"
+ },
+ {
+ "description": "Center longitude, from -180 through 180",
+ "in": "query",
+ "name": "lon",
+ "required": true,
+ "type": "number"
+ },
+ {
+ "description": "Search radius in meters, from 1 through 50000",
+ "in": "query",
+ "name": "radius_m",
+ "required": true,
+ "type": "integer"
+ },
+ {
+ "description": "Geohash precision, from 1 through 12; defaults to a value derived from the radius",
+ "in": "query",
+ "name": "precision",
+ "type": "integer"
+ },
+ {
+ "description": "Minimum listings per cell; raises the small-cell suppression floor",
+ "in": "query",
+ "name": "min_listings",
+ "type": "integer"
+ },
+ {
+ "description": "Exact ISO-3166-1 alpha-2 country filter, e.g. US",
+ "in": "query",
+ "name": "country",
+ "type": "string"
+ },
+ {
+ "description": "Count only Superhost listings",
+ "in": "query",
+ "name": "superhost",
+ "type": "boolean"
+ },
+ {
+ "description": "Minimum listing rating, from 0 through 5",
+ "in": "query",
+ "name": "min_rating",
+ "type": "number"
+ },
+ {
+ "description": "Freshness filter, an ISO-8601 date (YYYY-MM-DD)",
+ "in": "query",
+ "name": "active_since",
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/datasets.airbnbMarketsNearbyResponseDoc"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "500": {
+ "description": "Internal Server Error",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Airbnb market density near a coordinate",
+ "tags": [
+ "Datasets"
+ ]
+ }
+ },
+ "/datasets/airbnb-markets/search": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "Returns aggregate Airbnb short-term-rental market rollups from the dataset id enum value `airbnb-markets`. Aggregate-only: each row is a market cell (a country or a metro), never an individual listing. Thin cells are suppressed. group_by enum: `country`, `market`. Sort enum: `listings_desc`, `superhost_pct_desc`, `rating_desc`, `key_asc`.",
+ "operationId": "datasets-airbnb-markets-search",
+ "parameters": [
+ {
+ "description": "Aggregate cell dimension enum: country, market. Defaults to country",
+ "in": "query",
+ "name": "group_by",
+ "type": "string"
+ },
+ {
+ "description": "Exact ISO-3166-1 alpha-2 country filter, e.g. FR",
+ "in": "query",
+ "name": "country",
+ "type": "string"
+ },
+ {
+ "description": "Exact metro-market filter, e.g. Paris, max 128 characters",
+ "in": "query",
+ "name": "market",
+ "type": "string"
+ },
+ {
+ "description": "Count only Superhost listings",
+ "in": "query",
+ "name": "superhost",
+ "type": "boolean"
+ },
+ {
+ "description": "Minimum listing rating, from 0 through 5",
+ "in": "query",
+ "name": "min_rating",
+ "type": "number"
+ },
+ {
+ "description": "Minimum listing review count, 0 or greater",
+ "in": "query",
+ "name": "min_review_count",
+ "type": "integer"
+ },
+ {
+ "description": "Freshness filter, an ISO-8601 date (YYYY-MM-DD); only listings last seen on or after it are counted",
+ "in": "query",
+ "name": "active_since",
+ "type": "string"
+ },
+ {
+ "description": "Minimum listings per cell; raises the small-cell suppression floor (never lowered below the built-in minimum)",
+ "in": "query",
+ "name": "min_listings",
+ "type": "integer"
+ },
+ {
+ "description": "Sort enum: listings_desc, superhost_pct_desc, rating_desc, key_asc",
+ "in": "query",
+ "name": "sort",
+ "type": "string"
+ },
+ {
+ "description": "Page number, defaults to 1",
+ "in": "query",
+ "name": "page",
+ "type": "integer"
+ },
+ {
+ "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000",
+ "in": "query",
+ "name": "page_size",
+ "type": "integer"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/datasets.airbnbMarketsSearchResponseDoc"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ },
+ "500": {
+ "description": "Internal Server Error",
+ "schema": {
+ "$ref": "#/definitions/app.Response"
+ }
+ }
+ },
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "summary": "Search the Airbnb markets dataset",
+ "tags": [
+ "Datasets"
+ ]
+ }
+ },
"/datasets/apps-charts/search": {
"get": {
"consumes": [
diff --git a/pom.xml b/pom.xml
index fba2452..e067c85 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
net.crawlora
crawlora-sdk
- 1.9.0-sdk.1
+ 1.10.0-sdk.1
jar
Crawlora Java SDK
diff --git a/src/main/java/net/crawlora/OperationId.java b/src/main/java/net/crawlora/OperationId.java
index 070be0d..e9cab52 100644
--- a/src/main/java/net/crawlora/OperationId.java
+++ b/src/main/java/net/crawlora/OperationId.java
@@ -92,6 +92,10 @@ private OperationId() {}
public static final String COIN_GECKO_TOKEN_UNLOCKS = "coingecko-token-unlocks";
public static final String COIN_GECKO_TREASURIES = "coingecko-treasuries";
public static final String COIN_GECKO_TRENDING = "coingecko-trending";
+ public static final String DATASETS_AIRBNB_MARKETS_FACETS = "datasets-airbnb-markets-facets";
+ public static final String DATASETS_AIRBNB_MARKETS_ITEM = "datasets-airbnb-markets-item";
+ public static final String DATASETS_AIRBNB_MARKETS_NEARBY = "datasets-airbnb-markets-nearby";
+ public static final String DATASETS_AIRBNB_MARKETS_SEARCH = "datasets-airbnb-markets-search";
public static final String DATASETS_APPS_CHARTS_SEARCH = "datasets-apps-charts-search";
public static final String DATASETS_APPS_REVIEWS_SEARCH = "datasets-apps-reviews-search";
public static final String DATASETS_APPS_SEARCH = "datasets-apps-search";
diff --git a/src/main/java/net/crawlora/Operations.java b/src/main/java/net/crawlora/Operations.java
index a11b6d9..46c7888 100644
--- a/src/main/java/net/crawlora/Operations.java
+++ b/src/main/java/net/crawlora/Operations.java
@@ -15,7 +15,7 @@ public final class Operations {
private Operations() {}
/** Total number of operations in the contract. */
- public static final int OPERATION_COUNT = 525;
+ public static final int OPERATION_COUNT = 529;
/** Immutable map of operation id to its runtime metadata. */
public static final Map OPERATIONS = buildOperations();
@@ -1290,6 +1290,83 @@ private static void putOperations1(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ m.put("datasets-airbnb-markets-facets", new Operation(
+ "datasets-airbnb-markets-facets",
+ "GET",
+ "/datasets/airbnb-markets/facets",
+ List.of(),
+ List.of(
+ new QueryParam("facet", true, "string", List.of()),
+ new QueryParam("group_by", false, "string", List.of()),
+ new QueryParam("country", false, "string", List.of()),
+ new QueryParam("market", false, "string", List.of()),
+ new QueryParam("superhost", false, "boolean", List.of()),
+ new QueryParam("min_rating", false, "number", List.of()),
+ new QueryParam("min_review_count", false, "integer", List.of()),
+ new QueryParam("active_since", false, "string", List.of()),
+ new QueryParam("min_listings", false, "integer", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("datasets-airbnb-markets-item", new Operation(
+ "datasets-airbnb-markets-item",
+ "GET",
+ "/datasets/airbnb-markets/items/{country}",
+ List.of("country"),
+ List.of(),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("datasets-airbnb-markets-nearby", new Operation(
+ "datasets-airbnb-markets-nearby",
+ "GET",
+ "/datasets/airbnb-markets/nearby",
+ List.of(),
+ List.of(
+ new QueryParam("lat", true, "number", List.of()),
+ new QueryParam("lon", true, "number", List.of()),
+ new QueryParam("radius_m", true, "integer", List.of()),
+ new QueryParam("precision", false, "integer", List.of()),
+ new QueryParam("min_listings", false, "integer", List.of()),
+ new QueryParam("country", false, "string", List.of()),
+ new QueryParam("superhost", false, "boolean", List.of()),
+ new QueryParam("min_rating", false, "number", List.of()),
+ new QueryParam("active_since", false, "string", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ false,
+ List.of()));
+ m.put("datasets-airbnb-markets-search", new Operation(
+ "datasets-airbnb-markets-search",
+ "GET",
+ "/datasets/airbnb-markets/search",
+ List.of(),
+ List.of(
+ new QueryParam("group_by", false, "string", List.of()),
+ new QueryParam("country", false, "string", List.of()),
+ new QueryParam("market", false, "string", List.of()),
+ new QueryParam("superhost", false, "boolean", List.of()),
+ new QueryParam("min_rating", false, "number", List.of()),
+ new QueryParam("min_review_count", false, "integer", List.of()),
+ new QueryParam("active_since", false, "string", List.of()),
+ new QueryParam("min_listings", false, "integer", List.of()),
+ new QueryParam("sort", false, "string", List.of()),
+ new QueryParam("page", false, "integer", List.of()),
+ new QueryParam("page_size", false, "integer", List.of())),
+ List.of(),
+ null,
+ false,
+ List.of("ApiKeyAuth"),
+ true,
+ List.of()));
m.put("datasets-apps-charts-search", new Operation(
"datasets-apps-charts-search",
"GET",
@@ -1856,6 +1933,9 @@ private static void putOperations1(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
+ }
+
+ private static void putOperations2(Map m) {
m.put("github-search-users", new Operation(
"github-search-users",
"GET",
@@ -1913,9 +1993,6 @@ private static void putOperations1(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations2(Map m) {
m.put("github-user-events", new Operation(
"github-user-events",
"GET",
@@ -2683,6 +2760,9 @@ private static void putOperations2(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations3(Map m) {
m.put("imdb-title-awards", new Operation(
"imdb-title-awards",
"GET",
@@ -2741,9 +2821,6 @@ private static void putOperations2(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations3(Map m) {
m.put("imdb-title-filming-locations", new Operation(
"imdb-title-filming-locations",
"GET",
@@ -3563,6 +3640,9 @@ private static void putOperations3(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations4(Map m) {
m.put("linkedin-product", new Operation(
"linkedin-product",
"GET",
@@ -3614,9 +3694,6 @@ private static void putOperations3(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations4(Map m) {
m.put("metaculus-project-questions", new Operation(
"metaculus-project-questions",
"GET",
@@ -4405,6 +4482,9 @@ private static void putOperations4(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations5(Map m) {
m.put("polymarket-related-tags", new Operation(
"polymarket-related-tags",
"GET",
@@ -4472,9 +4552,6 @@ private static void putOperations4(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
- }
-
- private static void putOperations5(Map m) {
m.put("polymarket-teams-by-partner", new Operation(
"polymarket-teams-by-partner",
"GET",
@@ -5276,6 +5353,9 @@ private static void putOperations5(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
+ }
+
+ private static void putOperations6(Map m) {
m.put("shop-app-categories", new Operation(
"shop-app-categories",
"GET",
@@ -5327,9 +5407,6 @@ private static void putOperations5(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations6(Map m) {
m.put("shop-app-product-shop", new Operation(
"shop-app-product-shop",
"GET",
@@ -6200,6 +6277,9 @@ private static void putOperations6(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
+ }
+
+ private static void putOperations7(Map m) {
m.put("spotify-section", new Operation(
"spotify-section",
"GET",
@@ -6260,9 +6340,6 @@ private static void putOperations6(Map m) {
List.of("ApiKeyAuth"),
false,
List.of()));
- }
-
- private static void putOperations7(Map m) {
m.put("spotify-track-similar-albums", new Operation(
"spotify-track-similar-albums",
"GET",
@@ -7086,6 +7163,9 @@ private static void putOperations7(Map m) {
List.of("ApiKeyAuth"),
true,
List.of("start")));
+ }
+
+ private static void putOperations8(Map m) {
m.put("yahoo-finance-market-status", new Operation(
"yahoo-finance-market-status",
"GET",
@@ -7138,9 +7218,6 @@ private static void putOperations7(Map m) {
List.of("ApiKeyAuth"),
true,
List.of()));
- }
-
- private static void putOperations8(Map m) {
m.put("yahoo-finance-screeners", new Operation(
"yahoo-finance-screeners",
"GET",
@@ -7878,6 +7955,10 @@ private static Map> buildGroups() {
{
Map group = new LinkedHashMap<>();
group.put("list", "datasets-list");
+ group.put("airbnbMarketsFacets", "datasets-airbnb-markets-facets");
+ group.put("airbnbMarketsItem", "datasets-airbnb-markets-item");
+ group.put("airbnbMarketsNearby", "datasets-airbnb-markets-nearby");
+ group.put("airbnbMarketsSearch", "datasets-airbnb-markets-search");
group.put("appsChartsSearch", "datasets-apps-charts-search");
group.put("appsReviewsSearch", "datasets-apps-reviews-search");
group.put("appsSearch", "datasets-apps-search");
diff --git a/src/main/java/net/crawlora/Version.java b/src/main/java/net/crawlora/Version.java
index 569e16f..0d6fa53 100644
--- a/src/main/java/net/crawlora/Version.java
+++ b/src/main/java/net/crawlora/Version.java
@@ -5,5 +5,5 @@ public final class Version {
private Version() {}
/** The released SDK version. */
- public static final String VERSION = "1.9.0-sdk.1";
+ public static final String VERSION = "1.10.0-sdk.1";
}
diff --git a/src/main/java/net/crawlora/groups/DatasetsGroup.java b/src/main/java/net/crawlora/groups/DatasetsGroup.java
index 0b55c8a..d0b9f05 100644
--- a/src/main/java/net/crawlora/groups/DatasetsGroup.java
+++ b/src/main/java/net/crawlora/groups/DatasetsGroup.java
@@ -49,6 +49,103 @@ public Object list() {
return list(Map.of(), null);
}
+ /**
+ * datasets-airbnb-markets-facets (GET /datasets/airbnb-markets/facets).
+ *
+ * @param params operation parameters
+ * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode
+ */
+ public Object airbnbMarketsFacets(Map params) {
+ return airbnbMarketsFacets(params, null);
+ }
+
+ /**
+ * datasets-airbnb-markets-facets (GET /datasets/airbnb-markets/facets). with explicit request options.
+ *
+ * @param params operation parameters
+ * @param options per-request options, or {@code null} for defaults
+ * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode
+ */
+ public Object airbnbMarketsFacets(Map params, RequestOptions options) {
+ OperationGroup.checkParams("datasets-airbnb-markets-facets", params);
+ return client.request("datasets-airbnb-markets-facets", params, options);
+ }
+
+ /**
+ * datasets-airbnb-markets-item (GET /datasets/airbnb-markets/items/{country}).
+ *
+ * @param params operation parameters
+ * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode
+ */
+ public Object airbnbMarketsItem(Map params) {
+ return airbnbMarketsItem(params, null);
+ }
+
+ /**
+ * datasets-airbnb-markets-item (GET /datasets/airbnb-markets/items/{country}). with explicit request options.
+ *
+ * @param params operation parameters
+ * @param options per-request options, or {@code null} for defaults
+ * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode
+ */
+ public Object airbnbMarketsItem(Map params, RequestOptions options) {
+ OperationGroup.checkParams("datasets-airbnb-markets-item", params);
+ return client.request("datasets-airbnb-markets-item", params, options);
+ }
+
+ /**
+ * datasets-airbnb-markets-nearby (GET /datasets/airbnb-markets/nearby).
+ *
+ * @param params operation parameters
+ * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode
+ */
+ public Object airbnbMarketsNearby(Map params) {
+ return airbnbMarketsNearby(params, null);
+ }
+
+ /**
+ * datasets-airbnb-markets-nearby (GET /datasets/airbnb-markets/nearby). with explicit request options.
+ *
+ * @param params operation parameters
+ * @param options per-request options, or {@code null} for defaults
+ * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode
+ */
+ public Object airbnbMarketsNearby(Map params, RequestOptions options) {
+ OperationGroup.checkParams("datasets-airbnb-markets-nearby", params);
+ return client.request("datasets-airbnb-markets-nearby", params, options);
+ }
+
+ /**
+ * datasets-airbnb-markets-search (GET /datasets/airbnb-markets/search).
+ *
+ * @param params operation parameters
+ * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode
+ */
+ public Object airbnbMarketsSearch(Map params) {
+ return airbnbMarketsSearch(params, null);
+ }
+
+ /**
+ * datasets-airbnb-markets-search (GET /datasets/airbnb-markets/search). with explicit request options.
+ *
+ * @param params operation parameters
+ * @param options per-request options, or {@code null} for defaults
+ * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode
+ */
+ public Object airbnbMarketsSearch(Map params, RequestOptions options) {
+ OperationGroup.checkParams("datasets-airbnb-markets-search", params);
+ return client.request("datasets-airbnb-markets-search", params, options);
+ }
+
+ /**
+ * datasets-airbnb-markets-search (GET /datasets/airbnb-markets/search). with no parameters.
+ *
+ * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode
+ */
+ public Object airbnbMarketsSearch() {
+ return airbnbMarketsSearch(Map.of(), null);
+ }
+
/**
* datasets-apps-charts-search (GET /datasets/apps-charts/search).
*