From 60927bfc6fdae8b5f1c2bda304b17959dc159016 Mon Sep 17 00:00:00 2001 From: tonywangcn Date: Thu, 2 Jul 2026 21:30:02 +0200 Subject: [PATCH] airbnb-markets: regenerate for the aggregate Airbnb markets dataset Regenerated from the public API contract (525 to 529 operations), adding the Airbnb Markets dataset: aggregate short-term-rental market statistics rolled up by country, metro and geo cell (search, item lookup, facets, nearby density). Bumped to 1.10.0-sdk.1. --- CHANGELOG.md | 8 + docs/operations.md | 6 +- openapi/public.json | 667 ++++++++++++++++++ pom.xml | 2 +- src/main/java/net/crawlora/OperationId.java | 4 + src/main/java/net/crawlora/Operations.java | 125 +++- src/main/java/net/crawlora/Version.java | 2 +- .../net/crawlora/groups/DatasetsGroup.java | 97 +++ 8 files changed, 886 insertions(+), 25 deletions(-) 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). *