diff --git a/CHANGELOG.md b/CHANGELOG.md index 78807e0..d0f79e0 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 a226578..5e153fe 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.antibot_check` | `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.airbnb_markets_facets` | `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 bool)
`min_rating` (query Float)
`min_review_count` (query Integer)
`active_since` (query String)
`min_listings` (query Integer) | `ApiKeyAuth` | `DatasetsAirbnbMarketsFacetsResponse` | | +| datasets | `datasets.airbnb_markets_item` | `datasets-airbnb-markets-item` | `GET /datasets/airbnb-markets/items/{country}` | `country` (path String required) | `ApiKeyAuth` | `DatasetsAirbnbMarketsItemResponse` | | +| datasets | `datasets.airbnb_markets_nearby` | `datasets-airbnb-markets-nearby` | `GET /datasets/airbnb-markets/nearby` | `lat` (query Float required)
`lon` (query Float required)
`radius_m` (query Integer required)
`precision` (query Integer)
`min_listings` (query Integer)
`country` (query String)
`superhost` (query bool)
`min_rating` (query Float)
`active_since` (query String) | `ApiKeyAuth` | `DatasetsAirbnbMarketsNearbyResponse` | | +| datasets | `datasets.airbnb_markets_search` | `datasets-airbnb-markets-search` | `GET /datasets/airbnb-markets/search` | `group_by` (query String)
`country` (query String)
`market` (query String)
`superhost` (query bool)
`min_rating` (query Float)
`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.apps_charts_search` | `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.apps_reviews_search` | `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.apps_search` | `datasets-apps-search` | `GET /datasets/apps/search` | `q` (query String)
`store` (query String)
`category` (query String)
`country` (query String)
`developer` (query String)
`free` (query bool)
`min_rating` (query Float)
`min_reviews` (query Integer)
`sort` (query String)
`page` (query Integer)
`page_size` (query Integer) | `ApiKeyAuth` | `DatasetsAppsSearchResponse` | | diff --git a/lib/crawlora/operations.rb b/lib/crawlora/operations.rb index f29994e..52687d9 100644 --- a/lib/crawlora/operations.rb +++ b/lib/crawlora/operations.rb @@ -4273,6 +4273,237 @@ module Crawlora "ApiKeyAuth" ] }, + "datasets-airbnb-markets-facets" => { + "id" => "datasets-airbnb-markets-facets", + "method" => "GET", + "path" => "/datasets/airbnb-markets/facets", + "pathParams" => [], + "queryParams" => [ + { + "name" => "facet", + "in" => "query", + "type" => "string", + "required" => true + }, + { + "name" => "group_by", + "in" => "query", + "type" => "string" + }, + { + "name" => "country", + "in" => "query", + "type" => "string" + }, + { + "name" => "market", + "in" => "query", + "type" => "string" + }, + { + "name" => "superhost", + "in" => "query", + "type" => "boolean" + }, + { + "name" => "min_rating", + "in" => "query", + "type" => "number" + }, + { + "name" => "min_review_count", + "in" => "query", + "type" => "integer" + }, + { + "name" => "active_since", + "in" => "query", + "type" => "string" + }, + { + "name" => "min_listings", + "in" => "query", + "type" => "integer" + } + ], + "formParams" => [], + "bodyParam" => nil, + "bodyRequired" => false, + "consumes" => [ + "application/json" + ], + "produces" => [ + "application/json" + ], + "security" => [ + "ApiKeyAuth" + ] + }, + "datasets-airbnb-markets-item" => { + "id" => "datasets-airbnb-markets-item", + "method" => "GET", + "path" => "/datasets/airbnb-markets/items/{country}", + "pathParams" => [ + "country" + ], + "queryParams" => [], + "formParams" => [], + "bodyParam" => nil, + "bodyRequired" => false, + "consumes" => [ + "application/json" + ], + "produces" => [ + "application/json" + ], + "security" => [ + "ApiKeyAuth" + ] + }, + "datasets-airbnb-markets-nearby" => { + "id" => "datasets-airbnb-markets-nearby", + "method" => "GET", + "path" => "/datasets/airbnb-markets/nearby", + "pathParams" => [], + "queryParams" => [ + { + "name" => "lat", + "in" => "query", + "type" => "number", + "required" => true + }, + { + "name" => "lon", + "in" => "query", + "type" => "number", + "required" => true + }, + { + "name" => "radius_m", + "in" => "query", + "type" => "integer", + "required" => true + }, + { + "name" => "precision", + "in" => "query", + "type" => "integer" + }, + { + "name" => "min_listings", + "in" => "query", + "type" => "integer" + }, + { + "name" => "country", + "in" => "query", + "type" => "string" + }, + { + "name" => "superhost", + "in" => "query", + "type" => "boolean" + }, + { + "name" => "min_rating", + "in" => "query", + "type" => "number" + }, + { + "name" => "active_since", + "in" => "query", + "type" => "string" + } + ], + "formParams" => [], + "bodyParam" => nil, + "bodyRequired" => false, + "consumes" => [ + "application/json" + ], + "produces" => [ + "application/json" + ], + "security" => [ + "ApiKeyAuth" + ] + }, + "datasets-airbnb-markets-search" => { + "id" => "datasets-airbnb-markets-search", + "method" => "GET", + "path" => "/datasets/airbnb-markets/search", + "pathParams" => [], + "queryParams" => [ + { + "name" => "group_by", + "in" => "query", + "type" => "string" + }, + { + "name" => "country", + "in" => "query", + "type" => "string" + }, + { + "name" => "market", + "in" => "query", + "type" => "string" + }, + { + "name" => "superhost", + "in" => "query", + "type" => "boolean" + }, + { + "name" => "min_rating", + "in" => "query", + "type" => "number" + }, + { + "name" => "min_review_count", + "in" => "query", + "type" => "integer" + }, + { + "name" => "active_since", + "in" => "query", + "type" => "string" + }, + { + "name" => "min_listings", + "in" => "query", + "type" => "integer" + }, + { + "name" => "sort", + "in" => "query", + "type" => "string" + }, + { + "name" => "page", + "in" => "query", + "type" => "integer" + }, + { + "name" => "page_size", + "in" => "query", + "type" => "integer" + } + ], + "formParams" => [], + "bodyParam" => nil, + "bodyRequired" => false, + "consumes" => [ + "application/json" + ], + "produces" => [ + "application/json" + ], + "security" => [ + "ApiKeyAuth" + ], + "paginatable" => true + }, "datasets-apps-charts-search" => { "id" => "datasets-apps-charts-search", "method" => "GET", @@ -20368,6 +20599,10 @@ module Crawlora }, "datasets" => { "list" => "datasets-list", + "airbnb_markets_facets" => "datasets-airbnb-markets-facets", + "airbnb_markets_item" => "datasets-airbnb-markets-item", + "airbnb_markets_nearby" => "datasets-airbnb-markets-nearby", + "airbnb_markets_search" => "datasets-airbnb-markets-search", "apps_charts_search" => "datasets-apps-charts-search", "apps_reviews_search" => "datasets-apps-reviews-search", "apps_search" => "datasets-apps-search", @@ -20873,7 +21108,7 @@ module Crawlora } }.freeze - OPERATION_COUNT = 525 + OPERATION_COUNT = 529 module OperationId AIRBNB_ROOM = "airbnb-room" @@ -20959,6 +21194,10 @@ module OperationId COIN_GECKO_TOKEN_UNLOCKS = "coingecko-token-unlocks" COIN_GECKO_TREASURIES = "coingecko-treasuries" COIN_GECKO_TRENDING = "coingecko-trending" + DATASETS_AIRBNB_MARKETS_FACETS = "datasets-airbnb-markets-facets" + DATASETS_AIRBNB_MARKETS_ITEM = "datasets-airbnb-markets-item" + DATASETS_AIRBNB_MARKETS_NEARBY = "datasets-airbnb-markets-nearby" + DATASETS_AIRBNB_MARKETS_SEARCH = "datasets-airbnb-markets-search" DATASETS_APPS_CHARTS_SEARCH = "datasets-apps-charts-search" DATASETS_APPS_REVIEWS_SEARCH = "datasets-apps-reviews-search" DATASETS_APPS_SEARCH = "datasets-apps-search" diff --git a/lib/crawlora/version.rb b/lib/crawlora/version.rb index cf32911..262fab6 100644 --- a/lib/crawlora/version.rb +++ b/lib/crawlora/version.rb @@ -5,5 +5,5 @@ module Crawlora # as the Go/Java/PHP SDKs). RubyGems treats it as a prerelease and normalizes # the published gem version (the `-` becomes `.pre.`, e.g. `1.5.0.pre.sdk.N`). # Bumped across all SDK repos by the API repo's tools/sdkgen/bump_version.py. - VERSION = "1.9.0-sdk.1" + VERSION = "1.10.0-sdk.1" end 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/sig/crawlora.rbs b/sig/crawlora.rbs index 8bc74f4..de91a17 100644 --- a/sig/crawlora.rbs +++ b/sig/crawlora.rbs @@ -137,6 +137,10 @@ module Crawlora class DatasetsGroup def initialize: (Client, Hash[String, String]) -> void def list: (?_response_type: ("auto" | "json" | "text" | "stream"), ?_timeout: Float, ?_headers: Hash[String, String], **untyped) -> untyped + def airbnb_markets_facets: (?facet: String, ?group_by: String, ?country: String, ?market: String, ?superhost: bool, ?min_rating: Float, ?min_review_count: Integer, ?active_since: String, ?min_listings: Integer, ?_response_type: ("auto" | "json" | "text" | "stream"), ?_timeout: Float, ?_headers: Hash[String, String], **untyped) -> untyped + def airbnb_markets_item: (?country: String, ?_response_type: ("auto" | "json" | "text" | "stream"), ?_timeout: Float, ?_headers: Hash[String, String], **untyped) -> untyped + def airbnb_markets_nearby: (?lat: Float, ?lon: Float, ?radius_m: Integer, ?precision: Integer, ?min_listings: Integer, ?country: String, ?superhost: bool, ?min_rating: Float, ?active_since: String, ?_response_type: ("auto" | "json" | "text" | "stream"), ?_timeout: Float, ?_headers: Hash[String, String], **untyped) -> untyped + def airbnb_markets_search: (?group_by: String, ?country: String, ?market: String, ?superhost: bool, ?min_rating: Float, ?min_review_count: Integer, ?active_since: String, ?min_listings: Integer, ?sort: String, ?page: Integer, ?page_size: Integer, ?_response_type: ("auto" | "json" | "text" | "stream"), ?_timeout: Float, ?_headers: Hash[String, String], **untyped) -> untyped def apps_charts_search: (?q: String, ?store: String, ?chart_type: String, ?collection: String, ?category: String, ?country: String, ?app_id: String, ?date: String, ?sort: String, ?page: Integer, ?page_size: Integer, ?_response_type: ("auto" | "json" | "text" | "stream"), ?_timeout: Float, ?_headers: Hash[String, String], **untyped) -> untyped def apps_reviews_search: (?q: String, ?store: String, ?app_id: String, ?country: String, ?min_score: Integer, ?sort: String, ?page: Integer, ?page_size: Integer, ?_response_type: ("auto" | "json" | "text" | "stream"), ?_timeout: Float, ?_headers: Hash[String, String], **untyped) -> untyped def apps_search: (?q: String, ?store: String, ?category: String, ?country: String, ?developer: String, ?free: bool, ?min_rating: Float, ?min_reviews: Integer, ?sort: String, ?page: Integer, ?page_size: Integer, ?_response_type: ("auto" | "json" | "text" | "stream"), ?_timeout: Float, ?_headers: Hash[String, String], **untyped) -> untyped