From 7436590ab3a38c69d251de73517281b91eddbac5 Mon Sep 17 00:00:00 2001 From: Tony Wang Date: Sat, 15 Aug 2026 18:18:55 +0800 Subject: [PATCH 1/2] sdk: regenerate public contract Expose the DraftKings futures endpoint and synchronize generated client metadata to the current 1190-operation public contract. --- CHANGELOG.md | 4 + docs/operations.md | 18 +- openapi/public.json | 2458 ++++++++++++++++- pom.xml | 2 +- src/main/java/net/crawlora/ClientGroups.java | 24 + src/main/java/net/crawlora/OperationId.java | 14 + src/main/java/net/crawlora/Operations.java | 334 ++- src/main/java/net/crawlora/Version.java | 2 +- .../net/crawlora/groups/BestBuyGroup.java | 87 + .../java/net/crawlora/groups/DepopGroup.java | 22 + .../net/crawlora/groups/DraftKingsGroup.java | 109 + .../crawlora/groups/GooglePatentsGroup.java | 118 + .../java/net/crawlora/groups/HMGroup.java | 53 + 13 files changed, 3085 insertions(+), 160 deletions(-) create mode 100644 src/main/java/net/crawlora/groups/BestBuyGroup.java create mode 100644 src/main/java/net/crawlora/groups/DraftKingsGroup.java create mode 100644 src/main/java/net/crawlora/groups/GooglePatentsGroup.java diff --git a/CHANGELOG.md b/CHANGELOG.md index b9978b9..29b97c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## v1.36.0-sdk.1 + +- Added DraftKings Sportsbook futures-market support and synchronized the current public API contract (1190 operations). + ## v1.35.0-sdk.1 - Added Twitch (channel profile/live status, streams by game, clips, videos, search, top games, team rosters, schedule, VOD chat replay) and SoundCloud (search, track, playlist, profile, user tracks) platform support. diff --git a/docs/operations.md b/docs/operations.md index eb6786d..499888e 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: `1176` +Total operations: `1190` | Group | SDK method | Operation ID | HTTP | Params | Auth | Response | Notes | | --- | --- | --- | --- | --- | --- | --- | --- | @@ -72,6 +72,9 @@ Total operations: `1176` | autotrader | `autotrader.dealer` | `autotrader-dealer` | `GET /autotrader/dealer/{id}` | `id` (path String required) | `ApiKeyAuth` | `AutotraderDealerResponse` | | | autotrader | `autotrader.search` | `autotrader-search` | `GET /autotrader/search` | `query` (query String)
`zip` (query String)
`radius` (query Integer)
`make` (query String)
`model` (query String)
`trim` (query String)
`condition` (query String)
`body_style` (query String)
`seller_type` (query String)
`min_year` (query Integer)
`max_year` (query Integer)
`min_price` (query Integer)
`max_price` (query Integer)
`max_mileage` (query Integer)
`page` (query Integer) | `ApiKeyAuth` | `AutotraderSearchResponse` | | | autotrader | `autotrader.vehicle` | `autotrader-vehicle` | `GET /autotrader/vehicle/{id}` | `id` (path String required) | `ApiKeyAuth` | `AutotraderVehicleResponse` | | +| bestBuy | `bestBuy.bestbuyCategory` | `bestbuy-category` | `GET /bestbuy/category` | `category_id` (query String required) | `ApiKeyAuth` | `BestBuyBestbuyCategoryResponse` | | +| bestBuy | `bestBuy.bestbuyProduct` | `bestbuy-product` | `GET /bestbuy/product` | `sku` (query String required) | `ApiKeyAuth` | `BestBuyBestbuyProductResponse` | | +| bestBuy | `bestBuy.bestbuyProductReviews` | `bestbuy-product-reviews` | `GET /bestbuy/product/reviews` | `sku` (query String required) | `ApiKeyAuth` | `BestBuyBestbuyProductReviewsResponse` | | | billing | `billing.me` | `billing-me` | `GET /billing/me` | none | `ApiKeyAuth` | `BillingMeResponse` | | | billing | `billing.meCheckout` | `billing-me-checkout` | `POST /billing/me/checkout` | `request` (body String required) | `ApiKeyAuth` | `BillingMeCheckoutResponse` | | | billing | `billing.meEvents` | `billing-me-events` | `GET /billing/me/events` | `limit` (query Integer)
`from` (query String)
`to` (query String)
`endpoint` (query String)
`request_id` (query String)
`event_status` (query String)
`billable` (query Boolean) | `ApiKeyAuth` | `BillingMeEventsResponse` | | @@ -297,7 +300,8 @@ Total operations: `1176` | datasets | `datasets.xUsersSearch` | `datasets-x-users-search` | `GET /datasets/x-users/search` | `q` (query String)
`username` (query String)
`source_tier` (query String)
`is_blue_verified` (query Boolean)
`has_bio` (query Boolean)
`has_external_url` (query Boolean)
`min_followers` (query Integer)
`max_followers` (query Integer)
`min_ratio` (query Double)
`max_ratio` (query Double)
`created_after` (query String)
`created_before` (query String)
`crawled_after` (query String)
`crawled_before` (query String)
`sort` (query String)
`page` (query Integer)
`page_size` (query Integer) | `ApiKeyAuth` | `DatasetsXUsersSearchResponse` | | | depop | `depop.categories` | `depop-categories` | `GET /depop/categories` | none | `ApiKeyAuth` | `DepopCategoriesResponse` | | | depop | `depop.item` | `depop-item` | `GET /depop/item/{slug}` | `slug` (path String required) | `ApiKeyAuth` | `DepopItemResponse` | | -| depop | `depop.search` | `depop-search` | `GET /depop/search` | `query` (query String required)
`price_min` (query Double)
`price_max` (query Double)
`condition` (query String)
`colours` (query String)
`on_sale` (query Boolean)
`sort` (query String)
`category` (query String)
`subcategory` (query String)
`gender` (query String)
`brand_ids` (query String)
`after` (query String) | `ApiKeyAuth` | `DepopSearchResponse` | | +| depop | `depop.itemSimilar` | `depop-item-similar` | `GET /depop/item/{slug}/similar` | `slug` (path String required)
`limit` (query Integer)
`after` (query String) | `ApiKeyAuth` | `DepopItemSimilarResponse` | | +| depop | `depop.search` | `depop-search` | `GET /depop/search` | `query` (query String required)
`price_min` (query Double)
`price_max` (query Double)
`condition` (query String)
`colours` (query String)
`on_sale` (query Boolean)
`sort` (query String)
`category` (query String)
`subcategory` (query String)
`gender` (query String)
`is_kids` (query Boolean)
`brand_ids` (query String)
`after` (query String) | `ApiKeyAuth` | `DepopSearchResponse` | | | depop | `depop.shop` | `depop-shop` | `GET /depop/shop/{username}` | `username` (path String required)
`price_min` (query Double)
`price_max` (query Double)
`condition` (query String)
`colours` (query String)
`on_sale` (query Boolean)
`sort` (query String)
`category` (query String)
`subcategory` (query String)
`gender` (query String) | `ApiKeyAuth` | `DepopShopResponse` | | | discogs | `discogs.artist` | `discogs-artist` | `GET /discogs/artist/{id}` | `id` (path String required) | `ApiKeyAuth` | `DiscogsArtistResponse` | | | discogs | `discogs.artistReleases` | `discogs-artist-releases` | `GET /discogs/artist/{id}/releases` | `id` (path String required)
`page` (query Integer)
`per_page` (query Integer) | `ApiKeyAuth` | `DiscogsArtistReleasesResponse` | | @@ -318,6 +322,10 @@ Total operations: `1176` | doorDash | `doorDash.doordashStoreItem` | `doordash-store-item` | `GET /doordash/store/{store_id}/item/{item_id}` | `store_id` (path String required)
`item_id` (path String required)
`latitude` (query Double required)
`longitude` (query Double required) | `ApiKeyAuth` | `DoorDashDoordashStoreItemResponse` | | | doorDash | `doorDash.doordashStoreMenu` | `doordash-store-menu` | `GET /doordash/store/{store_id}/menu` | `store_id` (path String required)
`latitude` (query Double required)
`longitude` (query Double required) | `ApiKeyAuth` | `DoorDashDoordashStoreMenuResponse` | | | doorDash | `doorDash.doordashStoreReviews` | `doordash-store-reviews` | `GET /doordash/store/{store_id}/reviews` | `store_id` (path String required)
`latitude` (query Double required)
`longitude` (query Double required) | `ApiKeyAuth` | `DoorDashDoordashStoreReviewsResponse` | | +| draftKings | `draftKings.draftkingsEvent` | `draftkings-event` | `GET /draftkings/event` | `event_id` (query String required) | `ApiKeyAuth` | `DraftKingsDraftkingsEventResponse` | | +| draftKings | `draftKings.draftkingsEventMarkets` | `draftkings-event-markets` | `GET /draftkings/event-markets` | `event_id` (query String required)
`subcategory_id` (query String required) | `ApiKeyAuth` | `DraftKingsDraftkingsEventMarketsResponse` | | +| draftKings | `draftKings.draftkingsFutures` | `draftkings-futures` | `GET /draftkings/futures` | `league_id` (query String required)
`subcategory_id` (query String required) | `ApiKeyAuth` | `DraftKingsDraftkingsFuturesResponse` | | +| draftKings | `draftKings.draftkingsOdds` | `draftkings-odds` | `GET /draftkings/odds` | `league_id` (query String required) | `ApiKeyAuth` | `DraftKingsDraftkingsOddsResponse` | | | duckDuckGoSearch | `duckDuckGoSearch.duckduckgoImage` | `duckduckgo-image` | `GET /duckduckgo/image` | `q` (query String required)
`page` (query Integer)
`region` (query String) | `ApiKeyAuth` | `DuckDuckGoSearchDuckduckgoImageResponse` | | | duckDuckGoSearch | `duckDuckGoSearch.duckduckgoNews` | `duckduckgo-news` | `GET /duckduckgo/news` | `q` (query String required)
`page` (query Integer)
`region` (query String) | `ApiKeyAuth` | `DuckDuckGoSearchDuckduckgoNewsResponse` | | | duckDuckGoSearch | `duckDuckGoSearch.duckduckgoSearch` | `duckduckgo-search` | `GET /duckduckgo/search` | `q` (query String required)
`page` (query Integer)
`region` (query String)
`time_range` (query String)
`safe_search` (query String) | `ApiKeyAuth` | `DuckDuckGoSearchDuckduckgoSearchResponse` | | @@ -433,6 +441,10 @@ Total operations: `1176` | google | `google.trendsTrending` | `google-trends-trending` | `GET /google/trends/trending` | `geo` (query String)
`hl` (query String)
`tz` (query Integer)
`window` (query String)
`time_range` (query String)
`category` (query String)
`status` (query String)
`sort_by` (query String)
`limit` (query Integer) | `ApiKeyAuth` | `GoogleTrendsTrendingResponse` | | | google | `google.trendsTrendingDetail` | `google-trends-trending-detail` | `POST /google/trends/trending/detail` | `request` (body String required) | `ApiKeyAuth` | `GoogleTrendsTrendingDetailResponse` | | | google | `google.videos` | `google-videos` | `GET /google/videos` | `q` (query String required)
`page` (query Integer)
`count` (query Integer)
`country` (query String)
`lang` (query String) | `ApiKeyAuth` | `GoogleVideosResponse` | | +| googlePatents | `googlePatents.googlepatentsCoverage` | `googlepatents-coverage` | `GET /googlepatents/coverage` | none | `ApiKeyAuth` | `GooglePatentsGooglepatentsCoverageResponse` | | +| googlePatents | `googlePatents.googlepatentsDetail` | `googlepatents-detail` | `GET /googlepatents/detail` | `number` (query String required)
`lang` (query String) | `ApiKeyAuth` | `GooglePatentsGooglepatentsDetailResponse` | | +| googlePatents | `googlePatents.googlepatentsSearch` | `googlepatents-search` | `GET /googlepatents/search` | `q` (query String required)
`inventor` (query String)
`assignee` (query String)
`country` (query String)
`status` (query String)
`type` (query String)
`language` (query String)
`date_field` (query String)
`before` (query String)
`after` (query String)
`sort` (query String)
`num` (query Integer)
`page` (query Integer) | `ApiKeyAuth` | `GooglePatentsGooglepatentsSearchResponse` | | +| googlePatents | `googlePatents.googlepatentsSuggest` | `googlepatents-suggest` | `GET /googlepatents/suggest` | `field` (query String required)
`value` (query String required) | `ApiKeyAuth` | `GooglePatentsGooglepatentsSuggestResponse` | | | googlePlay | `googlePlay.app` | `googleplay-app` | `GET /googleplay/app` | `app_id` (query String required)
`country` (query String)
`lang` (query String) | `ApiKeyAuth` | `GooglePlayAppResponse` | | | googlePlay | `googlePlay.categories` | `googleplay-categories` | `GET /googleplay/categories` | `country` (query String)
`lang` (query String) | `ApiKeyAuth` | `GooglePlayCategoriesResponse` | | | googlePlay | `googlePlay.datasafety` | `googleplay-datasafety` | `GET /googleplay/datasafety` | `app_id` (query String required)
`lang` (query String) | `ApiKeyAuth` | `GooglePlayDatasafetyResponse` | | @@ -447,7 +459,9 @@ Total operations: `1176` | hM | `hM.hmCategories` | `hm-categories` | `GET /hm/categories` | `department` (query String) | `ApiKeyAuth` | `HMHmCategoriesResponse` | | | hM | `hM.hmListing` | `hm-listing` | `GET /hm/listing` | `category_id` (query String required)
`page` (query Integer)
`page_size` (query Integer)
`sort` (query String)
`is_new` (query Boolean) | `ApiKeyAuth` | `HMHmListingResponse` | | | hM | `hM.hmProduct` | `hm-product` | `GET /hm/product/{product_id}` | `product_id` (path String required) | `ApiKeyAuth` | `HMHmProductResponse` | | +| hM | `hM.hmProductRelated` | `hm-product-related` | `GET /hm/product/{product_id}/related` | `product_id` (path String required) | `ApiKeyAuth` | `HMHmProductRelatedResponse` | | | hM | `hM.hmSearch` | `hm-search` | `GET /hm/search` | `query` (query String required)
`page` (query Integer)
`page_size` (query Integer) | `ApiKeyAuth` | `HMHmSearchResponse` | | +| hM | `hM.hmSearchSuggestions` | `hm-search-suggestions` | `GET /hm/search/suggestions` | `query` (query String) | `ApiKeyAuth` | `HMHmSearchSuggestionsResponse` | | | hM | `hM.hmStores` | `hm-stores` | `GET /hm/stores` | `search` (query String)
`lat` (query Double)
`lng` (query Double)
`radius_meters` (query Integer) | `ApiKeyAuth` | `HMHmStoresResponse` | | | imdb | `imdb.name` | `imdb-name` | `GET /imdb/name` | `id` (query String)
`url` (query String) | `ApiKeyAuth` | `ImdbNameResponse` | | | imdb | `imdb.nameAwards` | `imdb-name-awards` | `GET /imdb/name/awards` | `id` (query String)
`url` (query String) | `ApiKeyAuth` | `ImdbNameAwardsResponse` | | diff --git a/openapi/public.json b/openapi/public.json index d4a3ff5..a73574d 100644 --- a/openapi/public.json +++ b/openapi/public.json @@ -5276,6 +5276,281 @@ }, "type": "object" }, + "bestbuy.Breadcrumb": { + "properties": { + "name": { + "example": "Laptops", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.CategoryProduct": { + "properties": { + "image_url": { + "type": "string" + }, + "price": { + "example": 799.99, + "type": "number" + }, + "rating": { + "example": 4.6, + "type": "number" + }, + "review_count": { + "example": 28, + "type": "integer" + }, + "sku": { + "example": "6673590", + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.CategoryResponse": { + "properties": { + "category_id": { + "example": "pcmcat138500050001", + "type": "string" + }, + "count": { + "example": 24, + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "products": { + "items": { + "$ref": "#/definitions/bestbuy.CategoryProduct" + }, + "type": "array" + }, + "source_url": { + "type": "string" + }, + "total": { + "example": 6286, + "type": "integer" + } + }, + "type": "object" + }, + "bestbuy.Product": { + "properties": { + "availability": { + "example": "InStock", + "type": "string" + }, + "brand": { + "example": "ASUS", + "type": "string" + }, + "breadcrumbs": { + "items": { + "$ref": "#/definitions/bestbuy.Breadcrumb" + }, + "type": "array" + }, + "color": { + "type": "string" + }, + "condition": { + "example": "NewCondition", + "type": "string" + }, + "currency_code": { + "example": "USD", + "type": "string" + }, + "description": { + "type": "string" + }, + "images": { + "items": { + "type": "string" + }, + "type": "array" + }, + "model": { + "type": "string" + }, + "name": { + "type": "string" + }, + "price": { + "example": 4399.99, + "type": "number" + }, + "product_id": { + "example": "JJGHGSJZR6", + "type": "string" + }, + "rating": { + "example": 4.6, + "type": "number" + }, + "review_count": { + "example": 28, + "type": "integer" + }, + "sku": { + "example": "6673590", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.ProductResponse": { + "properties": { + "fetched_at": { + "type": "string" + }, + "product": { + "$ref": "#/definitions/bestbuy.Product" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.ProductReviewsResponse": { + "properties": { + "count": { + "example": 20, + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "rating": { + "example": 4.6, + "type": "number" + }, + "review_count": { + "example": 28, + "type": "integer" + }, + "reviews": { + "items": { + "$ref": "#/definitions/bestbuy.Review" + }, + "type": "array" + }, + "sku": { + "example": "6673590", + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.Review": { + "properties": { + "author": { + "example": "nhim", + "type": "string" + }, + "helpful": { + "type": "integer" + }, + "posted": { + "example": "Posted 3 days ago", + "type": "string" + }, + "rating": { + "example": 5, + "type": "number" + }, + "recommended": { + "type": "boolean" + }, + "tags": { + "example": [ + "Verified Purchaser" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "text": { + "type": "string" + }, + "title": { + "type": "string" + }, + "unhelpful": { + "type": "integer" + } + }, + "type": "object" + }, + "bestbuy.categoryResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/bestbuy.CategoryResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.productResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/bestbuy.ProductResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.productReviewsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/bestbuy.ProductReviewsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "billing.billingEndpointLedgerDoc": { "properties": { "charged_requests": { @@ -20271,6 +20546,10 @@ "id": { "type": "string" }, + "like_count": { + "description": "LikeCount is the listing's like count. Depop's search API only\nincludes this field when the request asks for it -- searchURL always\nrequests it (include_like_count=true), so this is populated on every\nsearch result. Confirmed live 2026-08-15 (see notes/depop-maintenance.md).", + "type": "integer" + }, "location": { "type": "string" }, @@ -20416,6 +20695,24 @@ }, "type": "object" }, + "depop.SimilarItemsResponse": { + "properties": { + "has_more": { + "description": "HasMore indicates additional results exist beyond this page. When\ntrue, NextCursor can be passed as the next request's After field.", + "type": "boolean" + }, + "items": { + "items": { + "$ref": "#/definitions/depop.ItemSummary" + }, + "type": "array" + }, + "next_cursor": { + "type": "string" + } + }, + "type": "object" + }, "depop.Subcategory": { "properties": { "name": { @@ -20476,6 +20773,22 @@ }, "type": "object" }, + "depop.similarItemsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/depop.SimilarItemsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "diagnostics.AntibotCheckRequest": { "properties": { "fast": { @@ -22142,6 +22455,298 @@ }, "type": "object" }, + "draftkings.Event": { + "properties": { + "id": { + "type": "string" + }, + "markets": { + "items": { + "$ref": "#/definitions/draftkings.Market" + }, + "type": "array" + }, + "name": { + "example": "CAR Panthers @ BUF Bills", + "type": "string" + }, + "participants": { + "items": { + "$ref": "#/definitions/draftkings.Participant" + }, + "type": "array" + }, + "start_time": { + "type": "string" + }, + "status": { + "example": "NOT_STARTED", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.EventMarketsResponse": { + "properties": { + "count": { + "type": "integer" + }, + "event_id": { + "type": "string" + }, + "fetched_at": { + "type": "string" + }, + "markets": { + "items": { + "$ref": "#/definitions/draftkings.Market" + }, + "type": "array" + }, + "source_url": { + "type": "string" + }, + "subcategory_id": { + "type": "string" + } + }, + "type": "object" + }, + "draftkings.EventResponse": { + "properties": { + "fetched_at": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "example": "CAR Panthers @ BUF Bills", + "type": "string" + }, + "participants": { + "items": { + "$ref": "#/definitions/draftkings.Participant" + }, + "type": "array" + }, + "source_url": { + "type": "string" + }, + "start_time": { + "type": "string" + }, + "status": { + "example": "NOT_STARTED", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.FuturesResponse": { + "properties": { + "count": { + "type": "integer" + }, + "events": { + "items": { + "$ref": "#/definitions/draftkings.Event" + }, + "type": "array" + }, + "fetched_at": { + "type": "string" + }, + "league": { + "example": "MLB", + "type": "string" + }, + "league_id": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "sport": { + "example": "Baseball", + "type": "string" + }, + "subcategory_id": { + "type": "string" + } + }, + "type": "object" + }, + "draftkings.Market": { + "properties": { + "id": { + "type": "string" + }, + "selections": { + "items": { + "$ref": "#/definitions/draftkings.Selection" + }, + "type": "array" + }, + "subcategory_id": { + "example": "4519", + "type": "string" + }, + "type": { + "example": "Moneyline", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.Odds": { + "properties": { + "american": { + "example": "+130", + "type": "string" + }, + "decimal": { + "example": "2.30", + "type": "string" + }, + "fractional": { + "example": "13/10", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.OddsResponse": { + "properties": { + "count": { + "type": "integer" + }, + "events": { + "items": { + "$ref": "#/definitions/draftkings.Event" + }, + "type": "array" + }, + "fetched_at": { + "type": "string" + }, + "league": { + "example": "NFL", + "type": "string" + }, + "league_id": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "sport": { + "example": "Football", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.Participant": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "example": "BUF Bills", + "type": "string" + }, + "role": { + "example": "Home", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.Selection": { + "properties": { + "label": { + "example": "CAR Panthers", + "type": "string" + }, + "odds": { + "$ref": "#/definitions/draftkings.Odds" + }, + "outcome_type": { + "example": "Away", + "type": "string" + }, + "points": { + "example": 3, + "type": "number" + } + }, + "type": "object" + }, + "draftkings.eventMarketsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/draftkings.EventMarketsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.eventResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/draftkings.EventResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.futuresResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/draftkings.FuturesResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.oddsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/draftkings.OddsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "duckduckgo.ImageResponse": { "properties": { "pagination": { @@ -34208,6 +34813,509 @@ }, "type": "object" }, + "googlepatents.CitedPatent": { + "properties": { + "assignee": { + "example": "Netzsch Maschinenfabrik", + "type": "string" + }, + "priority_date": { + "example": "1985-12-27", + "type": "string" + }, + "publication_date": { + "example": "1987-05-19", + "type": "string" + }, + "publication_number": { + "example": "US4665582A", + "type": "string" + }, + "title": { + "example": "Apparatus for shaking foundry moulds in a casting installation", + "type": "string" + } + }, + "type": "object" + }, + "googlepatents.Classification": { + "properties": { + "code": { + "example": "A47L9/00", + "type": "string" + }, + "description": { + "example": "Details or accessories of suction cleaners", + "type": "string" + }, + "is_cpc": { + "example": true, + "type": "boolean" + } + }, + "type": "object" + }, + "googlepatents.CountryStatus": { + "properties": { + "country_code": { + "example": "US", + "type": "string" + }, + "state": { + "example": "ACTIVE", + "type": "string" + } + }, + "type": "object" + }, + "googlepatents.CoverageCountry": { + "properties": { + "country_code": { + "example": "US", + "type": "string" + }, + "years": { + "items": { + "$ref": "#/definitions/googlepatents.CoverageYear" + }, + "type": "array" + } + }, + "type": "object" + }, + "googlepatents.CoverageResponse": { + "properties": { + "countries": { + "items": { + "$ref": "#/definitions/googlepatents.CoverageCountry" + }, + "type": "array" + }, + "fetched_at": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, + "googlepatents.CoverageYear": { + "properties": { + "applications": { + "example": "1712467", + "type": "string" + }, + "grants": { + "example": "2802408", + "type": "string" + }, + "year": { + "example": 2025, + "type": "integer" + } + }, + "type": "object" + }, + "googlepatents.DetailResponse": { + "properties": { + "abstract": { + "example": "Battery-powered upright vacuum cleaners are disclosed.", + "type": "string" + }, + "application_number": { + "example": "US15/620,213", + "type": "string" + }, + "citations": { + "items": { + "$ref": "#/definitions/googlepatents.CitedPatent" + }, + "type": "array" + }, + "cited_by": { + "items": { + "$ref": "#/definitions/googlepatents.CitedPatent" + }, + "type": "array" + }, + "claims": { + "items": { + "type": "string" + }, + "type": "array" + }, + "claims_count": { + "example": 19, + "type": "integer" + }, + "classifications": { + "items": { + "$ref": "#/definitions/googlepatents.Classification" + }, + "type": "array" + }, + "country_code": { + "example": "US", + "type": "string" + }, + "country_name": { + "example": "United States", + "type": "string" + }, + "current_assignees": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "items": { + "type": "string" + }, + "type": "array" + }, + "expiration_date": { + "example": "2038-04-26", + "type": "string" + }, + "family_members": { + "items": { + "$ref": "#/definitions/googlepatents.FamilyMember" + }, + "type": "array" + }, + "fetched_at": { + "example": "2026-08-15T12:00:00Z", + "type": "string" + }, + "filing_date": { + "example": "2017-06-12", + "type": "string" + }, + "inventors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "kind_code": { + "example": "B2", + "type": "string" + }, + "legal_status": { + "example": "Active", + "type": "string" + }, + "original_assignees": { + "items": { + "type": "string" + }, + "type": "array" + }, + "pdf_url": { + "example": "https://patentimages.storage.googleapis.com/ae/9f/51/f34dc3bf93426e/US10758101.pdf", + "type": "string" + }, + "prior_art_keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "priority_date": { + "example": "2017-06-12", + "type": "string" + }, + "publication_date": { + "example": "2020-09-01", + "type": "string" + }, + "publication_number": { + "example": "US10758101B2", + "type": "string" + }, + "similar_documents": { + "items": { + "$ref": "#/definitions/googlepatents.SimilarDocument" + }, + "type": "array" + }, + "source_url": { + "example": "https://patents.google.com/patent/US10758101B2/en", + "type": "string" + }, + "title": { + "example": "Upright vacuum cleaner with battery support plate", + "type": "string" + } + }, + "type": "object" + }, + "googlepatents.FacetEntry": { + "properties": { + "key": { + "example": "Emerson Electric Co.", + "type": "string" + }, + "value": { + "example": 666, + "type": "integer" + } + }, + "type": "object" + }, + "googlepatents.FamilyMember": { + "properties": { + "publication_date": { + "example": "2018-12-13", + "type": "string" + }, + "publication_number": { + "example": "US20180353038A1", + "type": "string" + } + }, + "type": "object" + }, + "googlepatents.SearchResponse": { + "properties": { + "fetched_at": { + "type": "string" + }, + "many_results": { + "example": false, + "type": "boolean" + }, + "page": { + "example": 0, + "type": "integer" + }, + "query": { + "example": "battery", + "type": "string" + }, + "results": { + "items": { + "$ref": "#/definitions/googlepatents.SearchResult" + }, + "type": "array" + }, + "source_url": { + "type": "string" + }, + "top_assignees": { + "items": { + "$ref": "#/definitions/googlepatents.FacetEntry" + }, + "type": "array" + }, + "top_classifications": { + "items": { + "$ref": "#/definitions/googlepatents.FacetEntry" + }, + "type": "array" + }, + "top_inventors": { + "items": { + "$ref": "#/definitions/googlepatents.FacetEntry" + }, + "type": "array" + }, + "total_pages": { + "example": 100, + "type": "integer" + }, + "total_results": { + "example": 112795, + "type": "integer" + } + }, + "type": "object" + }, + "googlepatents.SearchResult": { + "properties": { + "assignee": { + "example": "Emerson Electric Co", + "type": "string" + }, + "country_status": { + "items": { + "$ref": "#/definitions/googlepatents.CountryStatus" + }, + "type": "array" + }, + "detail_url": { + "example": "https://patents.google.com/patent/US10758101B2/en", + "type": "string" + }, + "filing_date": { + "example": "2017-06-12", + "type": "string" + }, + "grant_date": { + "example": "2020-09-01", + "type": "string" + }, + "inventor": { + "example": "Thomas E. Fogarty, Jr.", + "type": "string" + }, + "is_similar_document": { + "example": false, + "type": "boolean" + }, + "language": { + "example": "en", + "type": "string" + }, + "pdf_url": { + "type": "string" + }, + "priority_date": { + "example": "2017-06-12", + "type": "string" + }, + "publication_date": { + "example": "2020-09-01", + "type": "string" + }, + "publication_number": { + "example": "US10758101B2", + "type": "string" + }, + "snippet": { + "example": "a battery support plate adapted to support a battery...", + "type": "string" + }, + "thumbnail_url": { + "type": "string" + }, + "title": { + "example": "Upright vacuum cleaner with battery support plate", + "type": "string" + } + }, + "type": "object" + }, + "googlepatents.SimilarDocument": { + "properties": { + "publication_date": { + "example": "1990-06-26", + "type": "string" + }, + "publication_number": { + "example": "CA1270625A", + "type": "string" + }, + "title": { + "example": "Method and apparatus for setting pattern frame and press die", + "type": "string" + } + }, + "type": "object" + }, + "googlepatents.SuggestEntry": { + "properties": { + "description": { + "type": "string" + }, + "value": { + "example": "John Cronin", + "type": "string" + } + }, + "type": "object" + }, + "googlepatents.SuggestResponse": { + "properties": { + "fetched_at": { + "type": "string" + }, + "field": { + "example": "inventor", + "type": "string" + }, + "source_url": { + "type": "string" + }, + "suggestions": { + "items": { + "$ref": "#/definitions/googlepatents.SuggestEntry" + }, + "type": "array" + }, + "value": { + "example": "John", + "type": "string" + } + }, + "type": "object" + }, + "googlepatents.coverageResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/googlepatents.CoverageResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "googlepatents.detailResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/googlepatents.DetailResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "googlepatents.searchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/googlepatents.SearchResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "googlepatents.suggestResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/googlepatents.SuggestResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "googleplay.App": { "properties": { "ad_supported": { @@ -35223,6 +36331,40 @@ }, "type": "object" }, + "hm.RelatedList": { + "properties": { + "label": { + "type": "string" + }, + "products": { + "items": { + "$ref": "#/definitions/hm.ProductSummary" + }, + "type": "array" + } + }, + "type": "object" + }, + "hm.RelatedResponse": { + "properties": { + "fetched_at": { + "type": "string" + }, + "lists": { + "items": { + "$ref": "#/definitions/hm.RelatedList" + }, + "type": "array" + }, + "product_id": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, "hm.SearchMeta": { "properties": { "blocked": { @@ -35368,6 +36510,73 @@ }, "type": "object" }, + "hm.SuggestResponse": { + "properties": { + "blocked": { + "type": "boolean" + }, + "content_suggestions": { + "items": { + "$ref": "#/definitions/hm.SuggestionLink" + }, + "type": "array" + }, + "fetched_at": { + "type": "string" + }, + "phrase_suggestions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "popular_searches": { + "items": { + "$ref": "#/definitions/hm.SuggestionLink" + }, + "type": "array" + }, + "query": { + "type": "string" + }, + "search_history": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source_url": { + "type": "string" + }, + "trending_searches": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "hm.SuggestionLink": { + "properties": { + "content_type": { + "type": "string" + }, + "deep_link": { + "type": "string" + }, + "image_url": { + "type": "string" + }, + "link": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, "hm.categoriesResponseDoc": { "properties": { "code": { @@ -35416,6 +36625,22 @@ }, "type": "object" }, + "hm.relatedResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/hm.RelatedResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "hm.searchResponseDoc": { "properties": { "code": { @@ -35448,6 +36673,22 @@ }, "type": "object" }, + "hm.suggestResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/hm.SuggestResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "imdb.AlternateTitle": { "properties": { "country": { @@ -96267,27 +97508,90 @@ "ApiKeyAuth": [] } ], - "summary": "Search Autotrader vehicle listings", + "summary": "Search Autotrader vehicle listings", + "tags": [ + "Autotrader" + ] + } + }, + "/autotrader/vehicle/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns a normalized Autotrader vehicle listing: full vehicle spec (make, model, trim, mileage, colors, transmission, fuel type, engine, images, pricing), the full listing description, and seller detail (dealership or private seller). Credential-free public data sourced from Autotrader's own server-rendered vehicle detail page.", + "operationId": "autotrader-vehicle", + "parameters": [ + { + "description": "Autotrader listing id, the numeric path segment of a /cars-for-sale/vehicle/{id} URL", + "in": "path", + "name": "id", + "required": true, + "type": "string", + "x-example": "754822172" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/autotrader.VehicleResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get Autotrader vehicle listing detail", "tags": [ "Autotrader" ] } }, - "/autotrader/vehicle/{id}": { + "/bestbuy/category": { "get": { "consumes": [ "application/json" ], - "description": "Returns a normalized Autotrader vehicle listing: full vehicle spec (make, model, trim, mileage, colors, transmission, fuel type, engine, images, pricing), the full listing description, and seller detail (dealership or private seller). Credential-free public data sourced from Autotrader's own server-rendered vehicle detail page.", - "operationId": "autotrader-vehicle", + "description": "Returns page 1 (up to 24) of one Best Buy category's normalized product listing (sku, title, url, image, price, rating, review count). category_id is a Best Buy category id, e.g. pcmcat138500050001, found in a category page URL's trailing .c?id= segment.", + "operationId": "bestbuy-category", "parameters": [ { - "description": "Autotrader listing id, the numeric path segment of a /cars-for-sale/vehicle/{id} URL", - "in": "path", - "name": "id", + "description": "Best Buy category id", + "in": "query", + "name": "category_id", "required": true, "type": "string", - "x-example": "754822172" + "x-example": "pcmcat138500050001" } ], "produces": [ @@ -96297,7 +97601,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/autotrader.VehicleResponse" + "$ref": "#/definitions/bestbuy.categoryResponseDoc" } }, "400": { @@ -96312,8 +97616,8 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } @@ -96330,9 +97634,123 @@ "ApiKeyAuth": [] } ], - "summary": "Get Autotrader vehicle listing detail", + "summary": "Get a Best Buy category's product listing", "tags": [ - "Autotrader" + "Best Buy" + ] + } + }, + "/bestbuy/product": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns one Best Buy product's normalized detail (name, brand, model, color, price, availability, rating, images, breadcrumbs), sourced from the product page's own schema.org Product structured-data block. sku is the numeric Best Buy SKU shown on bestbuy.com product pages and URLs.", + "operationId": "bestbuy-product", + "parameters": [ + { + "description": "Numeric Best Buy SKU", + "in": "query", + "name": "sku", + "required": true, + "type": "string", + "x-example": "6673590" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/bestbuy.productResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get a Best Buy product's detail", + "tags": [ + "Best Buy" + ] + } + }, + "/bestbuy/product/reviews": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns page 1 (up to 20) of one Best Buy product's normalized customer reviews (rating, title, text, author, posted date, tags such as Verified Purchaser, recommended flag, helpful/unhelpful counts), sourced from the product's dedicated reviews page. sku is the numeric Best Buy SKU shown on bestbuy.com product pages and URLs.", + "operationId": "bestbuy-product-reviews", + "parameters": [ + { + "description": "Numeric Best Buy SKU", + "in": "query", + "name": "sku", + "required": true, + "type": "string", + "x-example": "6673590" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/bestbuy.productReviewsResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get a Best Buy product's customer reviews", + "tags": [ + "Best Buy" ] } }, @@ -118918,12 +120336,88 @@ ] } }, + "/depop/item/{slug}/similar": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns items similar to a given Depop listing, via Depop's dedicated similar-items API -- richer and paginated (up to 150 per page) compared to the small, non-paginated \"similar items\" carousel already included in item detail. Public data sourced from Depop's own similar-items API.", + "operationId": "depop-item-similar", + "parameters": [ + { + "description": "Depop item URL slug, e.g. from a search result's id field", + "in": "path", + "name": "slug", + "required": true, + "type": "string", + "x-example": "ag_boutique-vintage-mid-rise-bootcut-levi-2476" + }, + { + "description": "Max results per page, 1-150", + "in": "query", + "name": "limit", + "type": "integer", + "x-example": 24 + }, + { + "description": "Opaque pagination cursor from a previous response's next_cursor field. Omit for the first page.", + "in": "query", + "name": "after", + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/depop.similarItemsResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get Depop items similar to a listing", + "tags": [ + "Depop" + ] + } + }, "/depop/search": { "get": { "consumes": [ "application/json" ], - "description": "Searches Depop's resale-fashion marketplace by free-text keyword, with optional price, condition, colour, category, subcategory, gender, brand, discount, and sort filters, returning normalized listing summaries (title, price, brand, condition, photos, sizes), a pagination cursor, and the total matching count. Public data sourced from Depop's own search API.", + "description": "Searches Depop's resale-fashion marketplace by free-text keyword, with optional price, condition, colour, category, subcategory, gender, kids-department, brand, discount, and sort filters, returning normalized listing summaries (title, price, brand, condition, like count, photos, sizes), a pagination cursor, and the total matching count. Public data sourced from Depop's own search API.", "operationId": "depop-search", "parameters": [ { @@ -118996,6 +120490,12 @@ "type": "string", "x-example": "female" }, + { + "description": "Kids-department filter: true restricts results to kids items only, false excludes them, omitted returns both.", + "in": "query", + "name": "is_kids", + "type": "boolean" + }, { "description": "Comma-separated Depop internal numeric brand ids. Not documented by Depop -- find a brand's id by browsing its depop.com/brands// page.", "in": "query", @@ -120032,22 +121532,168 @@ "ApiKeyAuth": [] } ], - "summary": "Get DoorDash pickup search suggestions", + "summary": "Get DoorDash pickup search suggestions", + "tags": [ + "DoorDash" + ] + } + }, + "/doordash/search/filters": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the cuisines and filter values supported by the Android mobile guest search experience for a location. No DoorDash account or caller-supplied token is required.", + "operationId": "doordash-search-filters", + "parameters": [ + { + "description": "Consumer latitude", + "in": "query", + "name": "latitude", + "required": true, + "type": "number", + "x-example": 37.7825 + }, + { + "description": "Consumer longitude", + "in": "query", + "name": "longitude", + "required": true, + "type": "number", + "x-example": -122.461 + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/doordash.searchFiltersResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get DoorDash search filter options", + "tags": [ + "DoorDash" + ] + } + }, + "/doordash/search/items": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Search for specific dishes or items across nearby merchants from the Android mobile guest experience. No DoorDash account or caller-supplied token is required.", + "operationId": "doordash-search-items", + "parameters": [ + { + "description": "Search text", + "in": "query", + "name": "query", + "required": true, + "type": "string", + "x-example": "pizza" + }, + { + "description": "Consumer latitude", + "in": "query", + "name": "latitude", + "required": true, + "type": "number", + "x-example": 37.7825 + }, + { + "description": "Consumer longitude", + "in": "query", + "name": "longitude", + "required": true, + "type": "number", + "x-example": -122.461 + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/doordash.searchItemsResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Search DoorDash dishes and items", "tags": [ "DoorDash" ] } }, - "/doordash/search/filters": { + "/doordash/store/{store_id}": { "get": { "consumes": [ "application/json" ], - "description": "Returns the cuisines and filter values supported by the Android mobile guest search experience for a location. No DoorDash account or caller-supplied token is required.", - "operationId": "doordash-search-filters", + "description": "Returns location-aware DoorDash store metadata through the Android mobile guest flow. No DoorDash account or caller-supplied token is required.", + "operationId": "doordash-store", "parameters": [ { - "description": "Consumer latitude", + "description": "Numeric DoorDash store ID", + "in": "path", + "name": "store_id", + "required": true, + "type": "string", + "x-example": "26282644" + }, + { + "description": "Delivery latitude", "in": "query", "name": "latitude", "required": true, @@ -120055,7 +121701,7 @@ "x-example": 37.7825 }, { - "description": "Consumer longitude", + "description": "Delivery longitude", "in": "query", "name": "longitude", "required": true, @@ -120070,7 +121716,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/doordash.searchFiltersResponseDoc" + "$ref": "#/definitions/doordash.storeResponseDoc" } }, "400": { @@ -120079,6 +121725,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "500": { "description": "Internal Server Error", "schema": { @@ -120097,30 +121749,30 @@ "ApiKeyAuth": [] } ], - "summary": "Get DoorDash search filter options", + "summary": "Get a DoorDash store", "tags": [ "DoorDash" ] } }, - "/doordash/search/items": { + "/doordash/store/{store_id}/fulfillment": { "get": { "consumes": [ "application/json" ], - "description": "Search for specific dishes or items across nearby merchants from the Android mobile guest experience. No DoorDash account or caller-supplied token is required.", - "operationId": "doordash-search-items", + "description": "Returns store fulfillment methods, delivery fee info, and scheduling details from the Android mobile guest experience. No DoorDash account or caller-supplied token is required.", + "operationId": "doordash-store-fulfillment", "parameters": [ { - "description": "Search text", - "in": "query", - "name": "query", + "description": "Numeric DoorDash store ID", + "in": "path", + "name": "store_id", "required": true, "type": "string", - "x-example": "pizza" + "x-example": "26282644" }, { - "description": "Consumer latitude", + "description": "Delivery latitude", "in": "query", "name": "latitude", "required": true, @@ -120128,7 +121780,7 @@ "x-example": 37.7825 }, { - "description": "Consumer longitude", + "description": "Delivery longitude", "in": "query", "name": "longitude", "required": true, @@ -120143,7 +121795,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/doordash.searchItemsResponseDoc" + "$ref": "#/definitions/doordash.storeFulfillmentResponseDoc" } }, "400": { @@ -120152,6 +121804,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "500": { "description": "Internal Server Error", "schema": { @@ -120170,19 +121828,19 @@ "ApiKeyAuth": [] } ], - "summary": "Search DoorDash dishes and items", + "summary": "Get DoorDash store fulfillment details", "tags": [ "DoorDash" ] } }, - "/doordash/store/{store_id}": { + "/doordash/store/{store_id}/info": { "get": { "consumes": [ "application/json" ], - "description": "Returns location-aware DoorDash store metadata through the Android mobile guest flow. No DoorDash account or caller-supplied token is required.", - "operationId": "doordash-store", + "description": "Returns a lightweight store info card (map coordinates, address, phone number) from the Android mobile guest experience. This is a distinct upstream contract from the full store endpoint and reliably includes address and coordinates. No DoorDash account or caller-supplied token is required.", + "operationId": "doordash-store-info", "parameters": [ { "description": "Numeric DoorDash store ID", @@ -120216,7 +121874,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/doordash.storeResponseDoc" + "$ref": "#/definitions/doordash.storeInfoResponseDoc" } }, "400": { @@ -120249,19 +121907,19 @@ "ApiKeyAuth": [] } ], - "summary": "Get a DoorDash store", + "summary": "Get DoorDash store contact info", "tags": [ "DoorDash" ] } }, - "/doordash/store/{store_id}/fulfillment": { + "/doordash/store/{store_id}/item/{item_id}": { "get": { "consumes": [ "application/json" ], - "description": "Returns store fulfillment methods, delivery fee info, and scheduling details from the Android mobile guest experience. No DoorDash account or caller-supplied token is required.", - "operationId": "doordash-store-fulfillment", + "description": "Returns details for a specific menu item from the Android mobile guest experience. No DoorDash account or caller-supplied token is required.", + "operationId": "doordash-store-item", "parameters": [ { "description": "Numeric DoorDash store ID", @@ -120271,6 +121929,14 @@ "type": "string", "x-example": "26282644" }, + { + "description": "Menu item ID or name", + "in": "path", + "name": "item_id", + "required": true, + "type": "string", + "x-example": "Roasted Duck" + }, { "description": "Delivery latitude", "in": "query", @@ -120295,7 +121961,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/doordash.storeFulfillmentResponseDoc" + "$ref": "#/definitions/doordash.storeItemResponseDoc" } }, "400": { @@ -120328,19 +121994,19 @@ "ApiKeyAuth": [] } ], - "summary": "Get DoorDash store fulfillment details", + "summary": "Get DoorDash menu item details", "tags": [ "DoorDash" ] } }, - "/doordash/store/{store_id}/info": { + "/doordash/store/{store_id}/menu": { "get": { "consumes": [ "application/json" ], - "description": "Returns a lightweight store info card (map coordinates, address, phone number) from the Android mobile guest experience. This is a distinct upstream contract from the full store endpoint and reliably includes address and coordinates. No DoorDash account or caller-supplied token is required.", - "operationId": "doordash-store-info", + "description": "Returns the location-aware DoorDash mobile menu, grouped into sections with item names, descriptions, and displayed prices. No DoorDash account or caller-supplied token is required.", + "operationId": "doordash-store-menu", "parameters": [ { "description": "Numeric DoorDash store ID", @@ -120374,7 +122040,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/doordash.storeInfoResponseDoc" + "$ref": "#/definitions/doordash.menuResponseDoc" } }, "400": { @@ -120407,19 +122073,19 @@ "ApiKeyAuth": [] } ], - "summary": "Get DoorDash store contact info", + "summary": "Get a DoorDash store menu", "tags": [ "DoorDash" ] } }, - "/doordash/store/{store_id}/item/{item_id}": { + "/doordash/store/{store_id}/reviews": { "get": { "consumes": [ "application/json" ], - "description": "Returns details for a specific menu item from the Android mobile guest experience. No DoorDash account or caller-supplied token is required.", - "operationId": "doordash-store-item", + "description": "Returns store ratings and customer reviews from the Android mobile guest experience for a location. No DoorDash account or caller-supplied token is required.", + "operationId": "doordash-store-reviews", "parameters": [ { "description": "Numeric DoorDash store ID", @@ -120429,14 +122095,6 @@ "type": "string", "x-example": "26282644" }, - { - "description": "Menu item ID or name", - "in": "path", - "name": "item_id", - "required": true, - "type": "string", - "x-example": "Roasted Duck" - }, { "description": "Delivery latitude", "in": "query", @@ -120461,7 +122119,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/doordash.storeItemResponseDoc" + "$ref": "#/definitions/doordash.storeReviewsResponseDoc" } }, "400": { @@ -120494,43 +122152,98 @@ "ApiKeyAuth": [] } ], - "summary": "Get DoorDash menu item details", + "summary": "Get DoorDash store reviews", "tags": [ "DoorDash" ] } }, - "/doordash/store/{store_id}/menu": { + "/draftkings/event": { "get": { "consumes": [ "application/json" ], - "description": "Returns the location-aware DoorDash mobile menu, grouped into sections with item names, descriptions, and displayed prices. No DoorDash account or caller-supplied token is required.", - "operationId": "doordash-store-menu", + "description": "Returns one event's metadata (teams, status, start time) from DraftKings' credential-free public JSON. `event_id` is a numeric DraftKings event identifier (find it from an event's DraftKings Sportsbook page, or from the `id` field of an event returned by /draftkings/odds). This endpoint does not include betting markets/odds -- use /draftkings/odds for those.", + "operationId": "draftkings-event", "parameters": [ { - "description": "Numeric DoorDash store ID", - "in": "path", - "name": "store_id", + "description": "Numeric DraftKings event id", + "in": "query", + "name": "event_id", "required": true, "type": "string", - "x-example": "26282644" + "x-example": "34240140" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/draftkings.eventResponseDoc" + } }, + "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" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ { - "description": "Delivery latitude", + "ApiKeyAuth": [] + } + ], + "summary": "DraftKings Sportsbook event", + "tags": [ + "DraftKings" + ] + } + }, + "/draftkings/event-markets": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns one event's betting markets and selections for a specific market category, from DraftKings' credential-free public JSON. `event_id` is a numeric DraftKings event identifier (find it from the `id` field of an event returned by /draftkings/odds). `subcategory_id` selects the market category (e.g. game lines, a player-prop category, an alternate-line category) -- find one from the `subcategory_id` field on a market returned by /draftkings/odds, or from a DraftKings Sportsbook event page's own network traffic. An empty `markets` list is a valid response when the category has no markets currently posted for this event.", + "operationId": "draftkings-event-markets", + "parameters": [ + { + "description": "Numeric DraftKings event id", "in": "query", - "name": "latitude", + "name": "event_id", "required": true, - "type": "number", - "x-example": 37.7825 + "type": "string", + "x-example": "34497667" }, { - "description": "Delivery longitude", + "description": "Numeric DraftKings market subcategory id", "in": "query", - "name": "longitude", + "name": "subcategory_id", "required": true, - "type": "number", - "x-example": -122.461 + "type": "string", + "x-example": "6354" } ], "produces": [ @@ -120540,7 +122253,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/doordash.menuResponseDoc" + "$ref": "#/definitions/draftkings.eventMarketsResponseDoc" } }, "400": { @@ -120555,8 +122268,8 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } @@ -120573,43 +122286,98 @@ "ApiKeyAuth": [] } ], - "summary": "Get a DoorDash store menu", + "summary": "DraftKings Sportsbook event markets", "tags": [ - "DoorDash" + "DraftKings" ] } }, - "/doordash/store/{store_id}/reviews": { + "/draftkings/futures": { "get": { "consumes": [ "application/json" ], - "description": "Returns store ratings and customer reviews from the Android mobile guest experience for a location. No DoorDash account or caller-supplied token is required.", - "operationId": "doordash-store-reviews", + "description": "Returns league-level futures markets and selections for a specific DraftKings market category, from DraftKings' credential-free public JSON. `league_id` is a numeric DraftKings league identifier and `subcategory_id` is a numeric futures category identifier. An empty `events` list is a valid response when the category has no markets currently posted for that league.", + "operationId": "draftkings-futures", "parameters": [ { - "description": "Numeric DoorDash store ID", - "in": "path", - "name": "store_id", + "description": "Numeric DraftKings league id", + "in": "query", + "name": "league_id", "required": true, "type": "string", - "x-example": "26282644" + "x-example": "84240" }, { - "description": "Delivery latitude", + "description": "Numeric DraftKings futures market subcategory id", "in": "query", - "name": "latitude", + "name": "subcategory_id", "required": true, - "type": "number", - "x-example": 37.7825 + "type": "string", + "x-example": "17279" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/draftkings.futuresResponseDoc" + } + }, + "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" + } }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ { - "description": "Delivery longitude", + "ApiKeyAuth": [] + } + ], + "summary": "DraftKings Sportsbook futures", + "tags": [ + "DraftKings" + ] + } + }, + "/draftkings/odds": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the primary betting markets (moneyline, spread, total) for every upcoming event in a DraftKings Sportsbook league, from DraftKings' credential-free public JSON. `league_id` is a numeric DraftKings league identifier (find it from a league's DraftKings Sportsbook page). An empty `events` list is a valid response when nothing is currently scheduled.", + "operationId": "draftkings-odds", + "parameters": [ + { + "description": "Numeric DraftKings league id", "in": "query", - "name": "longitude", + "name": "league_id", "required": true, - "type": "number", - "x-example": -122.461 + "type": "string", + "x-example": "84240" } ], "produces": [ @@ -120619,7 +122387,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/doordash.storeReviewsResponseDoc" + "$ref": "#/definitions/draftkings.oddsResponseDoc" } }, "400": { @@ -120634,8 +122402,8 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } @@ -120652,9 +122420,9 @@ "ApiKeyAuth": [] } ], - "summary": "Get DoorDash store reviews", + "summary": "DraftKings Sportsbook odds", "tags": [ - "DoorDash" + "DraftKings" ] } }, @@ -129247,6 +131015,387 @@ ] } }, + "/googlepatents/coverage": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns how many patent grants and applications Google Patents has indexed, per patent office/country, per year, across every authority it covers. Public data, sourced from Google Patents' own search API.", + "operationId": "googlepatents-coverage", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/googlepatents.coverageResponseDoc" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Google Patents database coverage: grants and applications indexed per country per year", + "tags": [ + "Google Patents" + ] + } + }, + "/googlepatents/detail": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns a single patent's normalized detail: title, abstract, inventors, assignees, dates, legal status, CPC/IPC classifications, claims, description, patent citations, cited-by patents, family members, and similar documents. `number` is a publication number such as `US10758101B2`, `EP1000000A1`, or `WO2020123456A1`. Public data, sourced from Google Patents' server-rendered detail pages. To search or browse by keyword, inventor, or assignee instead of a known publication number, use `/googlepatents/search`.", + "operationId": "googlepatents-detail", + "parameters": [ + { + "description": "Publication number, e.g. US10758101B2", + "in": "query", + "name": "number", + "required": true, + "type": "string", + "x-example": "US10758101B2" + }, + { + "description": "Language code for the translated page, default en", + "in": "query", + "name": "lang", + "type": "string", + "x-example": "en" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/googlepatents.detailResponseDoc" + } + }, + "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" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "A single patent's bibliographic data, abstract, claims, description, citations, and family", + "tags": [ + "Google Patents" + ] + } + }, + "/googlepatents/search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Searches Google Patents' full index by free-text query, with optional inventor, assignee, patent office, status, type, language, and date filters. Returns a page of normalized hits plus top-assignee/top-inventor/top-classification breakdowns over the full result set. Public data, sourced from Google Patents' own search API.", + "operationId": "googlepatents-search", + "parameters": [ + { + "description": "Free-text search query", + "in": "query", + "name": "q", + "required": true, + "type": "string", + "x-example": "battery" + }, + { + "description": "Filter by inventor name", + "in": "query", + "name": "inventor", + "type": "string", + "x-example": "Thomas Fogarty" + }, + { + "description": "Filter by assignee/applicant name", + "in": "query", + "name": "assignee", + "type": "string", + "x-example": "Emerson Electric" + }, + { + "description": "Filter by patent office/authority code, e.g. US, EP, WO, CN, JP", + "in": "query", + "name": "country", + "type": "string", + "x-example": "US" + }, + { + "description": "Filter by legal status. Allowed values: GRANT, APPLICATION", + "enum": [ + "GRANT", + "APPLICATION" + ], + "in": "query", + "name": "status", + "type": "string", + "x-example": "GRANT" + }, + { + "description": "Filter by document type. Allowed values: PATENT, DESIGN", + "enum": [ + "PATENT", + "DESIGN" + ], + "in": "query", + "name": "type", + "type": "string", + "x-example": "PATENT" + }, + { + "description": "Filter by document language. Allowed values: ENGLISH, GERMAN, CHINESE, FRENCH, SPANISH, ARABIC, JAPANESE, KOREAN, PORTUGUESE, RUSSIAN, ITALIAN, DUTCH, SWEDISH, FINNISH, NORWEGIAN, DANISH", + "enum": [ + "ENGLISH", + "GERMAN", + "CHINESE", + "FRENCH", + "SPANISH", + "ARABIC", + "JAPANESE", + "KOREAN", + "PORTUGUESE", + "RUSSIAN", + "ITALIAN", + "DUTCH", + "SWEDISH", + "FINNISH", + "NORWEGIAN", + "DANISH" + ], + "in": "query", + "name": "language", + "type": "string", + "x-example": "ENGLISH" + }, + { + "description": "Which date before/after filter. Allowed values: priority, filing, publication. Defaults to priority when before/after is set", + "enum": [ + "priority", + "filing", + "publication" + ], + "in": "query", + "name": "date_field", + "type": "string", + "x-example": "priority" + }, + { + "description": "Only results dated on or before this date (YYYY-MM-DD)", + "in": "query", + "name": "before", + "type": "string", + "x-example": "2021-12-31" + }, + { + "description": "Only results dated on or after this date (YYYY-MM-DD)", + "in": "query", + "name": "after", + "type": "string", + "x-example": "2020-01-01" + }, + { + "description": "Sort order. Allowed values: relevance, new, old. Defaults to relevance", + "enum": [ + "relevance", + "new", + "old" + ], + "in": "query", + "name": "sort", + "type": "string", + "x-example": "relevance" + }, + { + "description": "Results per page, default 10, max 100", + "in": "query", + "name": "num", + "type": "integer", + "x-example": 10 + }, + { + "description": "Page number, 0-indexed, default 0", + "in": "query", + "name": "page", + "type": "integer", + "x-example": 0 + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/googlepatents.searchResponseDoc" + } + }, + "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" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Search Google Patents by keyword, inventor, assignee, and other filters", + "tags": [ + "Google Patents" + ] + } + }, + "/googlepatents/suggest": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns Google Patents' own autocomplete suggestions for an inventor or assignee name as the user types, the same suggestions shown by the Inventor/Assignee fields on Google Patents' advanced search page. Public data, sourced from Google Patents' own search API.", + "operationId": "googlepatents-suggest", + "parameters": [ + { + "description": "Which field to autocomplete. Allowed values: inventor, assignee", + "enum": [ + "inventor", + "assignee" + ], + "in": "query", + "name": "field", + "required": true, + "type": "string", + "x-example": "inventor" + }, + { + "description": "Partial name typed so far", + "in": "query", + "name": "value", + "required": true, + "type": "string", + "x-example": "John" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/googlepatents.suggestResponseDoc" + } + }, + "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" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Autocomplete an inventor or assignee name for Google Patents search", + "tags": [ + "Google Patents" + ] + } + }, "/googleplay/app": { "get": { "consumes": [ @@ -130436,6 +132585,63 @@ ] } }, + "/hm/product/{product_id}/related": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns every product-detail recommendation list H&M's own app shows for one product (which lists are present genuinely varies by product -- for example \"more from series\" and \"style with\" appear only when the product has one, while \"alternatives\" and \"upsell\" are more consistently present). An unrecognized product_id returns a well-formed empty result rather than an error.", + "operationId": "hm-product-related", + "parameters": [ + { + "description": "Numeric H&M product id, from a listing/search result's id field", + "in": "path", + "name": "product_id", + "required": true, + "type": "string", + "x-example": "1368905001" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/hm.relatedResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get related products for an H&M product", + "tags": [ + "H&M" + ] + } + }, "/hm/search": { "get": { "consumes": [ @@ -130507,6 +132713,56 @@ ] } }, + "/hm/search/suggestions": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns H&M's own search-box typeahead suggestions, sourced from the same credential-free app-backend host as hm-listing/hm-search. When query is given, returns spelling-complete phrase suggestions and merchandised content results. When query is omitted or empty, instead returns trending searches and popular-search shortcuts (phrase/content suggestions are both empty in that mode). search_history is part of the real upstream response but confirmed NOT session-scoped -- it returned the identical list across separate cookie-free requests, so treat it as fixed default content rather than a real per-caller history.", + "operationId": "hm-search-suggestions", + "parameters": [ + { + "description": "Free-text search-box input; omit or leave empty for trending/popular searches instead", + "in": "query", + "name": "query", + "type": "string", + "x-example": "jean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/hm.suggestResponseDoc" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get H&M search-box typeahead suggestions", + "tags": [ + "H&M" + ] + } + }, "/hm/stores": { "get": { "consumes": [ diff --git a/pom.xml b/pom.xml index 88c1418..384f292 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ net.crawlora crawlora-sdk - 1.35.0-sdk.1 + 1.36.0-sdk.1 jar Crawlora Java SDK diff --git a/src/main/java/net/crawlora/ClientGroups.java b/src/main/java/net/crawlora/ClientGroups.java index 2bedf1e..f55fd31 100644 --- a/src/main/java/net/crawlora/ClientGroups.java +++ b/src/main/java/net/crawlora/ClientGroups.java @@ -90,6 +90,14 @@ public AutotraderGroup autotrader() { return new AutotraderGroup((CrawloraClient) this); } + /** + * Typed accessor for the "bestBuy" operation group. + * @return a new {@link BestBuyGroup} bound to this client + */ + public BestBuyGroup bestBuy() { + return new BestBuyGroup((CrawloraClient) this); + } + /** * Typed accessor for the "billing" operation group. * @return a new {@link BillingGroup} bound to this client @@ -242,6 +250,14 @@ public DoorDashGroup doorDash() { return new DoorDashGroup((CrawloraClient) this); } + /** + * Typed accessor for the "draftKings" operation group. + * @return a new {@link DraftKingsGroup} bound to this client + */ + public DraftKingsGroup draftKings() { + return new DraftKingsGroup((CrawloraClient) this); + } + /** * Typed accessor for the "duckDuckGoSearch" operation group. * @return a new {@link DuckDuckGoSearchGroup} bound to this client @@ -338,6 +354,14 @@ public GoogleGroup google() { return new GoogleGroup((CrawloraClient) this); } + /** + * Typed accessor for the "googlePatents" operation group. + * @return a new {@link GooglePatentsGroup} bound to this client + */ + public GooglePatentsGroup googlePatents() { + return new GooglePatentsGroup((CrawloraClient) this); + } + /** * Typed accessor for the "googlePlay" operation group. * @return a new {@link GooglePlayGroup} bound to this client diff --git a/src/main/java/net/crawlora/OperationId.java b/src/main/java/net/crawlora/OperationId.java index c012c88..81a88c9 100644 --- a/src/main/java/net/crawlora/OperationId.java +++ b/src/main/java/net/crawlora/OperationId.java @@ -78,6 +78,9 @@ private OperationId() {} public static final String AUTOTRADER_DEALER = "autotrader-dealer"; public static final String AUTOTRADER_SEARCH = "autotrader-search"; public static final String AUTOTRADER_VEHICLE = "autotrader-vehicle"; + public static final String BEST_BUY_BESTBUY_CATEGORY = "bestbuy-category"; + public static final String BEST_BUY_BESTBUY_PRODUCT = "bestbuy-product"; + public static final String BEST_BUY_BESTBUY_PRODUCT_REVIEWS = "bestbuy-product-reviews"; public static final String BILLING_ME = "billing-me"; public static final String BILLING_ME_CHECKOUT = "billing-me-checkout"; public static final String BILLING_ME_EVENTS = "billing-me-events"; @@ -298,6 +301,7 @@ private OperationId() {} public static final String DATASETS_XUSERS_SEARCH = "datasets-x-users-search"; public static final String DEPOP_CATEGORIES = "depop-categories"; public static final String DEPOP_ITEM = "depop-item"; + public static final String DEPOP_ITEM_SIMILAR = "depop-item-similar"; public static final String DEPOP_SEARCH = "depop-search"; public static final String DEPOP_SHOP = "depop-shop"; public static final String DISCOGS_ARTIST = "discogs-artist"; @@ -319,6 +323,10 @@ private OperationId() {} public static final String DOOR_DASH_DOORDASH_STORE_ITEM = "doordash-store-item"; public static final String DOOR_DASH_DOORDASH_STORE_MENU = "doordash-store-menu"; public static final String DOOR_DASH_DOORDASH_STORE_REVIEWS = "doordash-store-reviews"; + public static final String DRAFT_KINGS_DRAFTKINGS_EVENT = "draftkings-event"; + public static final String DRAFT_KINGS_DRAFTKINGS_EVENT_MARKETS = "draftkings-event-markets"; + public static final String DRAFT_KINGS_DRAFTKINGS_FUTURES = "draftkings-futures"; + public static final String DRAFT_KINGS_DRAFTKINGS_ODDS = "draftkings-odds"; public static final String DUCK_DUCK_GO_SEARCH_DUCKDUCKGO_IMAGE = "duckduckgo-image"; public static final String DUCK_DUCK_GO_SEARCH_DUCKDUCKGO_NEWS = "duckduckgo-news"; public static final String DUCK_DUCK_GO_SEARCH_DUCKDUCKGO_SEARCH = "duckduckgo-search"; @@ -420,6 +428,10 @@ private OperationId() {} public static final String GOOGLE_MAP_PLACE_REVIEWS = "google-map-place-reviews"; public static final String GOOGLE_MAP_SEARCH = "google-map-search"; public static final String GOOGLE_NEWS = "google-news"; + public static final String GOOGLE_PATENTS_GOOGLEPATENTS_COVERAGE = "googlepatents-coverage"; + public static final String GOOGLE_PATENTS_GOOGLEPATENTS_DETAIL = "googlepatents-detail"; + public static final String GOOGLE_PATENTS_GOOGLEPATENTS_SEARCH = "googlepatents-search"; + public static final String GOOGLE_PATENTS_GOOGLEPATENTS_SUGGEST = "googlepatents-suggest"; public static final String GOOGLE_PLAY_APP = "googleplay-app"; public static final String GOOGLE_PLAY_CATEGORIES = "googleplay-categories"; public static final String GOOGLE_PLAY_DATASAFETY = "googleplay-datasafety"; @@ -448,7 +460,9 @@ private OperationId() {} public static final String HMHM_CATEGORIES = "hm-categories"; public static final String HMHM_LISTING = "hm-listing"; public static final String HMHM_PRODUCT = "hm-product"; + public static final String HMHM_PRODUCT_RELATED = "hm-product-related"; public static final String HMHM_SEARCH = "hm-search"; + public static final String HMHM_SEARCH_SUGGESTIONS = "hm-search-suggestions"; public static final String HMHM_STORES = "hm-stores"; public static final String IMDB_NAME = "imdb-name"; public static final String IMDB_NAME_AWARDS = "imdb-name-awards"; diff --git a/src/main/java/net/crawlora/Operations.java b/src/main/java/net/crawlora/Operations.java index 0a6e916..186daea 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 = 1176; + public static final int OPERATION_COUNT = 1190; /** Immutable map of operation id to its runtime metadata. */ public static final Map OPERATIONS = buildOperations(); @@ -1044,6 +1044,45 @@ private static void putOperations1(Map m) { List.of("ApiKeyAuth"), false, List.of())); + m.put("bestbuy-category", new Operation( + "bestbuy-category", + "GET", + "/bestbuy/category", + List.of(), + List.of( + new QueryParam("category_id", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("bestbuy-product", new Operation( + "bestbuy-product", + "GET", + "/bestbuy/product", + List.of(), + List.of( + new QueryParam("sku", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("bestbuy-product-reviews", new Operation( + "bestbuy-product-reviews", + "GET", + "/bestbuy/product/reviews", + List.of(), + List.of( + new QueryParam("sku", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("billing-me", new Operation( "billing-me", "GET", @@ -1802,6 +1841,9 @@ private static void putOperations1(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations2(Map m) { m.put("brave-images", new Operation( "brave-images", "GET", @@ -1858,9 +1900,6 @@ private static void putOperations1(Map m) { List.of("ApiKeyAuth"), true, List.of())); - } - - private static void putOperations2(Map m) { m.put("brave-suggest", new Operation( "brave-suggest", "GET", @@ -2696,6 +2735,9 @@ private static void putOperations2(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations3(Map m) { m.put("datasets-airbnb-markets-facets", new Operation( "datasets-airbnb-markets-facets", "GET", @@ -2751,9 +2793,6 @@ private static void putOperations2(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations3(Map m) { m.put("datasets-airbnb-markets-search", new Operation( "datasets-airbnb-markets-search", "GET", @@ -3970,6 +4009,9 @@ private static void putOperations3(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations4(Map m) { m.put("datasets-pitchbook-companies-search", new Operation( "datasets-pitchbook-companies-search", "GET", @@ -4027,9 +4069,6 @@ private static void putOperations3(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations4(Map m) { m.put("datasets-pitchbook-funds-search", new Operation( "datasets-pitchbook-funds-search", "GET", @@ -4999,6 +5038,20 @@ private static void putOperations4(Map m) { List.of("ApiKeyAuth"), false, List.of())); + m.put("depop-item-similar", new Operation( + "depop-item-similar", + "GET", + "/depop/item/{slug}/similar", + List.of("slug"), + List.of( + new QueryParam("limit", false, "integer", List.of()), + new QueryParam("after", false, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("depop-search", new Operation( "depop-search", "GET", @@ -5015,6 +5068,7 @@ private static void putOperations4(Map m) { new QueryParam("category", false, "string", List.of()), new QueryParam("subcategory", false, "string", List.of()), new QueryParam("gender", false, "string", List.of()), + new QueryParam("is_kids", false, "boolean", List.of()), new QueryParam("brand_ids", false, "string", List.of()), new QueryParam("after", false, "string", List.of())), List.of(), @@ -5132,6 +5186,9 @@ private static void putOperations4(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations5(Map m) { m.put("discogs-search", new Operation( "discogs-search", "GET", @@ -5198,9 +5255,6 @@ private static void putOperations4(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations5(Map m) { m.put("doordash-search-autocomplete", new Operation( "doordash-search-autocomplete", "GET", @@ -5329,6 +5383,60 @@ private static void putOperations5(Map m) { List.of("ApiKeyAuth"), false, List.of())); + m.put("draftkings-event", new Operation( + "draftkings-event", + "GET", + "/draftkings/event", + List.of(), + List.of( + new QueryParam("event_id", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("draftkings-event-markets", new Operation( + "draftkings-event-markets", + "GET", + "/draftkings/event-markets", + List.of(), + List.of( + new QueryParam("event_id", true, "string", List.of()), + new QueryParam("subcategory_id", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("draftkings-futures", new Operation( + "draftkings-futures", + "GET", + "/draftkings/futures", + List.of(), + List.of( + new QueryParam("league_id", true, "string", List.of()), + new QueryParam("subcategory_id", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("draftkings-odds", new Operation( + "draftkings-odds", + "GET", + "/draftkings/odds", + List.of(), + List.of( + new QueryParam("league_id", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("duckduckgo-image", new Operation( "duckduckgo-image", "GET", @@ -5917,6 +6025,9 @@ private static void putOperations5(Map m) { List.of("ApiKeyAuth"), true, List.of())); + } + + private static void putOperations6(Map m) { m.put("fiverr-seller", new Operation( "fiverr-seller", "GET", @@ -6045,9 +6156,6 @@ private static void putOperations5(Map m) { List.of("ApiKeyAuth"), true, List.of())); - } - - private static void putOperations6(Map m) { m.put("github-repo-forks", new Operation( "github-repo-forks", "GET", @@ -6733,6 +6841,9 @@ private static void putOperations6(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations7(Map m) { m.put("google-suggest", new Operation( "google-suggest", "GET", @@ -6833,9 +6944,6 @@ private static void putOperations6(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations7(Map m) { m.put("google-trends-explore-top-queries", new Operation( "google-trends-explore-top-queries", "POST", @@ -6910,6 +7018,71 @@ private static void putOperations7(Map m) { List.of("ApiKeyAuth"), true, List.of())); + m.put("googlepatents-coverage", new Operation( + "googlepatents-coverage", + "GET", + "/googlepatents/coverage", + List.of(), + List.of(), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("googlepatents-detail", new Operation( + "googlepatents-detail", + "GET", + "/googlepatents/detail", + List.of(), + List.of( + new QueryParam("number", true, "string", List.of()), + new QueryParam("lang", false, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("googlepatents-search", new Operation( + "googlepatents-search", + "GET", + "/googlepatents/search", + List.of(), + List.of( + new QueryParam("q", true, "string", List.of()), + new QueryParam("inventor", false, "string", List.of()), + new QueryParam("assignee", false, "string", List.of()), + new QueryParam("country", false, "string", List.of()), + new QueryParam("status", false, "string", List.of("GRANT", "APPLICATION")), + new QueryParam("type", false, "string", List.of("PATENT", "DESIGN")), + new QueryParam("language", false, "string", List.of("ENGLISH", "GERMAN", "CHINESE", "FRENCH", "SPANISH", "ARABIC", "JAPANESE", "KOREAN", "PORTUGUESE", "RUSSIAN", "ITALIAN", "DUTCH", "SWEDISH", "FINNISH", "NORWEGIAN", "DANISH")), + new QueryParam("date_field", false, "string", List.of("priority", "filing", "publication")), + new QueryParam("before", false, "string", List.of()), + new QueryParam("after", false, "string", List.of()), + new QueryParam("sort", false, "string", List.of("relevance", "new", "old")), + new QueryParam("num", false, "integer", List.of()), + new QueryParam("page", false, "integer", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + true, + List.of())); + m.put("googlepatents-suggest", new Operation( + "googlepatents-suggest", + "GET", + "/googlepatents/suggest", + List.of(), + List.of( + new QueryParam("field", true, "string", List.of("inventor", "assignee")), + new QueryParam("value", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("googleplay-app", new Operation( "googleplay-app", "GET", @@ -7130,6 +7303,18 @@ private static void putOperations7(Map m) { List.of("ApiKeyAuth"), false, List.of())); + m.put("hm-product-related", new Operation( + "hm-product-related", + "GET", + "/hm/product/{product_id}/related", + List.of("product_id"), + List.of(), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("hm-search", new Operation( "hm-search", "GET", @@ -7145,6 +7330,19 @@ private static void putOperations7(Map m) { List.of("ApiKeyAuth"), true, List.of())); + m.put("hm-search-suggestions", new Operation( + "hm-search-suggestions", + "GET", + "/hm/search/suggestions", + List.of(), + List.of( + new QueryParam("query", false, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("hm-stores", new Operation( "hm-stores", "GET", @@ -7542,6 +7740,9 @@ private static void putOperations7(Map m) { List.of("ApiKeyAuth"), true, List.of())); + } + + private static void putOperations8(Map m) { m.put("instacart-departments", new Operation( "instacart-departments", "GET", @@ -7739,9 +7940,6 @@ private static void putOperations7(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations8(Map m) { m.put("jobs-greenhouse-board", new Operation( "jobs-greenhouse-board", "GET", @@ -8455,6 +8653,9 @@ private static void putOperations8(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations9(Map m) { m.put("kalshi-event-metadata", new Operation( "kalshi-event-metadata", "GET", @@ -8659,9 +8860,6 @@ private static void putOperations8(Map m) { List.of("ApiKeyAuth"), true, List.of("cursor"))); - } - - private static void putOperations9(Map m) { m.put("kalshi-markets-history", new Operation( "kalshi-markets-history", "GET", @@ -9298,6 +9496,9 @@ private static void putOperations9(Map m) { List.of("ApiKeyAuth"), true, List.of())); + } + + private static void putOperations10(Map m) { m.put("metacritic-tv", new Operation( "metacritic-tv", "GET", @@ -9484,9 +9685,6 @@ private static void putOperations9(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations10(Map m) { m.put("mlb-game", new Operation( "mlb-game", "GET", @@ -10126,6 +10324,9 @@ private static void putOperations10(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations11(Map m) { m.put("pitchbook-advisor", new Operation( "pitchbook-advisor", "GET", @@ -10336,9 +10537,6 @@ private static void putOperations10(Map m) { List.of("ApiKeyAuth"), true, List.of())); - } - - private static void putOperations11(Map m) { m.put("polymarket-clob-market", new Operation( "polymarket-clob-market", "GET", @@ -10994,6 +11192,9 @@ private static void putOperations11(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations12(Map m) { m.put("polymarket-related-tag-rows", new Operation( "polymarket-related-tag-rows", "GET", @@ -11185,9 +11386,6 @@ private static void putOperations11(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations12(Map m) { m.put("polymarket-tokens-prices", new Operation( "polymarket-tokens-prices", "POST", @@ -11841,6 +12039,9 @@ private static void putOperations12(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations13(Map m) { m.put("rottentomatoes-movie", new Operation( "rottentomatoes-movie", "GET", @@ -12042,9 +12243,6 @@ private static void putOperations12(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations13(Map m) { m.put("sec-filing", new Operation( "sec-filing", "GET", @@ -12692,6 +12890,9 @@ private static void putOperations13(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations14(Map m) { m.put("sofascore-standings", new Operation( "sofascore-standings", "GET", @@ -12893,9 +13094,6 @@ private static void putOperations13(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations14(Map m) { m.put("spotify-podcasts-search", new Operation( "spotify-podcasts-search", "GET", @@ -13644,6 +13842,9 @@ private static void putOperations14(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations15(Map m) { m.put("steam-players", new Operation( "steam-players", "GET", @@ -13871,9 +14072,6 @@ private static void putOperations14(Map m) { List.of("ApiKeyAuth"), true, List.of())); - } - - private static void putOperations15(Map m) { m.put("strava-challenges", new Operation( "strava-challenges", "GET", @@ -14510,6 +14708,9 @@ private static void putOperations15(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations16(Map m) { m.put("tiktok-top-ads-list", new Operation( "tiktok-top-ads-list", "GET", @@ -14734,9 +14935,6 @@ private static void putOperations15(Map m) { List.of("ApiKeyAuth"), true, List.of())); - } - - private static void putOperations16(Map m) { m.put("tmdb-tv", new Operation( "tmdb-tv", "GET", @@ -15406,6 +15604,9 @@ private static void putOperations16(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations17(Map m) { m.put("upwork-job", new Operation( "upwork-job", "GET", @@ -15597,9 +15798,6 @@ private static void putOperations16(Map m) { List.of("ApiKeyAuth"), true, List.of())); - } - - private static void putOperations17(Map m) { m.put("vinted-brands", new Operation( "vinted-brands", "GET", @@ -16207,6 +16405,9 @@ private static void putOperations17(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations18(Map m) { m.put("yahoo-finance-ticker-actions", new Operation( "yahoo-finance-ticker-actions", "GET", @@ -16389,9 +16590,6 @@ private static void putOperations17(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations18(Map m) { m.put("yahoo-finance-ticker-news", new Operation( "yahoo-finance-ticker-news", "GET", @@ -16995,6 +17193,9 @@ private static void putOperations18(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations19(Map m) { m.put("yahoo-sports-standings", new Operation( "yahoo-sports-standings", "GET", @@ -17178,9 +17379,6 @@ private static void putOperations18(Map m) { List.of("ApiKeyAuth"), true, List.of())); - } - - private static void putOperations19(Map m) { m.put("yelp-business-review-highlights", new Operation( "yelp-business-review-highlights", "GET", @@ -17791,6 +17989,13 @@ private static Map> buildGroups() { group.put("vehicle", "autotrader-vehicle"); g.put("autotrader", Map.copyOf(group)); } + { + Map group = new LinkedHashMap<>(); + group.put("bestbuyCategory", "bestbuy-category"); + group.put("bestbuyProduct", "bestbuy-product"); + group.put("bestbuyProductReviews", "bestbuy-product-reviews"); + g.put("bestBuy", Map.copyOf(group)); + } { Map group = new LinkedHashMap<>(); group.put("me", "billing-me"); @@ -18082,6 +18287,7 @@ private static Map> buildGroups() { Map group = new LinkedHashMap<>(); group.put("categories", "depop-categories"); group.put("item", "depop-item"); + group.put("itemSimilar", "depop-item-similar"); group.put("search", "depop-search"); group.put("shop", "depop-shop"); g.put("depop", Map.copyOf(group)); @@ -18113,6 +18319,14 @@ private static Map> buildGroups() { group.put("doordashStoreReviews", "doordash-store-reviews"); g.put("doorDash", Map.copyOf(group)); } + { + Map group = new LinkedHashMap<>(); + group.put("draftkingsEvent", "draftkings-event"); + group.put("draftkingsEventMarkets", "draftkings-event-markets"); + group.put("draftkingsFutures", "draftkings-futures"); + group.put("draftkingsOdds", "draftkings-odds"); + g.put("draftKings", Map.copyOf(group)); + } { Map group = new LinkedHashMap<>(); group.put("duckduckgoImage", "duckduckgo-image"); @@ -18276,6 +18490,14 @@ private static Map> buildGroups() { group.put("videos", "google-videos"); g.put("google", Map.copyOf(group)); } + { + Map group = new LinkedHashMap<>(); + group.put("googlepatentsCoverage", "googlepatents-coverage"); + group.put("googlepatentsDetail", "googlepatents-detail"); + group.put("googlepatentsSearch", "googlepatents-search"); + group.put("googlepatentsSuggest", "googlepatents-suggest"); + g.put("googlePatents", Map.copyOf(group)); + } { Map group = new LinkedHashMap<>(); group.put("app", "googleplay-app"); @@ -18296,7 +18518,9 @@ private static Map> buildGroups() { group.put("hmCategories", "hm-categories"); group.put("hmListing", "hm-listing"); group.put("hmProduct", "hm-product"); + group.put("hmProductRelated", "hm-product-related"); group.put("hmSearch", "hm-search"); + group.put("hmSearchSuggestions", "hm-search-suggestions"); group.put("hmStores", "hm-stores"); g.put("hM", Map.copyOf(group)); } diff --git a/src/main/java/net/crawlora/Version.java b/src/main/java/net/crawlora/Version.java index fa9947d..fc57950 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.35.0-sdk.1"; + public static final String VERSION = "1.36.0-sdk.1"; } diff --git a/src/main/java/net/crawlora/groups/BestBuyGroup.java b/src/main/java/net/crawlora/groups/BestBuyGroup.java new file mode 100644 index 0000000..4fb1a93 --- /dev/null +++ b/src/main/java/net/crawlora/groups/BestBuyGroup.java @@ -0,0 +1,87 @@ +package net.crawlora.groups; + +// Generated by scripts/generate.py. Do not edit manually. + +import java.util.Map; +import net.crawlora.CrawloraClient; +import net.crawlora.OperationGroup; +import net.crawlora.RequestOptions; + +/** + * Generated typed accessor for the "bestBuy" operation group. + * Reach it via {@code client.bestBuy()}. + */ +public final class BestBuyGroup { + private final CrawloraClient client; + + public BestBuyGroup(CrawloraClient client) { + this.client = client; + } + + /** + * bestbuy-category (GET /bestbuy/category). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object bestbuyCategory(Map params) { + return bestbuyCategory(params, null); + } + + /** + * bestbuy-category (GET /bestbuy/category). 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 bestbuyCategory(Map params, RequestOptions options) { + OperationGroup.checkParams("bestbuy-category", params); + return client.request("bestbuy-category", params, options); + } + + /** + * bestbuy-product (GET /bestbuy/product). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object bestbuyProduct(Map params) { + return bestbuyProduct(params, null); + } + + /** + * bestbuy-product (GET /bestbuy/product). 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 bestbuyProduct(Map params, RequestOptions options) { + OperationGroup.checkParams("bestbuy-product", params); + return client.request("bestbuy-product", params, options); + } + + /** + * bestbuy-product-reviews (GET /bestbuy/product/reviews). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object bestbuyProductReviews(Map params) { + return bestbuyProductReviews(params, null); + } + + /** + * bestbuy-product-reviews (GET /bestbuy/product/reviews). 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 bestbuyProductReviews(Map params, RequestOptions options) { + OperationGroup.checkParams("bestbuy-product-reviews", params); + return client.request("bestbuy-product-reviews", params, options); + } + +} diff --git a/src/main/java/net/crawlora/groups/DepopGroup.java b/src/main/java/net/crawlora/groups/DepopGroup.java index aa5d870..b2249a4 100644 --- a/src/main/java/net/crawlora/groups/DepopGroup.java +++ b/src/main/java/net/crawlora/groups/DepopGroup.java @@ -71,6 +71,28 @@ public Object item(Map params, RequestOptions options) { return client.request("depop-item", params, options); } + /** + * depop-item-similar (GET /depop/item/{slug}/similar). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object itemSimilar(Map params) { + return itemSimilar(params, null); + } + + /** + * depop-item-similar (GET /depop/item/{slug}/similar). 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 itemSimilar(Map params, RequestOptions options) { + OperationGroup.checkParams("depop-item-similar", params); + return client.request("depop-item-similar", params, options); + } + /** * depop-search (GET /depop/search). * diff --git a/src/main/java/net/crawlora/groups/DraftKingsGroup.java b/src/main/java/net/crawlora/groups/DraftKingsGroup.java new file mode 100644 index 0000000..7243320 --- /dev/null +++ b/src/main/java/net/crawlora/groups/DraftKingsGroup.java @@ -0,0 +1,109 @@ +package net.crawlora.groups; + +// Generated by scripts/generate.py. Do not edit manually. + +import java.util.Map; +import net.crawlora.CrawloraClient; +import net.crawlora.OperationGroup; +import net.crawlora.RequestOptions; + +/** + * Generated typed accessor for the "draftKings" operation group. + * Reach it via {@code client.draftKings()}. + */ +public final class DraftKingsGroup { + private final CrawloraClient client; + + public DraftKingsGroup(CrawloraClient client) { + this.client = client; + } + + /** + * draftkings-event (GET /draftkings/event). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsEvent(Map params) { + return draftkingsEvent(params, null); + } + + /** + * draftkings-event (GET /draftkings/event). 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 draftkingsEvent(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-event", params); + return client.request("draftkings-event", params, options); + } + + /** + * draftkings-event-markets (GET /draftkings/event-markets). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsEventMarkets(Map params) { + return draftkingsEventMarkets(params, null); + } + + /** + * draftkings-event-markets (GET /draftkings/event-markets). 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 draftkingsEventMarkets(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-event-markets", params); + return client.request("draftkings-event-markets", params, options); + } + + /** + * draftkings-futures (GET /draftkings/futures). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsFutures(Map params) { + return draftkingsFutures(params, null); + } + + /** + * draftkings-futures (GET /draftkings/futures). 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 draftkingsFutures(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-futures", params); + return client.request("draftkings-futures", params, options); + } + + /** + * draftkings-odds (GET /draftkings/odds). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsOdds(Map params) { + return draftkingsOdds(params, null); + } + + /** + * draftkings-odds (GET /draftkings/odds). 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 draftkingsOdds(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-odds", params); + return client.request("draftkings-odds", params, options); + } + +} diff --git a/src/main/java/net/crawlora/groups/GooglePatentsGroup.java b/src/main/java/net/crawlora/groups/GooglePatentsGroup.java new file mode 100644 index 0000000..728f08f --- /dev/null +++ b/src/main/java/net/crawlora/groups/GooglePatentsGroup.java @@ -0,0 +1,118 @@ +package net.crawlora.groups; + +// Generated by scripts/generate.py. Do not edit manually. + +import java.util.Map; +import net.crawlora.CrawloraClient; +import net.crawlora.OperationGroup; +import net.crawlora.RequestOptions; + +/** + * Generated typed accessor for the "googlePatents" operation group. + * Reach it via {@code client.googlePatents()}. + */ +public final class GooglePatentsGroup { + private final CrawloraClient client; + + public GooglePatentsGroup(CrawloraClient client) { + this.client = client; + } + + /** + * googlepatents-coverage (GET /googlepatents/coverage). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object googlepatentsCoverage(Map params) { + return googlepatentsCoverage(params, null); + } + + /** + * googlepatents-coverage (GET /googlepatents/coverage). 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 googlepatentsCoverage(Map params, RequestOptions options) { + OperationGroup.checkParams("googlepatents-coverage", params); + return client.request("googlepatents-coverage", params, options); + } + + /** + * googlepatents-coverage (GET /googlepatents/coverage). with no parameters. + * + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object googlepatentsCoverage() { + return googlepatentsCoverage(Map.of(), null); + } + + /** + * googlepatents-detail (GET /googlepatents/detail). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object googlepatentsDetail(Map params) { + return googlepatentsDetail(params, null); + } + + /** + * googlepatents-detail (GET /googlepatents/detail). 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 googlepatentsDetail(Map params, RequestOptions options) { + OperationGroup.checkParams("googlepatents-detail", params); + return client.request("googlepatents-detail", params, options); + } + + /** + * googlepatents-search (GET /googlepatents/search). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object googlepatentsSearch(Map params) { + return googlepatentsSearch(params, null); + } + + /** + * googlepatents-search (GET /googlepatents/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 googlepatentsSearch(Map params, RequestOptions options) { + OperationGroup.checkParams("googlepatents-search", params); + return client.request("googlepatents-search", params, options); + } + + /** + * googlepatents-suggest (GET /googlepatents/suggest). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object googlepatentsSuggest(Map params) { + return googlepatentsSuggest(params, null); + } + + /** + * googlepatents-suggest (GET /googlepatents/suggest). 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 googlepatentsSuggest(Map params, RequestOptions options) { + OperationGroup.checkParams("googlepatents-suggest", params); + return client.request("googlepatents-suggest", params, options); + } + +} diff --git a/src/main/java/net/crawlora/groups/HMGroup.java b/src/main/java/net/crawlora/groups/HMGroup.java index 15ae94d..f785b58 100644 --- a/src/main/java/net/crawlora/groups/HMGroup.java +++ b/src/main/java/net/crawlora/groups/HMGroup.java @@ -93,6 +93,28 @@ public Object hmProduct(Map params, RequestOptions options) { return client.request("hm-product", params, options); } + /** + * hm-product-related (GET /hm/product/{product_id}/related). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object hmProductRelated(Map params) { + return hmProductRelated(params, null); + } + + /** + * hm-product-related (GET /hm/product/{product_id}/related). 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 hmProductRelated(Map params, RequestOptions options) { + OperationGroup.checkParams("hm-product-related", params); + return client.request("hm-product-related", params, options); + } + /** * hm-search (GET /hm/search). * @@ -115,6 +137,37 @@ public Object hmSearch(Map params, RequestOptions options) { return client.request("hm-search", params, options); } + /** + * hm-search-suggestions (GET /hm/search/suggestions). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object hmSearchSuggestions(Map params) { + return hmSearchSuggestions(params, null); + } + + /** + * hm-search-suggestions (GET /hm/search/suggestions). 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 hmSearchSuggestions(Map params, RequestOptions options) { + OperationGroup.checkParams("hm-search-suggestions", params); + return client.request("hm-search-suggestions", params, options); + } + + /** + * hm-search-suggestions (GET /hm/search/suggestions). with no parameters. + * + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object hmSearchSuggestions() { + return hmSearchSuggestions(Map.of(), null); + } + /** * hm-stores (GET /hm/stores). * From c1a434af9d67608de198909bb79aef509aca8333 Mon Sep 17 00:00:00 2001 From: Tony Wang Date: Sun, 16 Aug 2026 02:04:42 +0800 Subject: [PATCH 2/2] sdk: regenerate public contract Refresh generated clients for the 1,222-operation public API contract, including USPTO Patent Public Search. --- CHANGELOG.md | 2 +- docs/operations.md | 48 +- openapi/public.json | 5421 +++++++++++++++-- src/main/java/net/crawlora/ClientGroups.java | 24 +- src/main/java/net/crawlora/OperationId.java | 40 +- src/main/java/net/crawlora/Operations.java | 606 +- .../net/crawlora/groups/BestBuyGroup.java | 203 + .../java/net/crawlora/groups/DepopGroup.java | 128 + .../net/crawlora/groups/DraftKingsGroup.java | 109 - .../groups/DraftKingsSportsbookGroup.java | 321 + .../crawlora/groups/GooglePatentsGroup.java | 44 + .../net/crawlora/groups/SephoraGroup.java | 175 + .../groups/UsptoPatentPublicSearchGroup.java | 65 + 13 files changed, 6634 insertions(+), 552 deletions(-) delete mode 100644 src/main/java/net/crawlora/groups/DraftKingsGroup.java create mode 100644 src/main/java/net/crawlora/groups/DraftKingsSportsbookGroup.java create mode 100644 src/main/java/net/crawlora/groups/SephoraGroup.java create mode 100644 src/main/java/net/crawlora/groups/UsptoPatentPublicSearchGroup.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 29b97c6..b9529d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## v1.36.0-sdk.1 -- Added DraftKings Sportsbook futures-market support and synchronized the current public API contract (1190 operations). +- Added DraftKings Sportsbook futures-market support, USPTO Patent Public Search, and synchronized the current public API contract (1222 operations). ## v1.35.0-sdk.1 diff --git a/docs/operations.md b/docs/operations.md index 499888e..6de9f0f 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: `1190` +Total operations: `1222` | Group | SDK method | Operation ID | HTTP | Params | Auth | Response | Notes | | --- | --- | --- | --- | --- | --- | --- | --- | @@ -72,9 +72,17 @@ Total operations: `1190` | autotrader | `autotrader.dealer` | `autotrader-dealer` | `GET /autotrader/dealer/{id}` | `id` (path String required) | `ApiKeyAuth` | `AutotraderDealerResponse` | | | autotrader | `autotrader.search` | `autotrader-search` | `GET /autotrader/search` | `query` (query String)
`zip` (query String)
`radius` (query Integer)
`make` (query String)
`model` (query String)
`trim` (query String)
`condition` (query String)
`body_style` (query String)
`seller_type` (query String)
`min_year` (query Integer)
`max_year` (query Integer)
`min_price` (query Integer)
`max_price` (query Integer)
`max_mileage` (query Integer)
`page` (query Integer) | `ApiKeyAuth` | `AutotraderSearchResponse` | | | autotrader | `autotrader.vehicle` | `autotrader-vehicle` | `GET /autotrader/vehicle/{id}` | `id` (path String required) | `ApiKeyAuth` | `AutotraderVehicleResponse` | | -| bestBuy | `bestBuy.bestbuyCategory` | `bestbuy-category` | `GET /bestbuy/category` | `category_id` (query String required) | `ApiKeyAuth` | `BestBuyBestbuyCategoryResponse` | | +| bestBuy | `bestBuy.bestbuyBrands` | `bestbuy-brands` | `GET /bestbuy/brands` | none | `ApiKeyAuth` | `BestBuyBestbuyBrandsResponse` | | +| bestBuy | `bestBuy.bestbuyCategories` | `bestbuy-categories` | `GET /bestbuy/categories` | none | `ApiKeyAuth` | `BestBuyBestbuyCategoriesResponse` | | +| bestBuy | `bestBuy.bestbuyCategoriesTrending` | `bestbuy-categories-trending` | `GET /bestbuy/categories/trending` | none | `ApiKeyAuth` | `BestBuyBestbuyCategoriesTrendingResponse` | | +| bestBuy | `bestBuy.bestbuyCategory` | `bestbuy-category` | `GET /bestbuy/category` | `category_id` (query String required)
`page` (query Integer) | `ApiKeyAuth` | `BestBuyBestbuyCategoryResponse` | | +| bestBuy | `bestBuy.bestbuyCategorySubcategories` | `bestbuy-category-subcategories` | `GET /bestbuy/category/subcategories` | `category_id` (query String required) | `ApiKeyAuth` | `BestBuyBestbuyCategorySubcategoriesResponse` | | | bestBuy | `bestBuy.bestbuyProduct` | `bestbuy-product` | `GET /bestbuy/product` | `sku` (query String required) | `ApiKeyAuth` | `BestBuyBestbuyProductResponse` | | +| bestBuy | `bestBuy.bestbuyProductQuestions` | `bestbuy-product-questions` | `GET /bestbuy/product/questions` | `sku` (query String required) | `ApiKeyAuth` | `BestBuyBestbuyProductQuestionsResponse` | | +| bestBuy | `bestBuy.bestbuyProductRelated` | `bestbuy-product-related` | `GET /bestbuy/product/related` | `sku` (query String required) | `ApiKeyAuth` | `BestBuyBestbuyProductRelatedResponse` | | | bestBuy | `bestBuy.bestbuyProductReviews` | `bestbuy-product-reviews` | `GET /bestbuy/product/reviews` | `sku` (query String required) | `ApiKeyAuth` | `BestBuyBestbuyProductReviewsResponse` | | +| bestBuy | `bestBuy.bestbuySearch` | `bestbuy-search` | `GET /bestbuy/search` | `q` (query String required)
`page` (query Integer) | `ApiKeyAuth` | `BestBuyBestbuySearchResponse` | | +| bestBuy | `bestBuy.bestbuyStores` | `bestbuy-stores` | `GET /bestbuy/stores` | `state` (query String required)
`city` (query String required) | `ApiKeyAuth` | `BestBuyBestbuyStoresResponse` | | | billing | `billing.me` | `billing-me` | `GET /billing/me` | none | `ApiKeyAuth` | `BillingMeResponse` | | | billing | `billing.meCheckout` | `billing-me-checkout` | `POST /billing/me/checkout` | `request` (body String required) | `ApiKeyAuth` | `BillingMeCheckoutResponse` | | | billing | `billing.meEvents` | `billing-me-events` | `GET /billing/me/events` | `limit` (query Integer)
`from` (query String)
`to` (query String)
`endpoint` (query String)
`request_id` (query String)
`event_status` (query String)
`billable` (query Boolean) | `ApiKeyAuth` | `BillingMeEventsResponse` | | @@ -298,11 +306,16 @@ Total operations: `1190` | datasets | `datasets.xUsersFacets` | `datasets-x-users-facets` | `GET /datasets/x-users/facets` | `facet` (query String required)
`q` (query String)
`username` (query String)
`source_tier` (query String)
`is_blue_verified` (query Boolean)
`has_bio` (query Boolean)
`has_external_url` (query Boolean)
`min_followers` (query Integer)
`max_followers` (query Integer)
`min_ratio` (query Double)
`max_ratio` (query Double)
`created_after` (query String)
`created_before` (query String)
`crawled_after` (query String)
`crawled_before` (query String)
`sort` (query String) | `ApiKeyAuth` | `DatasetsXUsersFacetsResponse` | | | datasets | `datasets.xUsersItem` | `datasets-x-users-item` | `GET /datasets/x-users/items/{username}` | `username` (path String required) | `ApiKeyAuth` | `DatasetsXUsersItemResponse` | | | datasets | `datasets.xUsersSearch` | `datasets-x-users-search` | `GET /datasets/x-users/search` | `q` (query String)
`username` (query String)
`source_tier` (query String)
`is_blue_verified` (query Boolean)
`has_bio` (query Boolean)
`has_external_url` (query Boolean)
`min_followers` (query Integer)
`max_followers` (query Integer)
`min_ratio` (query Double)
`max_ratio` (query Double)
`created_after` (query String)
`created_before` (query String)
`crawled_after` (query String)
`crawled_before` (query String)
`sort` (query String)
`page` (query Integer)
`page_size` (query Integer) | `ApiKeyAuth` | `DatasetsXUsersSearchResponse` | | +| depop | `depop.brands` | `depop-brands` | `GET /depop/brands` | none | `ApiKeyAuth` | `DepopBrandsResponse` | | | depop | `depop.categories` | `depop-categories` | `GET /depop/categories` | none | `ApiKeyAuth` | `DepopCategoriesResponse` | | | depop | `depop.item` | `depop-item` | `GET /depop/item/{slug}` | `slug` (path String required) | `ApiKeyAuth` | `DepopItemResponse` | | | depop | `depop.itemSimilar` | `depop-item-similar` | `GET /depop/item/{slug}/similar` | `slug` (path String required)
`limit` (query Integer)
`after` (query String) | `ApiKeyAuth` | `DepopItemSimilarResponse` | | -| depop | `depop.search` | `depop-search` | `GET /depop/search` | `query` (query String required)
`price_min` (query Double)
`price_max` (query Double)
`condition` (query String)
`colours` (query String)
`on_sale` (query Boolean)
`sort` (query String)
`category` (query String)
`subcategory` (query String)
`gender` (query String)
`is_kids` (query Boolean)
`brand_ids` (query String)
`after` (query String) | `ApiKeyAuth` | `DepopSearchResponse` | | -| depop | `depop.shop` | `depop-shop` | `GET /depop/shop/{username}` | `username` (path String required)
`price_min` (query Double)
`price_max` (query Double)
`condition` (query String)
`colours` (query String)
`on_sale` (query Boolean)
`sort` (query String)
`category` (query String)
`subcategory` (query String)
`gender` (query String) | `ApiKeyAuth` | `DepopShopResponse` | | +| depop | `depop.search` | `depop-search` | `GET /depop/search` | `query` (query String required)
`price_min` (query Double)
`price_max` (query Double)
`condition` (query String)
`colours` (query String)
`on_sale` (query Boolean)
`sort` (query String)
`category` (query String)
`subcategory` (query String)
`gender` (query String)
`is_kids` (query Boolean)
`brand_ids` (query String)
`sizes` (query String)
`after` (query String) | `ApiKeyAuth` | `DepopSearchResponse` | | +| depop | `depop.searchSellers` | `depop-search-sellers` | `GET /depop/search-sellers` | `query` (query String required) | `ApiKeyAuth` | `DepopSearchSellersResponse` | | +| depop | `depop.searchFacets` | `depop-search-facets` | `GET /depop/search/facets` | `query` (query String required) | `ApiKeyAuth` | `DepopSearchFacetsResponse` | | +| depop | `depop.shop` | `depop-shop` | `GET /depop/shop/{username}` | `username` (path String required)
`price_min` (query Double)
`price_max` (query Double)
`condition` (query String)
`colours` (query String)
`on_sale` (query Boolean)
`sort` (query String)
`category` (query String)
`subcategory` (query String)
`gender` (query String)
`sizes` (query String) | `ApiKeyAuth` | `DepopShopResponse` | | +| depop | `depop.sizes` | `depop-sizes` | `GET /depop/sizes` | none | `ApiKeyAuth` | `DepopSizesResponse` | | +| depop | `depop.suggest` | `depop-suggest` | `GET /depop/suggest` | `query` (query String required) | `ApiKeyAuth` | `DepopSuggestResponse` | | | discogs | `discogs.artist` | `discogs-artist` | `GET /discogs/artist/{id}` | `id` (path String required) | `ApiKeyAuth` | `DiscogsArtistResponse` | | | discogs | `discogs.artistReleases` | `discogs-artist-releases` | `GET /discogs/artist/{id}/releases` | `id` (path String required)
`page` (query Integer)
`per_page` (query Integer) | `ApiKeyAuth` | `DiscogsArtistReleasesResponse` | | | discogs | `discogs.label` | `discogs-label` | `GET /discogs/label/{id}` | `id` (path String required) | `ApiKeyAuth` | `DiscogsLabelResponse` | | @@ -322,10 +335,18 @@ Total operations: `1190` | doorDash | `doorDash.doordashStoreItem` | `doordash-store-item` | `GET /doordash/store/{store_id}/item/{item_id}` | `store_id` (path String required)
`item_id` (path String required)
`latitude` (query Double required)
`longitude` (query Double required) | `ApiKeyAuth` | `DoorDashDoordashStoreItemResponse` | | | doorDash | `doorDash.doordashStoreMenu` | `doordash-store-menu` | `GET /doordash/store/{store_id}/menu` | `store_id` (path String required)
`latitude` (query Double required)
`longitude` (query Double required) | `ApiKeyAuth` | `DoorDashDoordashStoreMenuResponse` | | | doorDash | `doorDash.doordashStoreReviews` | `doordash-store-reviews` | `GET /doordash/store/{store_id}/reviews` | `store_id` (path String required)
`latitude` (query Double required)
`longitude` (query Double required) | `ApiKeyAuth` | `DoorDashDoordashStoreReviewsResponse` | | -| draftKings | `draftKings.draftkingsEvent` | `draftkings-event` | `GET /draftkings/event` | `event_id` (query String required) | `ApiKeyAuth` | `DraftKingsDraftkingsEventResponse` | | -| draftKings | `draftKings.draftkingsEventMarkets` | `draftkings-event-markets` | `GET /draftkings/event-markets` | `event_id` (query String required)
`subcategory_id` (query String required) | `ApiKeyAuth` | `DraftKingsDraftkingsEventMarketsResponse` | | -| draftKings | `draftKings.draftkingsFutures` | `draftkings-futures` | `GET /draftkings/futures` | `league_id` (query String required)
`subcategory_id` (query String required) | `ApiKeyAuth` | `DraftKingsDraftkingsFuturesResponse` | | -| draftKings | `draftKings.draftkingsOdds` | `draftkings-odds` | `GET /draftkings/odds` | `league_id` (query String required) | `ApiKeyAuth` | `DraftKingsDraftkingsOddsResponse` | | +| draftKingsSportsbook | `draftKingsSportsbook.draftkingsEvent` | `draftkings-event` | `GET /draftkings/sportsbook/event` | `event_id` (query String required) | `ApiKeyAuth` | `DraftKingsSportsbookDraftkingsEventResponse` | | +| draftKingsSportsbook | `draftKingsSportsbook.draftkingsEventContext` | `draftkings-event-context` | `GET /draftkings/sportsbook/event-context` | `event_id` (query String required) | `ApiKeyAuth` | `DraftKingsSportsbookDraftkingsEventContextResponse` | | +| draftKingsSportsbook | `draftKingsSportsbook.draftkingsEventMarkets` | `draftkings-event-markets` | `GET /draftkings/sportsbook/event-markets` | `event_id` (query String required)
`subcategory_id` (query String required) | `ApiKeyAuth` | `DraftKingsSportsbookDraftkingsEventMarketsResponse` | | +| draftKingsSportsbook | `draftKingsSportsbook.draftkingsFeaturedLeagues` | `draftkings-featured-leagues` | `GET /draftkings/sportsbook/featured-leagues` | none | `ApiKeyAuth` | `DraftKingsSportsbookDraftkingsFeaturedLeaguesResponse` | | +| draftKingsSportsbook | `draftKingsSportsbook.draftkingsFutures` | `draftkings-futures` | `GET /draftkings/sportsbook/futures` | `league_id` (query String required)
`subcategory_id` (query String required) | `ApiKeyAuth` | `DraftKingsSportsbookDraftkingsFuturesResponse` | | +| draftKingsSportsbook | `draftKingsSportsbook.draftkingsLeagueEvents` | `draftkings-league-events` | `GET /draftkings/sportsbook/league-events` | `league_id` (query String required) | `ApiKeyAuth` | `DraftKingsSportsbookDraftkingsLeagueEventsResponse` | | +| draftKingsSportsbook | `draftKingsSportsbook.draftkingsLeagues` | `draftkings-leagues` | `GET /draftkings/sportsbook/leagues` | none | `ApiKeyAuth` | `DraftKingsSportsbookDraftkingsLeaguesResponse` | | +| draftKingsSportsbook | `draftKingsSportsbook.draftkingsLive` | `draftkings-live` | `GET /draftkings/sportsbook/live` | none | `ApiKeyAuth` | `DraftKingsSportsbookDraftkingsLiveResponse` | | +| draftKingsSportsbook | `draftKingsSportsbook.draftkingsOdds` | `draftkings-odds` | `GET /draftkings/sportsbook/odds` | `league_id` (query String required) | `ApiKeyAuth` | `DraftKingsSportsbookDraftkingsOddsResponse` | | +| draftKingsSportsbook | `draftKingsSportsbook.draftkingsQuickLinks` | `draftkings-quick-links` | `GET /draftkings/sportsbook/quick-links` | none | `ApiKeyAuth` | `DraftKingsSportsbookDraftkingsQuickLinksResponse` | | +| draftKingsSportsbook | `draftKingsSportsbook.draftkingsTeam` | `draftkings-team` | `GET /draftkings/sportsbook/team` | `team_id` (query String required)
`sport` (query String required)
`slug` (query String required) | `ApiKeyAuth` | `DraftKingsSportsbookDraftkingsTeamResponse` | | +| draftKingsSportsbook | `draftKingsSportsbook.draftkingsTeams` | `draftkings-teams` | `GET /draftkings/sportsbook/teams` | `league` (query String required) | `ApiKeyAuth` | `DraftKingsSportsbookDraftkingsTeamsResponse` | | | duckDuckGoSearch | `duckDuckGoSearch.duckduckgoImage` | `duckduckgo-image` | `GET /duckduckgo/image` | `q` (query String required)
`page` (query Integer)
`region` (query String) | `ApiKeyAuth` | `DuckDuckGoSearchDuckduckgoImageResponse` | | | duckDuckGoSearch | `duckDuckGoSearch.duckduckgoNews` | `duckduckgo-news` | `GET /duckduckgo/news` | `q` (query String required)
`page` (query Integer)
`region` (query String) | `ApiKeyAuth` | `DuckDuckGoSearchDuckduckgoNewsResponse` | | | duckDuckGoSearch | `duckDuckGoSearch.duckduckgoSearch` | `duckduckgo-search` | `GET /duckduckgo/search` | `q` (query String required)
`page` (query Integer)
`region` (query String)
`time_range` (query String)
`safe_search` (query String) | `ApiKeyAuth` | `DuckDuckGoSearchDuckduckgoSearchResponse` | | @@ -441,8 +462,10 @@ Total operations: `1190` | google | `google.trendsTrending` | `google-trends-trending` | `GET /google/trends/trending` | `geo` (query String)
`hl` (query String)
`tz` (query Integer)
`window` (query String)
`time_range` (query String)
`category` (query String)
`status` (query String)
`sort_by` (query String)
`limit` (query Integer) | `ApiKeyAuth` | `GoogleTrendsTrendingResponse` | | | google | `google.trendsTrendingDetail` | `google-trends-trending-detail` | `POST /google/trends/trending/detail` | `request` (body String required) | `ApiKeyAuth` | `GoogleTrendsTrendingDetailResponse` | | | google | `google.videos` | `google-videos` | `GET /google/videos` | `q` (query String required)
`page` (query Integer)
`count` (query Integer)
`country` (query String)
`lang` (query String) | `ApiKeyAuth` | `GoogleVideosResponse` | | +| googlePatents | `googlePatents.googlepatentsClassification` | `googlepatents-classification` | `GET /googlepatents/classification` | `code` (query String required) | `ApiKeyAuth` | `GooglePatentsGooglepatentsClassificationResponse` | | | googlePatents | `googlePatents.googlepatentsCoverage` | `googlepatents-coverage` | `GET /googlepatents/coverage` | none | `ApiKeyAuth` | `GooglePatentsGooglepatentsCoverageResponse` | | | googlePatents | `googlePatents.googlepatentsDetail` | `googlepatents-detail` | `GET /googlepatents/detail` | `number` (query String required)
`lang` (query String) | `ApiKeyAuth` | `GooglePatentsGooglepatentsDetailResponse` | | +| googlePatents | `googlePatents.googlepatentsRecent` | `googlepatents-recent` | `GET /googlepatents/recent` | `week` (query String required) | `ApiKeyAuth` | `GooglePatentsGooglepatentsRecentResponse` | | | googlePatents | `googlePatents.googlepatentsSearch` | `googlepatents-search` | `GET /googlepatents/search` | `q` (query String required)
`inventor` (query String)
`assignee` (query String)
`country` (query String)
`status` (query String)
`type` (query String)
`language` (query String)
`date_field` (query String)
`before` (query String)
`after` (query String)
`sort` (query String)
`num` (query Integer)
`page` (query Integer) | `ApiKeyAuth` | `GooglePatentsGooglepatentsSearchResponse` | | | googlePatents | `googlePatents.googlepatentsSuggest` | `googlepatents-suggest` | `GET /googlepatents/suggest` | `field` (query String required)
`value` (query String required) | `ApiKeyAuth` | `GooglePatentsGooglepatentsSuggestResponse` | | | googlePlay | `googlePlay.app` | `googleplay-app` | `GET /googleplay/app` | `app_id` (query String required)
`country` (query String)
`lang` (query String) | `ApiKeyAuth` | `GooglePlayAppResponse` | | @@ -809,6 +832,13 @@ Total operations: `1190` | secEdgar | `secEdgar.secFullTextSearch` | `sec-full-text-search` | `GET /sec/full-text-search` | `q` (query String required)
`forms` (query String)
`from` (query String)
`to` (query String)
`page` (query Integer) | `ApiKeyAuth` | `SecEdgarSecFullTextSearchResponse` | | | secEdgar | `secEdgar.secInsider` | `sec-insider` | `GET /sec/insider` | `cik` (query String)
`ticker` (query String)
`limit` (query Integer) | `ApiKeyAuth` | `SecEdgarSecInsiderResponse` | | | secEdgar | `secEdgar.secInstitutionalHoldings` | `sec-institutional-holdings` | `GET /sec/institutional-holdings` | `cik` (query String required)
`limit` (query Integer) | `ApiKeyAuth` | `SecEdgarSecInstitutionalHoldingsResponse` | | +| sephora | `sephora.category` | `sephora-category` | `GET /sephora/category` | `slug` (query String required)
`page` (query Integer)
`sort_by` (query String)
`price_min` (query Integer)
`price_max` (query Integer)
`brand` (query List)
`rating_min` (query Integer)
`is_new` (query Boolean)
`filter` (query List) | `ApiKeyAuth` | `SephoraCategoryResponse` | | +| sephora | `sephora.product` | `sephora-product` | `GET /sephora/product` | `product_id` (query String required) | `ApiKeyAuth` | `SephoraProductResponse` | | +| sephora | `sephora.productQuestions` | `sephora-product-questions` | `GET /sephora/product/questions` | `product_id` (query String required)
`page` (query Integer) | `ApiKeyAuth` | `SephoraProductQuestionsResponse` | | +| sephora | `sephora.productReviews` | `sephora-product-reviews` | `GET /sephora/product/reviews` | `product_id` (query String required)
`page` (query Integer) | `ApiKeyAuth` | `SephoraProductReviewsResponse` | | +| sephora | `sephora.search` | `sephora-search` | `GET /sephora/search` | `query` (query String required)
`page` (query Integer)
`page_size` (query Integer)
`sort_by` (query String)
`price_min` (query Integer)
`price_max` (query Integer)
`brand` (query List)
`rating_min` (query Integer)
`is_new` (query Boolean)
`filter` (query List) | `ApiKeyAuth` | `SephoraSearchResponse` | | +| sephora | `sephora.stores` | `sephora-stores` | `GET /sephora/stores` | `latitude` (query Double required)
`longitude` (query Double required)
`radius` (query Integer)
`limit` (query Integer) | `ApiKeyAuth` | `SephoraStoresResponse` | | +| sephora | `sephora.suggest` | `sephora-suggest` | `GET /sephora/suggest` | `query` (query String required) | `ApiKeyAuth` | `SephoraSuggestResponse` | | | shopApp | `shopApp.analysis` | `shop-app-analysis` | `GET /shop-app/analysis` | `query` (query String required)
`limit` (query Integer)
`in_stock` (query Boolean)
`on_sale` (query Boolean)
`deep_search` (query Boolean) | `ApiKeyAuth` | `ShopAppAnalysisResponse` | | | shopApp | `shopApp.categories` | `shop-app-categories` | `GET /shop-app/categories` | none | `ApiKeyAuth` | `ShopAppCategoriesResponse` | | | shopApp | `shopApp.product` | `shop-app-product` | `GET /shop-app/products/{id}` | `id` (path String required)
`variant_id` (query String) | `ApiKeyAuth` | `ShopAppProductResponse` | | @@ -1041,6 +1071,8 @@ Total operations: `1190` | accountDeletion | `accountDeletion.cancel` | `account-deletion-cancel` | `DELETE /user/me/deletion-request` | none | `JWTAuth` | `AccountDeletionCancelResponse` | | | accountDeletion | `accountDeletion.myRequest` | `account-deletion-my-request` | `GET /user/me/deletion-request` | none | `JWTAuth` | `AccountDeletionMyRequestResponse` | | | accountDeletion | `accountDeletion.request` | `account-deletion-request` | `POST /user/me/deletion-request` | `request` (body String) | `JWTAuth` | `AccountDeletionRequestResponse` | | +| usptoPatentPublicSearch | `usptoPatentPublicSearch.usptoppubsDetail` | `usptoppubs-detail` | `GET /usptoppubs/detail` | `guid` (query String required)
`source` (query String required) | `ApiKeyAuth` | `UsptoPatentPublicSearchUsptoppubsDetailResponse` | | +| usptoPatentPublicSearch | `usptoPatentPublicSearch.usptoppubsSearch` | `usptoppubs-search` | `GET /usptoppubs/search` | `q` (query String required)
`databases` (query String)
`num` (query Integer)
`page` (query Integer) | `ApiKeyAuth` | `UsptoPatentPublicSearchUsptoppubsSearchResponse` | | | vinted | `vinted.brand` | `vinted-brand` | `GET /vinted/brand` | `id` (query String required)
`price_from` (query Double)
`price_to` (query Double)
`order` (query String)
`page` (query Integer) | `ApiKeyAuth` | `VintedBrandResponse` | | | vinted | `vinted.brands` | `vinted-brands` | `GET /vinted/brands` | none | `ApiKeyAuth` | `VintedBrandsResponse` | | | vinted | `vinted.catalog` | `vinted-catalog` | `GET /vinted/catalog` | `search_text` (query String required)
`price_from` (query Double)
`price_to` (query Double)
`order` (query String)
`page` (query Integer) | `ApiKeyAuth` | `VintedCatalogResponse` | | diff --git a/openapi/public.json b/openapi/public.json index a73574d..8a901c7 100644 --- a/openapi/public.json +++ b/openapi/public.json @@ -5276,6 +5276,43 @@ }, "type": "object" }, + "bestbuy.Brand": { + "properties": { + "id": { + "example": "pcmcat128500050005", + "type": "string" + }, + "name": { + "example": "Apple", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.BrandsResponse": { + "properties": { + "brands": { + "items": { + "$ref": "#/definitions/bestbuy.Brand" + }, + "type": "array" + }, + "count": { + "example": 325, + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, "bestbuy.Breadcrumb": { "properties": { "name": { @@ -5288,6 +5325,43 @@ }, "type": "object" }, + "bestbuy.CategoriesResponse": { + "properties": { + "categories": { + "items": { + "$ref": "#/definitions/bestbuy.Category" + }, + "type": "array" + }, + "count": { + "example": 25, + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.Category": { + "properties": { + "id": { + "example": "pcmcat1690836748285", + "type": "string" + }, + "name": { + "example": "TV & Home Theater", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, "bestbuy.CategoryProduct": { "properties": { "image_url": { @@ -5331,6 +5405,10 @@ "fetched_at": { "type": "string" }, + "page": { + "example": 1, + "type": "integer" + }, "products": { "items": { "$ref": "#/definitions/bestbuy.CategoryProduct" @@ -5415,6 +5493,75 @@ }, "type": "object" }, + "bestbuy.ProductQuestion": { + "properties": { + "answer": { + "type": "string" + }, + "answered": { + "example": "Answered 2 months ago", + "type": "string" + }, + "answered_by": { + "example": "ASUS Answers", + "type": "string" + }, + "question": { + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.ProductQuestionsResponse": { + "properties": { + "count": { + "example": 5, + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "questions": { + "items": { + "$ref": "#/definitions/bestbuy.ProductQuestion" + }, + "type": "array" + }, + "sku": { + "example": "6673590", + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.ProductRelatedResponse": { + "properties": { + "count": { + "example": 3, + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "products": { + "items": { + "$ref": "#/definitions/bestbuy.RelatedProduct" + }, + "type": "array" + }, + "sku": { + "example": "6673590", + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, "bestbuy.ProductResponse": { "properties": { "fetched_at": { @@ -5462,6 +5609,32 @@ }, "type": "object" }, + "bestbuy.RelatedProduct": { + "properties": { + "currency_code": { + "example": "USD", + "type": "string" + }, + "image_url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "price": { + "example": 3399.99, + "type": "number" + }, + "sku": { + "example": "6673586", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, "bestbuy.Review": { "properties": { "author": { @@ -5503,6 +5676,221 @@ }, "type": "object" }, + "bestbuy.SearchResponse": { + "properties": { + "count": { + "example": 24, + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "page": { + "example": 1, + "type": "integer" + }, + "products": { + "items": { + "$ref": "#/definitions/bestbuy.CategoryProduct" + }, + "type": "array" + }, + "query": { + "example": "laptop", + "type": "string" + }, + "source_url": { + "type": "string" + }, + "total": { + "example": 6286, + "type": "integer" + } + }, + "type": "object" + }, + "bestbuy.Store": { + "properties": { + "address": { + "example": "2100 N Elston Ave", + "type": "string" + }, + "city": { + "example": "Chicago", + "type": "string" + }, + "country": { + "example": "US", + "type": "string" + }, + "hours": { + "additionalProperties": { + "type": "string" + }, + "description": "Hours maps a full day name (\"Monday\"..\"Sunday\") to that day's\nopening range, e.g. \"10:00-21:00\" -- expanded from schema.org's own\ncomma-joined-days shorthand (see parseOpeningHours). Joined with\n\", \" for the rare split-hours day.", + "type": "object" + }, + "latitude": { + "example": 41.919002, + "type": "number" + }, + "longitude": { + "example": -87.66959, + "type": "number" + }, + "name": { + "example": "Best Buy", + "type": "string" + }, + "phone": { + "example": "(773) 486-0142", + "type": "string" + }, + "postal_code": { + "example": "60614", + "type": "string" + }, + "rating": { + "example": 4.21, + "type": "number" + }, + "review_count": { + "example": 3614, + "type": "integer" + }, + "state": { + "example": "IL", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.StoreResponse": { + "properties": { + "city": { + "example": "Chicago", + "type": "string" + }, + "count": { + "example": 3, + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "state": { + "example": "il", + "type": "string" + }, + "stores": { + "items": { + "$ref": "#/definitions/bestbuy.Store" + }, + "type": "array" + } + }, + "type": "object" + }, + "bestbuy.SubcategoriesResponse": { + "properties": { + "category_id": { + "example": "pcmcat138500050001", + "type": "string" + }, + "count": { + "example": 12, + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "subcategories": { + "items": { + "$ref": "#/definitions/bestbuy.Category" + }, + "type": "array" + } + }, + "type": "object" + }, + "bestbuy.TrendingCategoriesResponse": { + "properties": { + "categories": { + "items": { + "$ref": "#/definitions/bestbuy.TrendingCategory" + }, + "type": "array" + }, + "count": { + "example": 584, + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.TrendingCategory": { + "properties": { + "id": { + "example": "pcmcat247400050000", + "type": "string" + }, + "name": { + "example": "Windows Laptops", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.brandsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/bestbuy.BrandsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.categoriesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/bestbuy.CategoriesResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "bestbuy.categoryResponseDoc": { "properties": { "code": { @@ -5519,6 +5907,38 @@ }, "type": "object" }, + "bestbuy.productQuestionsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/bestbuy.ProductQuestionsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.productRelatedResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/bestbuy.ProductRelatedResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "bestbuy.productResponseDoc": { "properties": { "code": { @@ -5551,6 +5971,70 @@ }, "type": "object" }, + "bestbuy.searchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/bestbuy.SearchResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.storesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/bestbuy.StoreResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.subcategoriesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/bestbuy.SubcategoriesResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "bestbuy.trendingCategoriesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/bestbuy.TrendingCategoriesResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "billing.billingEndpointLedgerDoc": { "properties": { "charged_requests": { @@ -20402,6 +20886,34 @@ }, "type": "object" }, + "depop.Brand": { + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "type": "object" + }, + "depop.BrandsResponse": { + "properties": { + "brands": { + "items": { + "$ref": "#/definitions/depop.Brand" + }, + "type": "array" + }, + "total": { + "type": "integer" + } + }, + "type": "object" + }, "depop.CategoriesResponse": { "properties": { "departments": { @@ -20457,6 +20969,40 @@ }, "type": "object" }, + "depop.DepartmentFacets": { + "properties": { + "categories": { + "items": { + "$ref": "#/definitions/depop.FacetCount" + }, + "type": "array" + }, + "count": { + "type": "integer" + }, + "department": { + "type": "string" + }, + "subcategories": { + "items": { + "$ref": "#/definitions/depop.FacetCount" + }, + "type": "array" + } + }, + "type": "object" + }, + "depop.FacetCount": { + "properties": { + "count": { + "type": "integer" + }, + "id": { + "type": "string" + } + }, + "type": "object" + }, "depop.ItemDetailResponse": { "properties": { "brand_name": { @@ -20583,6 +21129,20 @@ }, "type": "object" }, + "depop.SearchFacetsResponse": { + "properties": { + "departments": { + "items": { + "$ref": "#/definitions/depop.DepartmentFacets" + }, + "type": "array" + }, + "query": { + "type": "string" + } + }, + "type": "object" + }, "depop.SearchResponse": { "properties": { "has_more": { @@ -20607,6 +21167,20 @@ }, "type": "object" }, + "depop.SearchSellersResponse": { + "properties": { + "query": { + "type": "string" + }, + "sellers": { + "items": { + "$ref": "#/definitions/depop.SellerSummary" + }, + "type": "array" + } + }, + "type": "object" + }, "depop.Seller": { "properties": { "first_name": { @@ -20627,6 +21201,26 @@ }, "type": "object" }, + "depop.SellerSummary": { + "properties": { + "avatar_url": { + "type": "string" + }, + "first_name": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "last_name": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, "depop.ShopItem": { "properties": { "currency": { @@ -20713,6 +21307,77 @@ }, "type": "object" }, + "depop.SizeCategory": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "regions": { + "items": { + "$ref": "#/definitions/depop.SizeRegion" + }, + "type": "array" + } + }, + "type": "object" + }, + "depop.SizeDepartment": { + "properties": { + "categories": { + "items": { + "$ref": "#/definitions/depop.SizeCategory" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "depop.SizeOption": { + "properties": { + "id": { + "description": "ID is the value to pass in SearchOption.Sizes / ShopOption.Sizes\n(e.g. \"4.17\"). Built from Depop's own size_set_id and id\n(`{size_set_id}.{id}`) -- confirmed live 2026-08-15 that this bare\nform (without the \"-EUR\"/\"-UK\"/\"-US\"/\"-AU\" region suffix Depop's own\nUI appends for display, e.g. \"4.17-US\") is what both the search API\nand shop pages actually key off; the suffix is decorative only.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "depop.SizeRegion": { + "properties": { + "region": { + "type": "string" + }, + "sizes": { + "items": { + "$ref": "#/definitions/depop.SizeOption" + }, + "type": "array" + } + }, + "type": "object" + }, + "depop.SizesResponse": { + "properties": { + "departments": { + "items": { + "$ref": "#/definitions/depop.SizeDepartment" + }, + "type": "array" + } + }, + "type": "object" + }, "depop.Subcategory": { "properties": { "name": { @@ -20725,6 +21390,54 @@ }, "type": "object" }, + "depop.SuggestResponse": { + "properties": { + "query": { + "type": "string" + }, + "suggestions": { + "items": { + "$ref": "#/definitions/depop.Suggestion" + }, + "type": "array" + } + }, + "type": "object" + }, + "depop.Suggestion": { + "properties": { + "gender": { + "type": "string" + }, + "group": { + "description": "Group and SuggestedFilterLabel are present when the suggestion maps\nto a specific category (e.g. Group \"tops\", SuggestedFilterLabel\n\"in Women's Tops\") -- both omitted for a plain free-text suggestion.", + "type": "string" + }, + "suggested_filter_label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "depop.brandsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/depop.BrandsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "depop.categoriesResponseDoc": { "properties": { "code": { @@ -20741,6 +21454,22 @@ }, "type": "object" }, + "depop.searchFacetsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/depop.SearchFacetsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "depop.searchResponseDoc": { "properties": { "code": { @@ -20757,6 +21486,22 @@ }, "type": "object" }, + "depop.searchSellersResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/depop.SearchSellersResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "depop.shopResponseDoc": { "properties": { "code": { @@ -20789,6 +21534,38 @@ }, "type": "object" }, + "depop.sizesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/depop.SizesResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "depop.suggestResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/depop.SuggestResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "diagnostics.AntibotCheckRequest": { "properties": { "fast": { @@ -22486,6 +23263,41 @@ }, "type": "object" }, + "draftkings.EventContextResponse": { + "properties": { + "event_id": { + "example": "34522271", + "type": "string" + }, + "event_seo_id": { + "example": "chi-white-sox-@-det-tigers", + "type": "string" + }, + "fetched_at": { + "type": "string" + }, + "league_id": { + "example": "84240", + "type": "string" + }, + "league_seo_id": { + "example": "mlb", + "type": "string" + }, + "source_url": { + "type": "string" + }, + "sport_id": { + "example": "7", + "type": "string" + }, + "sport_seo_id": { + "example": "baseball", + "type": "string" + } + }, + "type": "object" + }, "draftkings.EventMarketsResponse": { "properties": { "count": { @@ -22520,6 +23332,10 @@ "id": { "type": "string" }, + "league_id": { + "example": "84240", + "type": "string" + }, "name": { "example": "CAR Panthers @ BUF Bills", "type": "string" @@ -22533,6 +23349,10 @@ "source_url": { "type": "string" }, + "sport_id": { + "example": "7", + "type": "string" + }, "start_time": { "type": "string" }, @@ -22543,6 +23363,64 @@ }, "type": "object" }, + "draftkings.FeaturedLeague": { + "properties": { + "featured_order": { + "example": 4855, + "type": "integer" + }, + "has_live_offers": { + "type": "boolean" + }, + "id": { + "example": "84240", + "type": "string" + }, + "name": { + "example": "MLB", + "type": "string" + }, + "slug": { + "example": "mlb", + "type": "string" + }, + "sport": { + "example": "Baseball", + "type": "string" + }, + "sport_id": { + "example": "7", + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "draftkings.FeaturedLeaguesResponse": { + "properties": { + "count": { + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "leagues": { + "items": { + "$ref": "#/definitions/draftkings.FeaturedLeague" + }, + "type": "array" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, "draftkings.FuturesResponse": { "properties": { "count": { @@ -22577,6 +23455,245 @@ }, "type": "object" }, + "draftkings.League": { + "properties": { + "has_live_offers": { + "type": "boolean" + }, + "id": { + "example": "104557", + "type": "string" + }, + "name": { + "example": "ITF Doubles - Muttenz (M)", + "type": "string" + }, + "slug": { + "example": "itf-m25-muttenz%2C-doubles", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.LeagueEvent": { + "properties": { + "id": { + "example": "34522271", + "type": "string" + }, + "name": { + "example": "CHI White Sox @ DET Tigers", + "type": "string" + }, + "participant_type": { + "example": "TwoTeam", + "type": "string" + }, + "participants": { + "items": { + "$ref": "#/definitions/draftkings.Participant" + }, + "type": "array" + }, + "start_time": { + "type": "string" + }, + "status": { + "example": "NOT_STARTED", + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "draftkings.LeagueEventsResponse": { + "properties": { + "count": { + "type": "integer" + }, + "events": { + "items": { + "$ref": "#/definitions/draftkings.LeagueEvent" + }, + "type": "array" + }, + "fetched_at": { + "type": "string" + }, + "league": { + "example": "MLB", + "type": "string" + }, + "league_id": { + "example": "84240", + "type": "string" + }, + "source_url": { + "type": "string" + }, + "sport": { + "example": "Baseball", + "type": "string" + }, + "sport_id": { + "example": "7", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.LeaguesResponse": { + "properties": { + "count": { + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "sports": { + "items": { + "$ref": "#/definitions/draftkings.Sport" + }, + "type": "array" + } + }, + "type": "object" + }, + "draftkings.LiveEvent": { + "properties": { + "categories": { + "items": { + "$ref": "#/definitions/draftkings.MarketCategory" + }, + "type": "array" + }, + "id": { + "example": "34525244", + "type": "string" + }, + "league_id": { + "example": "104557", + "type": "string" + }, + "markets": { + "items": { + "$ref": "#/definitions/draftkings.Market" + }, + "type": "array" + }, + "name": { + "example": "A. Casanova / Parizzia vs N. Hipfl / C. Mueller", + "type": "string" + }, + "participants": { + "items": { + "$ref": "#/definitions/draftkings.Participant" + }, + "type": "array" + }, + "period": { + "example": "2nd", + "type": "string" + }, + "score": { + "$ref": "#/definitions/draftkings.LiveScore" + }, + "sport_id": { + "example": "6", + "type": "string" + }, + "start_time": { + "type": "string" + }, + "status": { + "example": "STARTED", + "type": "string" + }, + "subcategories": { + "items": { + "$ref": "#/definitions/draftkings.MarketSubcategory" + }, + "type": "array" + } + }, + "type": "object" + }, + "draftkings.LiveResponse": { + "properties": { + "count": { + "type": "integer" + }, + "events": { + "items": { + "$ref": "#/definitions/draftkings.LiveEvent" + }, + "type": "array" + }, + "fetched_at": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, + "draftkings.LiveScore": { + "properties": { + "current": { + "$ref": "#/definitions/draftkings.LiveScoreLine" + }, + "on_serve": { + "example": "away", + "type": "string" + }, + "periods": { + "items": { + "$ref": "#/definitions/draftkings.LiveScorePeriod" + }, + "type": "array" + } + }, + "type": "object" + }, + "draftkings.LiveScoreLine": { + "properties": { + "away": { + "example": "30", + "type": "string" + }, + "home": { + "example": "30", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.LiveScorePeriod": { + "properties": { + "away": { + "example": "30", + "type": "string" + }, + "home": { + "example": "30", + "type": "string" + }, + "name": { + "example": "1", + "type": "string" + } + }, + "type": "object" + }, "draftkings.Market": { "properties": { "id": { @@ -22599,6 +23716,36 @@ }, "type": "object" }, + "draftkings.MarketCategory": { + "properties": { + "id": { + "example": "488", + "type": "string" + }, + "name": { + "example": "Match Lines", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.MarketSubcategory": { + "properties": { + "category_id": { + "example": "488", + "type": "string" + }, + "id": { + "example": "6364", + "type": "string" + }, + "name": { + "example": "Moneyline", + "type": "string" + } + }, + "type": "object" + }, "draftkings.Odds": { "properties": { "american": { @@ -22663,6 +23810,47 @@ }, "type": "object" }, + "draftkings.QuickLink": { + "properties": { + "league_id": { + "example": "84240", + "type": "string" + }, + "name": { + "example": "MLB", + "type": "string" + }, + "path": { + "example": "/leagues/baseball/mlb", + "type": "string" + }, + "sport_id": { + "example": "7", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.QuickLinksResponse": { + "properties": { + "count": { + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "links": { + "items": { + "$ref": "#/definitions/draftkings.QuickLink" + }, + "type": "array" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, "draftkings.Selection": { "properties": { "label": { @@ -22683,6 +23871,160 @@ }, "type": "object" }, + "draftkings.Sport": { + "properties": { + "id": { + "example": "6", + "type": "string" + }, + "leagues": { + "items": { + "$ref": "#/definitions/draftkings.League" + }, + "type": "array" + }, + "name": { + "example": "Tennis", + "type": "string" + }, + "slug": { + "example": "tennis", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.Team": { + "properties": { + "id": { + "example": "18454", + "type": "string" + }, + "name": { + "example": "Arizona Cardinals", + "type": "string" + }, + "slug": { + "example": "arizona-cardinals", + "type": "string" + }, + "url": { + "example": "https://sportsbook.draftkings.com/teams/football/arizona-cardinals-odds-18454", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.TeamDetailResponse": { + "properties": { + "abbreviation": { + "example": "ARI", + "type": "string" + }, + "city": { + "example": "Arizona", + "type": "string" + }, + "fetched_at": { + "type": "string" + }, + "id": { + "example": "18454", + "type": "string" + }, + "leagues": { + "items": { + "$ref": "#/definitions/draftkings.TeamLeagueRef" + }, + "type": "array" + }, + "name": { + "example": "ARI Cardinals", + "type": "string" + }, + "primary_color": { + "example": "#97233F", + "type": "string" + }, + "secondary_color": { + "example": "#000000", + "type": "string" + }, + "short_name": { + "example": "Cardinals", + "type": "string" + }, + "source_url": { + "type": "string" + }, + "sport": { + "example": "football", + "type": "string" + }, + "sport_id": { + "example": "3", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.TeamLeagueRef": { + "properties": { + "id": { + "example": "88808", + "type": "string" + }, + "slug": { + "example": "nfl", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.TeamsResponse": { + "properties": { + "count": { + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "league": { + "example": "nfl", + "type": "string" + }, + "source_url": { + "type": "string" + }, + "sport": { + "example": "football", + "type": "string" + }, + "teams": { + "items": { + "$ref": "#/definitions/draftkings.Team" + }, + "type": "array" + } + }, + "type": "object" + }, + "draftkings.eventContextResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/draftkings.EventContextResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "draftkings.eventMarketsResponseDoc": { "properties": { "code": { @@ -22715,6 +24057,22 @@ }, "type": "object" }, + "draftkings.featuredLeaguesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/draftkings.FeaturedLeaguesResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "draftkings.futuresResponseDoc": { "properties": { "code": { @@ -22731,6 +24089,54 @@ }, "type": "object" }, + "draftkings.leagueEventsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/draftkings.LeagueEventsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.leaguesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/draftkings.LeaguesResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.liveResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/draftkings.LiveResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "draftkings.oddsResponseDoc": { "properties": { "code": { @@ -22747,6 +24153,54 @@ }, "type": "object" }, + "draftkings.quickLinksResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/draftkings.QuickLinksResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.teamResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/draftkings.TeamDetailResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "draftkings.teamsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/draftkings.TeamsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "duckduckgo.ImageResponse": { "properties": { "pagination": { @@ -26929,6 +28383,10 @@ "contact_title": { "type": "string" }, + "content_hash": { + "description": "ContentHash is an internal fingerprint of this record's content,\nexcluding crawl bookkeeping fields, used to detect whether a\nre-crawled profile actually changed since it was last stored.", + "type": "string" + }, "crawled_at": { "type": "string" }, @@ -34855,6 +36313,62 @@ }, "type": "object" }, + "googlepatents.ClassificationRelation": { + "properties": { + "code": { + "example": "A61", + "type": "string" + }, + "description": { + "type": "string" + }, + "is_child": { + "type": "boolean" + }, + "is_parent": { + "type": "boolean" + }, + "is_related": { + "type": "boolean" + }, + "name": { + "example": "A61 - MEDICAL OR VETERINARY SCIENCE; HYGIENE", + "type": "string" + } + }, + "type": "object" + }, + "googlepatents.ClassificationResponse": { + "properties": { + "code": { + "example": "A61K31/00", + "type": "string" + }, + "description": { + "items": { + "type": "string" + }, + "type": "array" + }, + "fetched_at": { + "type": "string" + }, + "name": { + "example": "A61K31/00 - Medicinal preparations containing organic active ingredients", + "type": "string" + }, + "relations": { + "items": { + "$ref": "#/definitions/googlepatents.ClassificationRelation" + }, + "type": "array" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, "googlepatents.CountryStatus": { "properties": { "country_code": { @@ -35078,6 +36592,48 @@ }, "type": "object" }, + "googlepatents.RecentEntry": { + "properties": { + "publication_number": { + "example": "US10758101B2", + "type": "string" + }, + "title": { + "example": "Adjustable venous cannula and method of treating a patient", + "type": "string" + }, + "url": { + "example": "https://patents.google.com/patent/US10758101B2/en", + "type": "string" + } + }, + "type": "object" + }, + "googlepatents.RecentResponse": { + "properties": { + "count": { + "example": 329, + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "results": { + "items": { + "$ref": "#/definitions/googlepatents.RecentEntry" + }, + "type": "array" + }, + "source_url": { + "type": "string" + }, + "week": { + "example": "2026-W20", + "type": "string" + } + }, + "type": "object" + }, "googlepatents.SearchResponse": { "properties": { "fetched_at": { @@ -35252,6 +36808,22 @@ }, "type": "object" }, + "googlepatents.classificationResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/googlepatents.ClassificationResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "googlepatents.coverageResponseDoc": { "properties": { "code": { @@ -35284,6 +36856,22 @@ }, "type": "object" }, + "googlepatents.recentResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/googlepatents.RecentResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "googlepatents.searchResponseDoc": { "properties": { "code": { @@ -61512,6 +63100,852 @@ }, "type": "object" }, + "sephora.Answer": { + "properties": { + "author": { + "type": "string" + }, + "helpful_votes": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "is_brand_answer": { + "type": "boolean" + }, + "not_helpful_votes": { + "type": "integer" + }, + "submitted_at": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "sephora.CategoryResponse": { + "properties": { + "brand": { + "items": { + "type": "string" + }, + "type": "array" + }, + "category_id": { + "type": "string" + }, + "count": { + "type": "integer" + }, + "display_name": { + "example": "Makeup", + "type": "string" + }, + "fetched_at": { + "type": "string" + }, + "filter": { + "items": { + "type": "string" + }, + "type": "array" + }, + "is_new": { + "type": "boolean" + }, + "page": { + "example": 1, + "type": "integer" + }, + "page_size": { + "example": 60, + "type": "integer" + }, + "price_max": { + "type": "integer" + }, + "price_min": { + "type": "integer" + }, + "products": { + "items": { + "$ref": "#/definitions/sephora.SearchProduct" + }, + "type": "array" + }, + "rating_min": { + "type": "integer" + }, + "related_categories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "slug": { + "example": "makeup-cosmetics", + "type": "string" + }, + "sort_by": { + "example": "featured", + "type": "string" + }, + "source_url": { + "type": "string" + }, + "total_products": { + "example": 2492, + "type": "integer" + } + }, + "type": "object" + }, + "sephora.FullReview": { + "properties": { + "author": { + "type": "string" + }, + "body": { + "type": "string" + }, + "helpful_votes": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "location": { + "type": "string" + }, + "not_helpful_votes": { + "type": "integer" + }, + "photo_urls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rating": { + "type": "integer" + }, + "ratings_only": { + "description": "RatingsOnly marks a review that carries only a star rating with no\nwritten title/body -- Bazaarvoice allows these and this endpoint still\nsurfaces them, matching the same field already documented for Macy's\n(services/macys/reviews.go) and Kohl's Bazaarvoice integrations.", + "type": "boolean" + }, + "recommended": { + "type": "boolean" + }, + "secondary_ratings": { + "items": { + "$ref": "#/definitions/sephora.ReviewSecondaryRating" + }, + "type": "array" + }, + "submitted_at": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sephora.ProductQuestionsResponse": { + "properties": { + "count": { + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "page_size": { + "type": "integer" + }, + "product_id": { + "type": "string" + }, + "questions": { + "items": { + "$ref": "#/definitions/sephora.Question" + }, + "type": "array" + }, + "source_url": { + "type": "string" + }, + "total_pages": { + "type": "integer" + }, + "total_questions": { + "type": "integer" + } + }, + "type": "object" + }, + "sephora.ProductResponse": { + "properties": { + "brand": { + "example": "LANEIGE", + "type": "string" + }, + "category": { + "type": "string" + }, + "description": { + "type": "string" + }, + "fetched_at": { + "type": "string" + }, + "image": { + "type": "string" + }, + "name": { + "type": "string" + }, + "product_group_id": { + "example": "P420652", + "type": "string" + }, + "rating": { + "example": 4.3, + "type": "number" + }, + "review_count": { + "type": "integer" + }, + "review_sample": { + "items": { + "$ref": "#/definitions/sephora.ReviewSample" + }, + "type": "array" + }, + "source_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "variants": { + "items": { + "$ref": "#/definitions/sephora.Variant" + }, + "type": "array" + } + }, + "type": "object" + }, + "sephora.ProductReviewsResponse": { + "properties": { + "average_rating": { + "type": "number" + }, + "count": { + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "page_size": { + "type": "integer" + }, + "product_id": { + "type": "string" + }, + "rating_count": { + "description": "RatingCount, AverageRating, RecommendedRatio, and RatingHistogram are\nthe product's site-wide aggregate rating summary, not just this page --\nabsent (zero-valued) for a product with no reviews yet.", + "type": "integer" + }, + "rating_histogram": { + "description": "RatingHistogram is the count of ratings per star, ascending: index 0 is\n1-star, index 4 is 5-star.", + "items": { + "type": "integer" + }, + "type": "array" + }, + "recommended_ratio": { + "type": "number" + }, + "reviews": { + "items": { + "$ref": "#/definitions/sephora.FullReview" + }, + "type": "array" + }, + "source_url": { + "type": "string" + }, + "total_pages": { + "type": "integer" + }, + "total_reviews": { + "type": "integer" + } + }, + "type": "object" + }, + "sephora.Question": { + "properties": { + "answer_count": { + "type": "integer" + }, + "answers": { + "items": { + "$ref": "#/definitions/sephora.Answer" + }, + "type": "array" + }, + "author": { + "type": "string" + }, + "has_best_answer": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "submitted_at": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "sephora.ReviewSample": { + "properties": { + "author": { + "type": "string" + }, + "body": { + "type": "string" + }, + "date_published": { + "type": "string" + }, + "id": { + "type": "string" + }, + "rating": { + "type": "number" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sephora.ReviewSecondaryRating": { + "properties": { + "max_value": { + "example": 5, + "type": "integer" + }, + "name": { + "example": "Value", + "type": "string" + }, + "value": { + "example": 4, + "type": "integer" + } + }, + "type": "object" + }, + "sephora.SearchProduct": { + "properties": { + "brand_name": { + "example": "tarte", + "type": "string" + }, + "image_url": { + "type": "string" + }, + "list_price": { + "example": "$25.00", + "type": "string" + }, + "more_colors": { + "type": "integer" + }, + "product_id": { + "example": "P520769", + "type": "string" + }, + "product_name": { + "type": "string" + }, + "rating": { + "example": 4.5, + "type": "number" + }, + "review_count": { + "type": "integer" + }, + "sku_id": { + "type": "string" + }, + "sponsored": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "value_price": { + "type": "string" + } + }, + "type": "object" + }, + "sephora.SearchResponse": { + "properties": { + "brand": { + "items": { + "type": "string" + }, + "type": "array" + }, + "count": { + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "filter": { + "items": { + "type": "string" + }, + "type": "array" + }, + "is_new": { + "type": "boolean" + }, + "page": { + "example": 1, + "type": "integer" + }, + "page_size": { + "example": 60, + "type": "integer" + }, + "price_max": { + "example": 30, + "type": "integer" + }, + "price_min": { + "example": 15, + "type": "integer" + }, + "products": { + "items": { + "$ref": "#/definitions/sephora.SearchProduct" + }, + "type": "array" + }, + "query": { + "example": "mascara", + "type": "string" + }, + "rating_min": { + "example": 4, + "type": "integer" + }, + "related_searches": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sort_by": { + "example": "featured", + "type": "string" + }, + "source_url": { + "type": "string" + }, + "total_products": { + "example": 180, + "type": "integer" + } + }, + "type": "object" + }, + "sephora.Store": { + "properties": { + "address": { + "$ref": "#/definitions/sephora.StoreAddress" + }, + "display_name": { + "example": "STATE STREET", + "type": "string" + }, + "distance_miles": { + "example": 0.2, + "type": "number" + }, + "hours": { + "$ref": "#/definitions/sephora.StoreHours" + }, + "is_bopisable": { + "type": "boolean" + }, + "is_curbside_enabled": { + "type": "boolean" + }, + "is_online_reservation_enabled": { + "type": "boolean" + }, + "latitude": { + "type": "number" + }, + "longitude": { + "type": "number" + }, + "same_day_delivery_enabled": { + "type": "boolean" + }, + "store_id": { + "example": "0662", + "type": "string" + }, + "store_type": { + "example": "SEPHORA", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "sephora.StoreAddress": { + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "mall_name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "postal_code": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "type": "object" + }, + "sephora.StoreHours": { + "properties": { + "friday": { + "type": "string" + }, + "monday": { + "type": "string" + }, + "saturday": { + "type": "string" + }, + "sunday": { + "type": "string" + }, + "thursday": { + "type": "string" + }, + "time_zone": { + "example": "America/Chicago", + "type": "string" + }, + "tuesday": { + "type": "string" + }, + "wednesday": { + "type": "string" + } + }, + "type": "object" + }, + "sephora.StoresResponse": { + "properties": { + "count": { + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "latitude": { + "example": 41.88325, + "type": "number" + }, + "longitude": { + "example": -87.6323879, + "type": "number" + }, + "radius": { + "example": 50, + "type": "integer" + }, + "source_url": { + "type": "string" + }, + "stores": { + "items": { + "$ref": "#/definitions/sephora.Store" + }, + "type": "array" + } + }, + "type": "object" + }, + "sephora.SuggestCategory": { + "properties": { + "name": { + "example": "Mascara", + "type": "string" + }, + "url": { + "example": "https://www.sephora.com/shop/mascara", + "type": "string" + } + }, + "type": "object" + }, + "sephora.SuggestProduct": { + "properties": { + "brand_name": { + "example": "ILIA", + "type": "string" + }, + "image_url": { + "type": "string" + }, + "product_id": { + "example": "P431750", + "type": "string" + }, + "product_name": { + "type": "string" + }, + "rating": { + "example": 4.1361, + "type": "number" + }, + "review_count": { + "type": "integer" + }, + "sku_id": { + "type": "string" + } + }, + "type": "object" + }, + "sephora.SuggestResponse": { + "properties": { + "categories": { + "items": { + "$ref": "#/definitions/sephora.SuggestCategory" + }, + "type": "array" + }, + "fetched_at": { + "type": "string" + }, + "products": { + "items": { + "$ref": "#/definitions/sephora.SuggestProduct" + }, + "type": "array" + }, + "query": { + "example": "masc", + "type": "string" + }, + "source_url": { + "type": "string" + }, + "terms": { + "items": { + "$ref": "#/definitions/sephora.SuggestTerm" + }, + "type": "array" + } + }, + "type": "object" + }, + "sephora.SuggestTerm": { + "properties": { + "term": { + "example": "mascara", + "type": "string" + } + }, + "type": "object" + }, + "sephora.Variant": { + "properties": { + "availability": { + "example": "InStock", + "type": "string" + }, + "color": { + "example": "Acai Mango Smoothie", + "type": "string" + }, + "currency_code": { + "example": "USD", + "type": "string" + }, + "image": { + "type": "string" + }, + "name": { + "type": "string" + }, + "price": { + "example": "25.00", + "type": "string" + }, + "sku": { + "type": "string" + } + }, + "type": "object" + }, + "sephora.categoryResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/sephora.CategoryResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "sephora.productQuestionsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/sephora.ProductQuestionsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "sephora.productResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/sephora.ProductResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "sephora.productReviewsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/sephora.ProductReviewsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "sephora.searchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/sephora.SearchResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "sephora.storesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/sephora.StoresResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "sephora.suggestResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/sephora.SuggestResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "shopapp.AnalysisResponse": { "properties": { "currencies": { @@ -81151,6 +83585,220 @@ }, "type": "object" }, + "usptoppubs.DetailResponse": { + "properties": { + "abstract": { + "type": "string" + }, + "applicant_names": { + "items": { + "type": "string" + }, + "type": "array" + }, + "application_number": { + "example": "19/048819", + "type": "string" + }, + "assignee_name": { + "type": "string" + }, + "claims": { + "items": { + "type": "string" + }, + "type": "array" + }, + "cpc_codes": { + "type": "string" + }, + "database": { + "example": "US-PGPUB", + "type": "string" + }, + "description": { + "items": { + "type": "string" + }, + "type": "array" + }, + "fetched_at": { + "type": "string" + }, + "filing_date": { + "example": "2025-02-07", + "type": "string" + }, + "guid": { + "example": "US-20260238009-A1", + "type": "string" + }, + "inventors_short": { + "type": "string" + }, + "ipc_codes": { + "type": "string" + }, + "kind_codes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "language": { + "example": "EN", + "type": "string" + }, + "page_count": { + "type": "integer" + }, + "publication_date": { + "example": "2026-08-13", + "type": "string" + }, + "publication_number": { + "example": "US20260238009A1", + "type": "string" + }, + "source_url": { + "type": "string" + }, + "title": { + "example": "HOME GRID FOR IMPROVED EFFICIENCY OF SOLAR ENERGY", + "type": "string" + } + }, + "type": "object" + }, + "usptoppubs.SearchResponse": { + "properties": { + "fetched_at": { + "type": "string" + }, + "num_found": { + "example": 500, + "type": "integer" + }, + "page": { + "example": 0, + "type": "integer" + }, + "per_page": { + "example": 20, + "type": "integer" + }, + "query": { + "example": "battery", + "type": "string" + }, + "results": { + "items": { + "$ref": "#/definitions/usptoppubs.SearchResult" + }, + "type": "array" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, + "usptoppubs.SearchResult": { + "properties": { + "applicant_names": { + "items": { + "type": "string" + }, + "type": "array" + }, + "application_number": { + "example": "15/620,213", + "type": "string" + }, + "assignee_name": { + "type": "string" + }, + "cpc_codes": { + "type": "string" + }, + "database": { + "example": "USPAT", + "type": "string" + }, + "filing_date": { + "example": "2017-06-12", + "type": "string" + }, + "guid": { + "example": "US-10758101-B2", + "type": "string" + }, + "inventors_short": { + "type": "string" + }, + "ipc_codes": { + "type": "string" + }, + "kind_codes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "language": { + "example": "EN", + "type": "string" + }, + "page_count": { + "type": "integer" + }, + "publication_date": { + "example": "2020-09-01", + "type": "string" + }, + "publication_number": { + "example": "US10758101B2", + "type": "string" + }, + "title": { + "example": "UPRIGHT VACUUM CLEANER WITH BATTERY SUPPORT PLATE", + "type": "string" + } + }, + "type": "object" + }, + "usptoppubs.detailResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/usptoppubs.DetailResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "usptoppubs.searchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/usptoppubs.SearchResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "vinted.BrandEntry": { "properties": { "id": { @@ -97577,12 +100225,135 @@ ] } }, + "/bestbuy/brands": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns Best Buy's full brand directory (name, category id, url), sourced from the site's own \"Name Brands\" page. Each id is directly usable as bestbuy_category's category_id input.", + "operationId": "bestbuy-brands", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/bestbuy.brandsResponseDoc" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get Best Buy's full brand directory", + "tags": [ + "Best Buy" + ] + } + }, + "/bestbuy/categories": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns Best Buy's top-level shopping departments (name, category id, url), sourced from the homepage's own category carousel. Each id is directly usable as bestbuy_category's category_id input.", + "operationId": "bestbuy-categories", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/bestbuy.categoriesResponseDoc" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get Best Buy's top-level shopping departments", + "tags": [ + "Best Buy" + ] + } + }, + "/bestbuy/categories/trending": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns Best Buy's fine-grained, often deeply-nested product-type categories (e.g. \"Windows Laptops\", \"55-Inch TVs (55 - 64 in)\", \"PS5 Consoles\") sourced from the homepage's own \"Best Selling\" section -- much more specific than bestbuy_categories' ~25 top-level departments. Each id is directly usable as bestbuy_category's category_id input.", + "operationId": "bestbuy-categories-trending", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/bestbuy.trendingCategoriesResponseDoc" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get Best Buy's fine-grained trending product-type categories", + "tags": [ + "Best Buy" + ] + } + }, "/bestbuy/category": { "get": { "consumes": [ "application/json" ], - "description": "Returns page 1 (up to 24) of one Best Buy category's normalized product listing (sku, title, url, image, price, rating, review count). category_id is a Best Buy category id, e.g. pcmcat138500050001, found in a category page URL's trailing .c?id= segment.", + "description": "Returns one page (up to 24) of one Best Buy category's normalized product listing (sku, title, url, image, price, rating, review count). category_id is a Best Buy category id, e.g. pcmcat138500050001, found in a category page URL's trailing .c?id= segment. page is the optional 1-indexed page number (defaults to 1); requesting a page past the last one returns an empty products list, not an error.", "operationId": "bestbuy-category", "parameters": [ { @@ -97592,6 +100363,13 @@ "required": true, "type": "string", "x-example": "pcmcat138500050001" + }, + { + "description": "1-indexed page number, defaults to 1", + "in": "query", + "name": "page", + "type": "integer", + "x-example": 1 } ], "produces": [ @@ -97634,27 +100412,319 @@ "ApiKeyAuth": [] } ], - "summary": "Get a Best Buy category's product listing", + "summary": "Get a Best Buy category's product listing", + "tags": [ + "Best Buy" + ] + } + }, + "/bestbuy/category/subcategories": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns a Best Buy category's own sibling/child category set (name, category id, url), sourced from that category page's own \"Category\" filter facet. Each id is directly usable as bestbuy_category's category_id input. category_id is a Best Buy category id, e.g. pcmcat138500050001, found in a category page URL's trailing .c?id= segment. A leaf category with no siblings returns an empty list, not an error.", + "operationId": "bestbuy-category-subcategories", + "parameters": [ + { + "description": "Best Buy category id", + "in": "query", + "name": "category_id", + "required": true, + "type": "string", + "x-example": "pcmcat138500050001" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/bestbuy.subcategoriesResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get a Best Buy category's own sibling/child categories", + "tags": [ + "Best Buy" + ] + } + }, + "/bestbuy/product": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns one Best Buy product's normalized detail (name, brand, model, color, price, availability, rating, images, breadcrumbs), sourced from the product page's own schema.org Product structured-data block. sku is the numeric Best Buy SKU shown on bestbuy.com product pages and URLs.", + "operationId": "bestbuy-product", + "parameters": [ + { + "description": "Numeric Best Buy SKU", + "in": "query", + "name": "sku", + "required": true, + "type": "string", + "x-example": "6673590" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/bestbuy.productResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get a Best Buy product's detail", + "tags": [ + "Best Buy" + ] + } + }, + "/bestbuy/product/questions": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the customer questions (with answers, when present) Best Buy embeds directly on a product's page: question text, answer text, who answered, and when. sku is the numeric Best Buy SKU shown on bestbuy.com product pages and URLs. A product with no questions asked yet returns an empty list, not an error.", + "operationId": "bestbuy-product-questions", + "parameters": [ + { + "description": "Numeric Best Buy SKU", + "in": "query", + "name": "sku", + "required": true, + "type": "string", + "x-example": "6673590" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/bestbuy.productQuestionsResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get a Best Buy product's customer questions and answers", + "tags": [ + "Best Buy" + ] + } + }, + "/bestbuy/product/related": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the organic (non-sponsored) related products Best Buy embeds in a product page's own comparison table (sku, name, url, image, price). sku is the numeric Best Buy SKU shown on bestbuy.com product pages and URLs. A product page with no comparison table returns an empty list, not an error.", + "operationId": "bestbuy-product-related", + "parameters": [ + { + "description": "Numeric Best Buy SKU", + "in": "query", + "name": "sku", + "required": true, + "type": "string", + "x-example": "6673590" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/bestbuy.productRelatedResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get a Best Buy product's related products", + "tags": [ + "Best Buy" + ] + } + }, + "/bestbuy/product/reviews": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns page 1 (up to 20) of one Best Buy product's normalized customer reviews (rating, title, text, author, posted date, tags such as Verified Purchaser, recommended flag, helpful/unhelpful counts), sourced from the product's dedicated reviews page. sku is the numeric Best Buy SKU shown on bestbuy.com product pages and URLs.", + "operationId": "bestbuy-product-reviews", + "parameters": [ + { + "description": "Numeric Best Buy SKU", + "in": "query", + "name": "sku", + "required": true, + "type": "string", + "x-example": "6673590" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/bestbuy.productReviewsResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get a Best Buy product's customer reviews", "tags": [ "Best Buy" ] } }, - "/bestbuy/product": { + "/bestbuy/search": { "get": { "consumes": [ "application/json" ], - "description": "Returns one Best Buy product's normalized detail (name, brand, model, color, price, availability, rating, images, breadcrumbs), sourced from the product page's own schema.org Product structured-data block. sku is the numeric Best Buy SKU shown on bestbuy.com product pages and URLs.", - "operationId": "bestbuy-product", + "description": "Returns one page (up to 24) of one Best Buy keyword search's normalized product listing (sku, title, url, image, price, rating, review count). q is free-text search keywords, e.g. \"laptop\". page is the optional 1-indexed page number (defaults to 1); requesting a page past the last one returns an empty products list, not an error.", + "operationId": "bestbuy-search", "parameters": [ { - "description": "Numeric Best Buy SKU", + "description": "Search keywords", "in": "query", - "name": "sku", + "name": "q", "required": true, "type": "string", - "x-example": "6673590" + "x-example": "laptop" + }, + { + "description": "1-indexed page number, defaults to 1", + "in": "query", + "name": "page", + "type": "integer", + "x-example": 1 } ], "produces": [ @@ -97664,7 +100734,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/bestbuy.productResponseDoc" + "$ref": "#/definitions/bestbuy.searchResponseDoc" } }, "400": { @@ -97673,6 +100743,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "429": { "description": "Too Many Requests", "schema": { @@ -97691,27 +100767,35 @@ "ApiKeyAuth": [] } ], - "summary": "Get a Best Buy product's detail", + "summary": "Search Best Buy's product catalog", "tags": [ "Best Buy" ] } }, - "/bestbuy/product/reviews": { + "/bestbuy/stores": { "get": { "consumes": [ "application/json" ], - "description": "Returns page 1 (up to 20) of one Best Buy product's normalized customer reviews (rating, title, text, author, posted date, tags such as Verified Purchaser, recommended flag, helpful/unhelpful counts), sourced from the product's dedicated reviews page. sku is the numeric Best Buy SKU shown on bestbuy.com product pages and URLs.", - "operationId": "bestbuy-product-reviews", + "description": "Returns Best Buy's physical store locations in one city (name, address, phone, coordinates, rating, hours), sourced from Best Buy's own SEO store directory. state is one of the 50 US state codes plus dc and pr: `al`, `ak`, `az`, `ar`, `ca`, `co`, `ct`, `de`, `dc`, `fl`, `ga`, `hi`, `id`, `il`, `in`, `ia`, `ks`, `ky`, `la`, `me`, `md`, `ma`, `mi`, `mn`, `ms`, `mo`, `mt`, `ne`, `nv`, `nh`, `nj`, `nm`, `ny`, `nc`, `nd`, `oh`, `ok`, `or`, `pa`, `pr`, `ri`, `sc`, `sd`, `tn`, `tx`, `ut`, `vt`, `va`, `wa`, `wv`, `wi`, `wy`. city is free text matched case-insensitively against that state's own directory (e.g. \"Chicago\").", + "operationId": "bestbuy-stores", "parameters": [ { - "description": "Numeric Best Buy SKU", + "description": "Two-letter state/territory code", "in": "query", - "name": "sku", + "name": "state", "required": true, "type": "string", - "x-example": "6673590" + "x-example": "il" + }, + { + "description": "City name", + "in": "query", + "name": "city", + "required": true, + "type": "string", + "x-example": "Chicago" } ], "produces": [ @@ -97721,7 +100805,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/bestbuy.productReviewsResponseDoc" + "$ref": "#/definitions/bestbuy.storesResponseDoc" } }, "400": { @@ -97730,6 +100814,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "429": { "description": "Too Many Requests", "schema": { @@ -97748,7 +100838,7 @@ "ApiKeyAuth": [] } ], - "summary": "Get a Best Buy product's customer reviews", + "summary": "Get Best Buy's physical stores in one city", "tags": [ "Best Buy" ] @@ -120238,12 +123328,53 @@ ] } }, + "/depop/brands": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns Depop's full brand directory (id, name, slug), not just brands with active listings for a given search -- resolves the search endpoint's otherwise-opaque brand_ids filter to human-readable names. Public data sourced from Depop's own brand-directory API.", + "operationId": "depop-brands", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/depop.brandsResponseDoc" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Depop's full brand directory", + "tags": [ + "Depop" + ] + } + }, "/depop/categories": { "get": { "consumes": [ "application/json" ], - "description": "Returns Depop's full department, category, and subcategory taxonomy -- every value usable with /depop/search's and /depop/shop/{username}'s category/subcategory filters. Static data, no live request.", + "description": "Returns Depop's full department, category, and subcategory taxonomy -- every value usable with /depop/search's and /depop/shop/{username}'s category/subcategory filters. Tries a live refresh from Depop's own category-filter API first and falls back to a static snapshot on any failure, so this never errors.", "operationId": "depop-categories", "produces": [ "application/json" @@ -120406,19 +123537,221 @@ "ApiKeyAuth": [] } ], - "summary": "Get Depop items similar to a listing", + "summary": "Get Depop items similar to a listing", + "tags": [ + "Depop" + ] + } + }, + "/depop/search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Searches Depop's resale-fashion marketplace by free-text keyword, with optional price, condition, colour, category, subcategory, gender, kids-department, brand, discount, and sort filters, returning normalized listing summaries (title, price, brand, condition, like count, photos, sizes), a pagination cursor, and the total matching count. Public data sourced from Depop's own search API.", + "operationId": "depop-search", + "parameters": [ + { + "description": "Free-text keyword search", + "in": "query", + "name": "query", + "required": true, + "type": "string", + "x-example": "nike jacket" + }, + { + "description": "Minimum listing price in USD", + "in": "query", + "name": "price_min", + "type": "number", + "x-example": 15 + }, + { + "description": "Maximum listing price in USD", + "in": "query", + "name": "price_max", + "type": "number", + "x-example": 50 + }, + { + "description": "Comma-separated condition filter: brand_new, used_like_new, used_excellent, used_good, used_fair", + "in": "query", + "name": "condition", + "type": "string", + "x-example": "used_excellent,used_good" + }, + { + "description": "Comma-separated colour filter: black, grey, white, brown, tan, cream, yellow, red, burgundy, orange, pink, purple, blue, navy, green, khaki, multi", + "in": "query", + "name": "colours", + "type": "string", + "x-example": "black,white" + }, + { + "description": "Restrict results to discounted listings", + "in": "query", + "name": "on_sale", + "type": "boolean" + }, + { + "description": "Sort order: relevance, price_low_to_high, price_high_to_low", + "in": "query", + "name": "sort", + "type": "string", + "x-example": "price_low_to_high" + }, + { + "description": "Depop category slug: tops, bottoms, dresses, coats-jackets, jumpsuit-and-playsuit, suits, footwear, accessories, nightwear, underwear, swim-beach-wear, fancy-dress, sleepsuits-and-bodysuits, bundles, beauty, face-masks, home, tech-accessories, film, art, books-and-magazine, music, party-supplies, sports-equipment-accesories, toys, umbrella. See GET /depop/categories for a machine-readable enumeration with names and subcategories.", + "in": "query", + "name": "category", + "type": "string", + "x-example": "tops" + }, + { + "description": "Comma-separated Depop subcategory slug(s), scoped within category. See GET /depop/categories for the full list per category.", + "in": "query", + "name": "subcategory", + "type": "string", + "x-example": "tshirts,hoodies" + }, + { + "description": "Department filter: female, male", + "in": "query", + "name": "gender", + "type": "string", + "x-example": "female" + }, + { + "description": "Kids-department filter: true restricts results to kids items only, false excludes them, omitted returns both.", + "in": "query", + "name": "is_kids", + "type": "boolean" + }, + { + "description": "Comma-separated Depop internal numeric brand ids. Not documented by Depop -- find a brand's id by browsing its depop.com/brands// page.", + "in": "query", + "name": "brand_ids", + "type": "string", + "x-example": "219" + }, + { + "description": "Comma-separated Depop size composite ids (format {size_set_id}.{id}, e.g. \\", + "in": "query", + "name": "sizes", + "type": "string", + "x-example": "4.17" + }, + { + "description": "Opaque pagination cursor from a previous response's next_cursor field. Omit for the first page.", + "in": "query", + "name": "after", + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/depop.searchResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Search Depop listings", + "tags": [ + "Depop" + ] + } + }, + "/depop/search-sellers": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Finds Depop users/sellers by name or username. A matched result's username can be passed directly to GET /depop/shop/{username} for that seller's full shop. Public data sourced from Depop's own user-search API.", + "operationId": "depop-search-sellers", + "parameters": [ + { + "description": "Seller name or username to search for", + "in": "query", + "name": "query", + "required": true, + "type": "string", + "x-example": "vintage nike" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/depop.searchSellersResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Search Depop sellers by name", "tags": [ "Depop" ] } }, - "/depop/search": { + "/depop/search/facets": { "get": { "consumes": [ "application/json" ], - "description": "Searches Depop's resale-fashion marketplace by free-text keyword, with optional price, condition, colour, category, subcategory, gender, kids-department, brand, discount, and sort filters, returning normalized listing summaries (title, price, brand, condition, like count, photos, sizes), a pagination cursor, and the total matching count. Public data sourced from Depop's own search API.", - "operationId": "depop-search", + "description": "Returns result-count breakdowns per department/category/subcategory for a search query, via Depop's dedicated aggregates API -- a distinct upstream call from search itself, not embedded in its response. Public data sourced from Depop's own search-aggregates API.", + "operationId": "depop-search-facets", "parameters": [ { "description": "Free-text keyword search", @@ -120426,88 +123759,7 @@ "name": "query", "required": true, "type": "string", - "x-example": "nike jacket" - }, - { - "description": "Minimum listing price in USD", - "in": "query", - "name": "price_min", - "type": "number", - "x-example": 15 - }, - { - "description": "Maximum listing price in USD", - "in": "query", - "name": "price_max", - "type": "number", - "x-example": 50 - }, - { - "description": "Comma-separated condition filter: brand_new, used_like_new, used_excellent, used_good, used_fair", - "in": "query", - "name": "condition", - "type": "string", - "x-example": "used_excellent,used_good" - }, - { - "description": "Comma-separated colour filter: black, grey, white, brown, tan, cream, yellow, red, burgundy, orange, pink, purple, blue, navy, green, khaki, multi", - "in": "query", - "name": "colours", - "type": "string", - "x-example": "black,white" - }, - { - "description": "Restrict results to discounted listings", - "in": "query", - "name": "on_sale", - "type": "boolean" - }, - { - "description": "Sort order: relevance, price_low_to_high, price_high_to_low", - "in": "query", - "name": "sort", - "type": "string", - "x-example": "price_low_to_high" - }, - { - "description": "Depop category slug: tops, bottoms, dresses, coats-jackets, jumpsuit-and-playsuit, suits, footwear, accessories, nightwear, underwear, swim-beach-wear, fancy-dress, sleepsuits-and-bodysuits, bundles, beauty, face-masks, home, tech-accessories, film, art, books-and-magazine, music, party-supplies, sports-equipment-accesories, toys, umbrella. See GET /depop/categories for a machine-readable enumeration with names and subcategories.", - "in": "query", - "name": "category", - "type": "string", - "x-example": "tops" - }, - { - "description": "Comma-separated Depop subcategory slug(s), scoped within category. See GET /depop/categories for the full list per category.", - "in": "query", - "name": "subcategory", - "type": "string", - "x-example": "tshirts,hoodies" - }, - { - "description": "Department filter: female, male", - "in": "query", - "name": "gender", - "type": "string", - "x-example": "female" - }, - { - "description": "Kids-department filter: true restricts results to kids items only, false excludes them, omitted returns both.", - "in": "query", - "name": "is_kids", - "type": "boolean" - }, - { - "description": "Comma-separated Depop internal numeric brand ids. Not documented by Depop -- find a brand's id by browsing its depop.com/brands// page.", - "in": "query", - "name": "brand_ids", - "type": "string", - "x-example": "219" - }, - { - "description": "Opaque pagination cursor from a previous response's next_cursor field. Omit for the first page.", - "in": "query", - "name": "after", - "type": "string" + "x-example": "bandage dress" } ], "produces": [ @@ -120517,7 +123769,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/depop.searchResponseDoc" + "$ref": "#/definitions/depop.searchFacetsResponseDoc" } }, "400": { @@ -120544,7 +123796,7 @@ "ApiKeyAuth": [] } ], - "summary": "Search Depop listings", + "summary": "Depop search result-count breakdowns", "tags": [ "Depop" ] @@ -120627,6 +123879,13 @@ "name": "gender", "type": "string", "x-example": "male" + }, + { + "description": "Comma-separated Depop size composite ids (format {size_set_id}.{id}, e.g. \\", + "in": "query", + "name": "sizes", + "type": "string", + "x-example": "54.4" } ], "produces": [ @@ -120675,6 +123934,104 @@ ] } }, + "/depop/sizes": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns Depop's full, multi-region size taxonomy -- every composite id usable with /depop/search's and /depop/shop/{username}'s sizes filter. Public data sourced from Depop's own size-filter API.", + "operationId": "depop-sizes", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/depop.sizesResponseDoc" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get Depop's size taxonomy", + "tags": [ + "Depop" + ] + } + }, + "/depop/suggest": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns Depop's own search-box autocomplete suggestions for a partial query, including the category a suggestion maps to when relevant. Public data sourced from Depop's own search-suggestions API.", + "operationId": "depop-suggest", + "parameters": [ + { + "description": "Partial search query to autocomplete", + "in": "query", + "name": "query", + "required": true, + "type": "string", + "x-example": "red corte" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/depop.suggestResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Depop search-box autocomplete", + "tags": [ + "Depop" + ] + } + }, "/diagnostics/antibot-check": { "post": { "consumes": [ @@ -121749,19 +125106,98 @@ "ApiKeyAuth": [] } ], - "summary": "Get a DoorDash store", + "summary": "Get a DoorDash store", + "tags": [ + "DoorDash" + ] + } + }, + "/doordash/store/{store_id}/fulfillment": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns store fulfillment methods, delivery fee info, and scheduling details from the Android mobile guest experience. No DoorDash account or caller-supplied token is required.", + "operationId": "doordash-store-fulfillment", + "parameters": [ + { + "description": "Numeric DoorDash store ID", + "in": "path", + "name": "store_id", + "required": true, + "type": "string", + "x-example": "26282644" + }, + { + "description": "Delivery latitude", + "in": "query", + "name": "latitude", + "required": true, + "type": "number", + "x-example": 37.7825 + }, + { + "description": "Delivery longitude", + "in": "query", + "name": "longitude", + "required": true, + "type": "number", + "x-example": -122.461 + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/doordash.storeFulfillmentResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get DoorDash store fulfillment details", "tags": [ "DoorDash" ] } }, - "/doordash/store/{store_id}/fulfillment": { + "/doordash/store/{store_id}/info": { "get": { "consumes": [ "application/json" ], - "description": "Returns store fulfillment methods, delivery fee info, and scheduling details from the Android mobile guest experience. No DoorDash account or caller-supplied token is required.", - "operationId": "doordash-store-fulfillment", + "description": "Returns a lightweight store info card (map coordinates, address, phone number) from the Android mobile guest experience. This is a distinct upstream contract from the full store endpoint and reliably includes address and coordinates. No DoorDash account or caller-supplied token is required.", + "operationId": "doordash-store-info", "parameters": [ { "description": "Numeric DoorDash store ID", @@ -121795,7 +125231,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/doordash.storeFulfillmentResponseDoc" + "$ref": "#/definitions/doordash.storeInfoResponseDoc" } }, "400": { @@ -121828,19 +125264,19 @@ "ApiKeyAuth": [] } ], - "summary": "Get DoorDash store fulfillment details", + "summary": "Get DoorDash store contact info", "tags": [ "DoorDash" ] } }, - "/doordash/store/{store_id}/info": { + "/doordash/store/{store_id}/item/{item_id}": { "get": { "consumes": [ "application/json" ], - "description": "Returns a lightweight store info card (map coordinates, address, phone number) from the Android mobile guest experience. This is a distinct upstream contract from the full store endpoint and reliably includes address and coordinates. No DoorDash account or caller-supplied token is required.", - "operationId": "doordash-store-info", + "description": "Returns details for a specific menu item from the Android mobile guest experience. No DoorDash account or caller-supplied token is required.", + "operationId": "doordash-store-item", "parameters": [ { "description": "Numeric DoorDash store ID", @@ -121850,6 +125286,14 @@ "type": "string", "x-example": "26282644" }, + { + "description": "Menu item ID or name", + "in": "path", + "name": "item_id", + "required": true, + "type": "string", + "x-example": "Roasted Duck" + }, { "description": "Delivery latitude", "in": "query", @@ -121874,7 +125318,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/doordash.storeInfoResponseDoc" + "$ref": "#/definitions/doordash.storeItemResponseDoc" } }, "400": { @@ -121907,19 +125351,19 @@ "ApiKeyAuth": [] } ], - "summary": "Get DoorDash store contact info", + "summary": "Get DoorDash menu item details", "tags": [ "DoorDash" ] } }, - "/doordash/store/{store_id}/item/{item_id}": { + "/doordash/store/{store_id}/menu": { "get": { "consumes": [ "application/json" ], - "description": "Returns details for a specific menu item from the Android mobile guest experience. No DoorDash account or caller-supplied token is required.", - "operationId": "doordash-store-item", + "description": "Returns the location-aware DoorDash mobile menu, grouped into sections with item names, descriptions, and displayed prices. No DoorDash account or caller-supplied token is required.", + "operationId": "doordash-store-menu", "parameters": [ { "description": "Numeric DoorDash store ID", @@ -121929,14 +125373,6 @@ "type": "string", "x-example": "26282644" }, - { - "description": "Menu item ID or name", - "in": "path", - "name": "item_id", - "required": true, - "type": "string", - "x-example": "Roasted Duck" - }, { "description": "Delivery latitude", "in": "query", @@ -121961,7 +125397,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/doordash.storeItemResponseDoc" + "$ref": "#/definitions/doordash.menuResponseDoc" } }, "400": { @@ -121994,19 +125430,19 @@ "ApiKeyAuth": [] } ], - "summary": "Get DoorDash menu item details", + "summary": "Get a DoorDash store menu", "tags": [ "DoorDash" ] } }, - "/doordash/store/{store_id}/menu": { + "/doordash/store/{store_id}/reviews": { "get": { "consumes": [ "application/json" ], - "description": "Returns the location-aware DoorDash mobile menu, grouped into sections with item names, descriptions, and displayed prices. No DoorDash account or caller-supplied token is required.", - "operationId": "doordash-store-menu", + "description": "Returns store ratings and customer reviews from the Android mobile guest experience for a location. No DoorDash account or caller-supplied token is required.", + "operationId": "doordash-store-reviews", "parameters": [ { "description": "Numeric DoorDash store ID", @@ -122040,7 +125476,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/doordash.menuResponseDoc" + "$ref": "#/definitions/doordash.storeReviewsResponseDoc" } }, "400": { @@ -122073,43 +125509,27 @@ "ApiKeyAuth": [] } ], - "summary": "Get a DoorDash store menu", + "summary": "Get DoorDash store reviews", "tags": [ "DoorDash" ] } }, - "/doordash/store/{store_id}/reviews": { + "/draftkings/sportsbook/event": { "get": { "consumes": [ "application/json" ], - "description": "Returns store ratings and customer reviews from the Android mobile guest experience for a location. No DoorDash account or caller-supplied token is required.", - "operationId": "doordash-store-reviews", + "description": "Returns one event's metadata (league id, sport id, teams, status, start time) from DraftKings' credential-free public JSON. `event_id` is a numeric DraftKings event identifier (find it from an event's DraftKings Sportsbook page, or from the `id` field of an event returned by /draftkings/sportsbook/odds). The returned `league_id` is accepted by /draftkings/sportsbook/odds and /draftkings/sportsbook/futures. This endpoint does not include betting markets/odds.", + "operationId": "draftkings-event", "parameters": [ { - "description": "Numeric DoorDash store ID", - "in": "path", - "name": "store_id", - "required": true, - "type": "string", - "x-example": "26282644" - }, - { - "description": "Delivery latitude", - "in": "query", - "name": "latitude", - "required": true, - "type": "number", - "x-example": 37.7825 - }, - { - "description": "Delivery longitude", + "description": "Numeric DraftKings event id", "in": "query", - "name": "longitude", + "name": "event_id", "required": true, - "type": "number", - "x-example": -122.461 + "type": "string", + "x-example": "34240140" } ], "produces": [ @@ -122119,7 +125539,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/doordash.storeReviewsResponseDoc" + "$ref": "#/definitions/draftkings.eventResponseDoc" } }, "400": { @@ -122134,8 +125554,8 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } @@ -122152,19 +125572,16 @@ "ApiKeyAuth": [] } ], - "summary": "Get DoorDash store reviews", + "summary": "DraftKings Sportsbook event", "tags": [ - "DoorDash" + "DraftKings Sportsbook" ] } }, - "/draftkings/event": { + "/draftkings/sportsbook/event-context": { "get": { - "consumes": [ - "application/json" - ], - "description": "Returns one event's metadata (teams, status, start time) from DraftKings' credential-free public JSON. `event_id` is a numeric DraftKings event identifier (find it from an event's DraftKings Sportsbook page, or from the `id` field of an event returned by /draftkings/odds). This endpoint does not include betting markets/odds -- use /draftkings/odds for those.", - "operationId": "draftkings-event", + "description": "Returns public sport, league, and event navigation identifiers for a numeric DraftKings event id. Use it to associate an event with DraftKings Sportsbook's public sport and league navigation.", + "operationId": "draftkings-event-context", "parameters": [ { "description": "Numeric DraftKings event id", @@ -122172,7 +125589,7 @@ "name": "event_id", "required": true, "type": "string", - "x-example": "34240140" + "x-example": "34522271" } ], "produces": [ @@ -122182,7 +125599,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/draftkings.eventResponseDoc" + "$ref": "#/definitions/draftkings.eventContextResponseDoc" } }, "400": { @@ -122215,18 +125632,18 @@ "ApiKeyAuth": [] } ], - "summary": "DraftKings Sportsbook event", + "summary": "DraftKings Sportsbook event context", "tags": [ - "DraftKings" + "DraftKings Sportsbook" ] } }, - "/draftkings/event-markets": { + "/draftkings/sportsbook/event-markets": { "get": { "consumes": [ "application/json" ], - "description": "Returns one event's betting markets and selections for a specific market category, from DraftKings' credential-free public JSON. `event_id` is a numeric DraftKings event identifier (find it from the `id` field of an event returned by /draftkings/odds). `subcategory_id` selects the market category (e.g. game lines, a player-prop category, an alternate-line category) -- find one from the `subcategory_id` field on a market returned by /draftkings/odds, or from a DraftKings Sportsbook event page's own network traffic. An empty `markets` list is a valid response when the category has no markets currently posted for this event.", + "description": "Returns one event's betting markets and selections for a specific market category, from DraftKings' credential-free public JSON. `event_id` is a numeric DraftKings event identifier (find it from the `id` field of an event returned by /draftkings/sportsbook/odds). `subcategory_id` selects the market category (e.g. game lines, a player-prop category, an alternate-line category) -- find one from the `subcategory_id` field on a market returned by /draftkings/sportsbook/odds, or from a DraftKings Sportsbook event page's own network traffic. An empty `markets` list is a valid response when the category has no markets currently posted for this event.", "operationId": "draftkings-event-markets", "parameters": [ { @@ -122288,11 +125705,52 @@ ], "summary": "DraftKings Sportsbook event markets", "tags": [ - "DraftKings" + "DraftKings Sportsbook" + ] + } + }, + "/draftkings/sportsbook/featured-leagues": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns public DraftKings Sportsbook leagues currently marked as featured in its sport navigation. Each item includes its numeric `id`, capability `tags`, live-offer status, and upstream featured ordering. Use the `id` as `league_id` with /draftkings/sportsbook/odds and /draftkings/sportsbook/futures.", + "operationId": "draftkings-featured-leagues", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/draftkings.featuredLeaguesResponseDoc" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "DraftKings Sportsbook featured leagues", + "tags": [ + "DraftKings Sportsbook" ] } }, - "/draftkings/futures": { + "/draftkings/sportsbook/futures": { "get": { "consumes": [ "application/json" @@ -122359,11 +125817,156 @@ ], "summary": "DraftKings Sportsbook futures", "tags": [ - "DraftKings" + "DraftKings Sportsbook" + ] + } + }, + "/draftkings/sportsbook/league-events": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns a DraftKings Sportsbook league's current public event directory, including event IDs, teams or other participants, start times, status, and public availability tags. Supply a numeric `league_id` from /draftkings/sportsbook/leagues, /draftkings/sportsbook/quick-links, /draftkings/sportsbook/featured-leagues, or /draftkings/sportsbook/event. This endpoint does not include betting markets or odds.", + "operationId": "draftkings-league-events", + "parameters": [ + { + "description": "Numeric DraftKings league id", + "in": "query", + "name": "league_id", + "required": true, + "type": "string", + "x-example": "84240" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/draftkings.leagueEventsResponseDoc" + } + }, + "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" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "DraftKings Sportsbook league event directory", + "tags": [ + "DraftKings Sportsbook" + ] + } + }, + "/draftkings/sportsbook/leagues": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns DraftKings Sportsbook's current public sport and league directory. Each league `id` is accepted as `league_id` by /draftkings/sportsbook/odds and /draftkings/sportsbook/futures.", + "operationId": "draftkings-leagues", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/draftkings.leaguesResponseDoc" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "DraftKings Sportsbook sports and leagues", + "tags": [ + "DraftKings Sportsbook" + ] + } + }, + "/draftkings/sportsbook/live": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the live events currently shown by DraftKings Sportsbook, including score state, period, primary markets, and market categories that can be used with /draftkings/sportsbook/event-markets. An empty `events` list is valid when DraftKings has no live events at request time.", + "operationId": "draftkings-live", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/draftkings.liveResponseDoc" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "DraftKings Sportsbook live events", + "tags": [ + "DraftKings Sportsbook" ] } }, - "/draftkings/odds": { + "/draftkings/sportsbook/odds": { "get": { "consumes": [ "application/json" @@ -122422,7 +126025,198 @@ ], "summary": "DraftKings Sportsbook odds", "tags": [ - "DraftKings" + "DraftKings Sportsbook" + ] + } + }, + "/draftkings/sportsbook/quick-links": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the ordered league shortcuts currently prioritized on DraftKings Sportsbook's public home page. Each item includes a numeric `league_id` accepted by /draftkings/sportsbook/odds and /draftkings/sportsbook/futures.", + "operationId": "draftkings-quick-links", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/draftkings.quickLinksResponseDoc" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "DraftKings Sportsbook quick links", + "tags": [ + "DraftKings Sportsbook" + ] + } + }, + "/draftkings/sportsbook/team": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns stable team metadata embedded in a public DraftKings Sportsbook team page. Supply `team_id`, `sport`, and `slug` from an item returned by /draftkings/sportsbook/teams. Allowed `sport` values: `football`, `hockey`, `basketball`, `baseball`.", + "operationId": "draftkings-team", + "parameters": [ + { + "description": "Numeric DraftKings team id", + "in": "query", + "name": "team_id", + "required": true, + "type": "string", + "x-example": "18454" + }, + { + "description": "Sport: football, hockey, basketball, baseball", + "enum": [ + "football", + "hockey", + "basketball", + "baseball" + ], + "in": "query", + "name": "sport", + "required": true, + "type": "string", + "x-example": "football" + }, + { + "description": "Lowercase DraftKings team slug", + "in": "query", + "name": "slug", + "required": true, + "type": "string", + "x-example": "arizona-cardinals" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/draftkings.teamResponseDoc" + } + }, + "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" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "DraftKings Sportsbook team", + "tags": [ + "DraftKings Sportsbook" + ] + } + }, + "/draftkings/sportsbook/teams": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the teams listed on DraftKings Sportsbook's public Teams page for one league. Allowed `league` values: `nfl`, `nhl`, `nba`, `cbb`, `mlb`, `cfb`.", + "operationId": "draftkings-teams", + "parameters": [ + { + "description": "League: nfl, nhl, nba, cbb, mlb, cfb", + "enum": [ + "nfl", + "nhl", + "nba", + "cbb", + "mlb", + "cfb" + ], + "in": "query", + "name": "league", + "required": true, + "type": "string", + "x-example": "nfl" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/draftkings.teamsResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "DraftKings Sportsbook league teams", + "tags": [ + "DraftKings Sportsbook" ] } }, @@ -131015,6 +134809,75 @@ ] } }, + "/googlepatents/classification": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns a CPC classification symbol's official title, its position in the classification tree (parent/child symbols), related symbols, and its full scope-note description. Accepts a symbol at any level, e.g. a section (\"A\"), a class (\"A61\"), a subclass (\"A61K\"), or a full group/subgroup (\"A61K31/00\"). Public data, sourced from Google Patents' own search API.", + "operationId": "googlepatents-classification", + "parameters": [ + { + "description": "CPC classification symbol", + "in": "query", + "name": "code", + "required": true, + "type": "string", + "x-example": "A61K31/00" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/googlepatents.classificationResponseDoc" + } + }, + "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" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Look up a Cooperative Patent Classification (CPC) symbol", + "tags": [ + "Google Patents" + ] + } + }, "/googlepatents/coverage": { "get": { "consumes": [ @@ -131138,6 +135001,75 @@ ] } }, + "/googlepatents/recent": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the patent publications Google Patents' bulk sitemap indexes for one ISO 8601 week (format YYYY-Www, e.g. \"2026-W20\"): publication number, title, and detail-page URL for each. Useful for browsing recently published patents without a search query. Public data, sourced from Google Patents' own sitemap.", + "operationId": "googlepatents-recent", + "parameters": [ + { + "description": "ISO 8601 week, format YYYY-Www", + "in": "query", + "name": "week", + "required": true, + "type": "string", + "x-example": "2026-W20" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/googlepatents.recentResponseDoc" + } + }, + "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" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Browse patent publications indexed by Google Patents for one ISO week", + "tags": [ + "Google Patents" + ] + } + }, "/googlepatents/search": { "get": { "consumes": [ @@ -132636,7 +136568,7 @@ "ApiKeyAuth": [] } ], - "summary": "Get related products for an H&M product", + "summary": "Get an H&M product's related items", "tags": [ "H&M" ] @@ -132757,7 +136689,7 @@ "ApiKeyAuth": [] } ], - "summary": "Get H&M search-box typeahead suggestions", + "summary": "Get H&M search-box suggestions", "tags": [ "H&M" ] @@ -157984,54 +161916,607 @@ "ApiKeyAuth": [] } ], - "summary": "Get a single filing by accession number", + "summary": "Get a single filing by accession number", + "tags": [ + "SEC EDGAR" + ] + } + }, + "/sec/filing/sections": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Extracts item sections (e.g. 1A Risk Factors, 7 MD&A) from a 10-K/10-Q/8-K primary document as clean text. Provide accession plus cik or ticker. Credential-free public SEC data.", + "operationId": "sec-filing-sections", + "parameters": [ + { + "description": "SEC CIK (numeric or zero-padded)", + "in": "query", + "name": "cik", + "type": "string", + "x-example": "320193" + }, + { + "description": "Ticker symbol (alternative to cik)", + "in": "query", + "name": "ticker", + "type": "string", + "x-example": "AAPL" + }, + { + "description": "Accession number", + "in": "query", + "name": "accession", + "required": true, + "type": "string", + "x-example": "0000320193-25-000079" + }, + { + "description": "Comma-separated item numbers to return, e.g. 1A,7", + "in": "query", + "name": "items", + "type": "string", + "x-example": "1A,7" + }, + { + "description": "Max characters per section, default 20000, max 200000", + "in": "query", + "name": "max_chars", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/sec.filingSectionsResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Extract 10-K/10-Q/8-K item sections", + "tags": [ + "SEC EDGAR" + ] + } + }, + "/sec/financials": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns a company's normalized financial statements across recent periods, resolving EDGAR's inconsistent XBRL tags to a stable schema. Provide cik or ticker. Credential-free public SEC data.", + "operationId": "sec-financials", + "parameters": [ + { + "description": "SEC CIK (numeric or zero-padded)", + "in": "query", + "name": "cik", + "type": "string", + "x-example": "320193" + }, + { + "description": "Ticker symbol (alternative to cik)", + "in": "query", + "name": "ticker", + "type": "string", + "x-example": "AAPL" + }, + { + "description": "Statement, default income", + "enum": [ + "income", + "balance", + "cash_flow" + ], + "in": "query", + "name": "statement", + "type": "string" + }, + { + "description": "Period basis, default annual", + "enum": [ + "annual", + "quarterly" + ], + "in": "query", + "name": "period", + "type": "string" + }, + { + "description": "Number of periods, default 5, max 20", + "in": "query", + "name": "limit", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/sec.financialsResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Normalized income statement, balance sheet, or cash flow", + "tags": [ + "SEC EDGAR" + ] + } + }, + "/sec/frames": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns every filer's reported value for one XBRL concept in one reporting period (an EDGAR \"frame\"). Credential-free public SEC data.", + "operationId": "sec-frames", + "parameters": [ + { + "description": "XBRL concept tag, e.g. Assets, Revenues", + "in": "query", + "name": "concept", + "required": true, + "type": "string", + "x-example": "Assets" + }, + { + "description": "Reporting frame, e.g. CY2024, CY2024Q1, CY2024Q4I", + "in": "query", + "name": "period", + "required": true, + "type": "string", + "x-example": "CY2024Q4I" + }, + { + "description": "Unit of measure, default USD", + "in": "query", + "name": "unit", + "type": "string", + "x-example": "USD" + }, + { + "description": "XBRL taxonomy, default us-gaap", + "enum": [ + "dei", + "ifrs-full", + "srt", + "us-gaap" + ], + "in": "query", + "name": "taxonomy", + "type": "string" + }, + { + "description": "Max companies, default 200, max 2000", + "in": "query", + "name": "limit", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/sec.framesResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Cross-company values for one XBRL concept and period", + "tags": [ + "SEC EDGAR" + ] + } + }, + "/sec/full-text-search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Searches the full text of SEC EDGAR filings (efts), filtered by form and date, with pagination. Credential-free public SEC data; free where incumbents gate full-text search behind paid tiers.", + "operationId": "sec-full-text-search", + "parameters": [ + { + "description": "Search query (supports quoted phrases)", + "in": "query", + "name": "q", + "required": true, + "type": "string", + "x-example": "artificial intelligence" + }, + { + "description": "Filter by form types, comma-separated", + "in": "query", + "name": "forms", + "type": "string", + "x-example": "10-K" + }, + { + "description": "Earliest filing date (YYYY-MM-DD)", + "in": "query", + "name": "from", + "type": "string" + }, + { + "description": "Latest filing date (YYYY-MM-DD)", + "in": "query", + "name": "to", + "type": "string" + }, + { + "description": "1-based page number, default 1", + "in": "query", + "name": "page", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/sec.fullTextResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Full-text search across EDGAR filings", + "tags": [ + "SEC EDGAR" + ] + } + }, + "/sec/insider": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns a company's recent insider transactions parsed from Form 3/4/5 ownership filings (owner, role, security, shares, price). Provide cik or ticker. Credential-free public SEC data.", + "operationId": "sec-insider", + "parameters": [ + { + "description": "SEC CIK (numeric or zero-padded)", + "in": "query", + "name": "cik", + "type": "string", + "x-example": "320193" + }, + { + "description": "Ticker symbol (alternative to cik)", + "in": "query", + "name": "ticker", + "type": "string", + "x-example": "AAPL" + }, + { + "description": "Max transactions, default 10, max 30", + "in": "query", + "name": "limit", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/sec.insiderResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Insider transactions (Forms 3/4/5)", + "tags": [ + "SEC EDGAR" + ] + } + }, + "/sec/institutional-holdings": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the latest 13F-HR holdings for an institutional manager (by CIK): issuer, value, shares, sorted by value. Credential-free public SEC data.", + "operationId": "sec-institutional-holdings", + "parameters": [ + { + "description": "Institutional manager CIK", + "in": "query", + "name": "cik", + "required": true, + "type": "string", + "x-example": "1067983" + }, + { + "description": "Max holdings, default 50, max 1000", + "in": "query", + "name": "limit", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/sec.holdingsResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Institutional holdings (13F-HR)", "tags": [ "SEC EDGAR" ] } }, - "/sec/filing/sections": { + "/sephora/category": { "get": { "consumes": [ "application/json" ], - "description": "Extracts item sections (e.g. 1A Risk Factors, 7 MD&A) from a 10-K/10-Q/8-K primary document as clean text. Provide accession plus cik or ticker. Credential-free public SEC data.", - "operationId": "sec-filing-sections", + "description": "Returns one page of a Sephora category/browse listing (e.g. Makeup, Skincare), with the same sort and facet filters as /sephora/search. slug is the path segment after sephora.com/shop/, e.g. makeup-cosmetics. An unrecognized slug returns 404.", + "operationId": "sephora-category", "parameters": [ { - "description": "SEC CIK (numeric or zero-padded)", + "description": "Category-page slug", "in": "query", - "name": "cik", + "name": "slug", + "required": true, "type": "string", - "x-example": "320193" + "x-example": "makeup-cosmetics" }, { - "description": "Ticker symbol (alternative to cik)", + "description": "Result page, 1-based, defaults to 1", "in": "query", - "name": "ticker", - "type": "string", - "x-example": "AAPL" + "name": "page", + "type": "integer", + "x-example": 1 }, { - "description": "Accession number", + "description": "Sort order, defaults to featured", + "enum": [ + "featured", + "top_rated", + "new", + "best_selling", + "price_low_to_high", + "price_high_to_low" + ], "in": "query", - "name": "accession", - "required": true, + "name": "sort_by", "type": "string", - "x-example": "0000320193-25-000079" + "x-example": "featured" }, { - "description": "Comma-separated item numbers to return, e.g. 1A,7", + "description": "Minimum price in whole dollars; must be set together with price_max", "in": "query", - "name": "items", - "type": "string", - "x-example": "1A,7" + "name": "price_min", + "type": "integer", + "x-example": 15 }, { - "description": "Max characters per section, default 20000, max 200000", + "description": "Maximum price in whole dollars; must be set together with price_min", "in": "query", - "name": "max_chars", - "type": "integer" + "name": "price_max", + "type": "integer", + "x-example": 30 + }, + { + "collectionFormat": "csv", + "description": "One or more exact brand names to filter to (OR'd together); repeat the param for multiple values", + "in": "query", + "items": { + "type": "string" + }, + "name": "brand", + "type": "array", + "x-example": "Lancôme" + }, + { + "description": "Minimum star rating, 1 to 4", + "in": "query", + "name": "rating_min", + "type": "integer", + "x-example": 4 + }, + { + "description": "When true, filters to products flagged New", + "in": "query", + "name": "is_new", + "type": "boolean", + "x-example": false + }, + { + "collectionFormat": "csv", + "description": "Additional facet:value filters, repeat the param for multiple; facet must be one of: benefits, ingredientpreferences, colorfamily, formulation, size, shoppingpreferences, agerange, skintype, finish, skinconcerns, coverage, hairtype, hairconcerns, hairtexture", + "in": "query", + "items": { + "type": "string" + }, + "name": "filter", + "type": "array", + "x-example": "formulation:serum" } ], "produces": [ @@ -158041,7 +162526,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/sec.filingSectionsResponseDoc" + "$ref": "#/definitions/sephora.categoryResponseDoc" } }, "400": { @@ -158056,8 +162541,8 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } @@ -158074,60 +162559,27 @@ "ApiKeyAuth": [] } ], - "summary": "Extract 10-K/10-Q/8-K item sections", + "summary": "Sephora category browse", "tags": [ - "SEC EDGAR" + "Sephora" ] } }, - "/sec/financials": { + "/sephora/product": { "get": { "consumes": [ "application/json" ], - "description": "Returns a company's normalized financial statements across recent periods, resolving EDGAR's inconsistent XBRL tags to a stable schema. Provide cik or ticker. Credential-free public SEC data.", - "operationId": "sec-financials", + "description": "Returns one Sephora product's full detail (every color/shade variant with its own price and availability, rating, review count, and a sample of recent reviews), from Sephora's credential-free public JSON-LD. `product_id` is the full product-page slug, e.g. `lip-sleeping-mask-P420652` -- copy it from the path segment after sephora.com/product/ on any product page; unlike some other retailers, an arbitrary or partial slug does not resolve.", + "operationId": "sephora-product", "parameters": [ { - "description": "SEC CIK (numeric or zero-padded)", - "in": "query", - "name": "cik", - "type": "string", - "x-example": "320193" - }, - { - "description": "Ticker symbol (alternative to cik)", + "description": "Full Sephora product-page slug", "in": "query", - "name": "ticker", + "name": "product_id", + "required": true, "type": "string", - "x-example": "AAPL" - }, - { - "description": "Statement, default income", - "enum": [ - "income", - "balance", - "cash_flow" - ], - "in": "query", - "name": "statement", - "type": "string" - }, - { - "description": "Period basis, default annual", - "enum": [ - "annual", - "quarterly" - ], - "in": "query", - "name": "period", - "type": "string" - }, - { - "description": "Number of periods, default 5, max 20", - "in": "query", - "name": "limit", - "type": "integer" + "x-example": "lip-sleeping-mask-P420652" } ], "produces": [ @@ -158137,7 +162589,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/sec.financialsResponseDoc" + "$ref": "#/definitions/sephora.productResponseDoc" } }, "400": { @@ -158152,8 +162604,8 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } @@ -158170,60 +162622,98 @@ "ApiKeyAuth": [] } ], - "summary": "Normalized income statement, balance sheet, or cash flow", + "summary": "Sephora product detail", "tags": [ - "SEC EDGAR" + "Sephora" ] } }, - "/sec/frames": { + "/sephora/product/questions": { "get": { "consumes": [ "application/json" ], - "description": "Returns every filer's reported value for one XBRL concept in one reporting period (an EDGAR \"frame\"). Credential-free public SEC data.", - "operationId": "sec-frames", + "description": "Returns one page of a Sephora product's customer Q&A: each question plus every answer it received (text, author, whether it's a brand answer, helpful votes). product_id is the Sephora productGroupID, e.g. P420652 -- the same value /sephora/product returns as product_group_id.", + "operationId": "sephora-product-questions", "parameters": [ { - "description": "XBRL concept tag, e.g. Assets, Revenues", + "description": "Sephora productGroupID", "in": "query", - "name": "concept", + "name": "product_id", "required": true, "type": "string", - "x-example": "Assets" + "x-example": "P420652" }, { - "description": "Reporting frame, e.g. CY2024, CY2024Q1, CY2024Q4I", + "description": "Result page, 1-based, defaults to 1", "in": "query", - "name": "period", - "required": true, - "type": "string", - "x-example": "CY2024Q4I" + "name": "page", + "type": "integer", + "x-example": 1 + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/sephora.productQuestionsResponseDoc" + } }, - { - "description": "Unit of measure, default USD", - "in": "query", - "name": "unit", - "type": "string", - "x-example": "USD" + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ { - "description": "XBRL taxonomy, default us-gaap", - "enum": [ - "dei", - "ifrs-full", - "srt", - "us-gaap" - ], + "ApiKeyAuth": [] + } + ], + "summary": "Sephora product questions and answers", + "tags": [ + "Sephora" + ] + } + }, + "/sephora/product/reviews": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns one page of a Sephora product's full customer reviews (title, body, rating, author, helpful votes, secondary ratings, photos), plus the product's site-wide rating rollup (average rating, recommended ratio, star-count histogram). product_id is the Sephora productGroupID, e.g. P420652 -- the same value /sephora/product returns as product_group_id.", + "operationId": "sephora-product-reviews", + "parameters": [ + { + "description": "Sephora productGroupID", "in": "query", - "name": "taxonomy", - "type": "string" + "name": "product_id", + "required": true, + "type": "string", + "x-example": "P420652" }, { - "description": "Max companies, default 200, max 2000", + "description": "Result page, 1-based, defaults to 1", "in": "query", - "name": "limit", - "type": "integer" + "name": "page", + "type": "integer", + "x-example": 1 } ], "produces": [ @@ -158233,7 +162723,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/sec.framesResponseDoc" + "$ref": "#/definitions/sephora.productReviewsResponseDoc" } }, "400": { @@ -158242,14 +162732,8 @@ "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } @@ -158266,52 +162750,106 @@ "ApiKeyAuth": [] } ], - "summary": "Cross-company values for one XBRL concept and period", + "summary": "Sephora product reviews", "tags": [ - "SEC EDGAR" + "Sephora" ] } }, - "/sec/full-text-search": { + "/sephora/search": { "get": { "consumes": [ "application/json" ], - "description": "Searches the full text of SEC EDGAR filings (efts), filtered by form and date, with pagination. Credential-free public SEC data; free where incumbents gate full-text search behind paid tiers.", - "operationId": "sec-full-text-search", + "description": "Searches Sephora's product catalog by keyword, with real page-based pagination. Returns normalized products with brand, pricing, rating, and review count. Sephora's own search never returns a genuine zero-result state for a nonempty keyword -- an unrecognized/nonsense keyword still returns a full, unrelated fallback result set rather than an empty one. price_min/price_max must be provided together (whole dollars) -- upstream silently ignores a one-sided price range rather than filtering or erroring, so this endpoint rejects a one-sided range as invalid instead of passing it through. brand and filter each accept multiple values (OR'd together within the same facet); brand/rating_min/is_new/filter/price_min/price_max can all be combined with each other (AND'd together across different facets).", + "operationId": "sephora-search", "parameters": [ { - "description": "Search query (supports quoted phrases)", + "description": "Search keyword", "in": "query", - "name": "q", + "name": "query", "required": true, "type": "string", - "x-example": "artificial intelligence" + "x-example": "mascara" }, { - "description": "Filter by form types, comma-separated", + "description": "Result page, 1-based, defaults to 1", "in": "query", - "name": "forms", + "name": "page", + "type": "integer", + "x-example": 1 + }, + { + "description": "Results per page, 1 to 100, defaults to 60", + "in": "query", + "name": "page_size", + "type": "integer", + "x-example": 60 + }, + { + "description": "Sort order, defaults to featured", + "enum": [ + "featured", + "top_rated", + "new", + "best_selling", + "price_low_to_high", + "price_high_to_low" + ], + "in": "query", + "name": "sort_by", "type": "string", - "x-example": "10-K" + "x-example": "featured" }, { - "description": "Earliest filing date (YYYY-MM-DD)", + "description": "Minimum price in whole dollars; must be set together with price_max", "in": "query", - "name": "from", - "type": "string" + "name": "price_min", + "type": "integer", + "x-example": 15 }, { - "description": "Latest filing date (YYYY-MM-DD)", + "description": "Maximum price in whole dollars; must be set together with price_min", "in": "query", - "name": "to", - "type": "string" + "name": "price_max", + "type": "integer", + "x-example": 30 }, { - "description": "1-based page number, default 1", + "collectionFormat": "csv", + "description": "One or more exact brand names to filter to (OR'd together); repeat the param for multiple values", "in": "query", - "name": "page", - "type": "integer" + "items": { + "type": "string" + }, + "name": "brand", + "type": "array", + "x-example": "Lancôme" + }, + { + "description": "Minimum star rating, 1 to 4", + "in": "query", + "name": "rating_min", + "type": "integer", + "x-example": 4 + }, + { + "description": "When true, filters to products flagged New", + "in": "query", + "name": "is_new", + "type": "boolean", + "x-example": false + }, + { + "collectionFormat": "csv", + "description": "Additional facet:value filters, repeat the param for multiple; facet must be one of: benefits, ingredientpreferences, colorfamily, formulation, size, shoppingpreferences, agerange, skintype, finish, skinconcerns, coverage, hairtype, hairconcerns, hairtexture", + "in": "query", + "items": { + "type": "string" + }, + "name": "filter", + "type": "array", + "x-example": "formulation:serum" } ], "produces": [ @@ -158321,7 +162859,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/sec.fullTextResponseDoc" + "$ref": "#/definitions/sephora.searchResponseDoc" } }, "400": { @@ -158330,8 +162868,8 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } @@ -158348,39 +162886,49 @@ "ApiKeyAuth": [] } ], - "summary": "Full-text search across EDGAR filings", + "summary": "Sephora product search", "tags": [ - "SEC EDGAR" + "Sephora" ] } }, - "/sec/insider": { + "/sephora/stores": { "get": { "consumes": [ "application/json" ], - "description": "Returns a company's recent insider transactions parsed from Form 3/4/5 ownership filings (owner, role, security, shares, price). Provide cik or ticker. Credential-free public SEC data.", - "operationId": "sec-insider", + "description": "Returns Sephora physical store locations near a coordinate (address, hours, BOPIS/curbside/same-day flags). Renders through a JS-executing browser backend, unlike every other Sephora endpoint -- the store-locator data call itself is plain HTTP, but it requires a per-visit access token minted by an endpoint gated behind a bot-management JS challenge, so responses may take longer.", + "operationId": "sephora-stores", "parameters": [ { - "description": "SEC CIK (numeric or zero-padded)", + "description": "Latitude, -90 to 90", "in": "query", - "name": "cik", - "type": "string", - "x-example": "320193" + "name": "latitude", + "required": true, + "type": "number", + "x-example": 41.88325 }, { - "description": "Ticker symbol (alternative to cik)", + "description": "Longitude, -180 to 180", "in": "query", - "name": "ticker", - "type": "string", - "x-example": "AAPL" + "name": "longitude", + "required": true, + "type": "number", + "x-example": -87.6323879 }, { - "description": "Max transactions, default 10, max 30", + "description": "Search radius in miles, 1 to 500, defaults to 50", + "in": "query", + "name": "radius", + "type": "integer", + "x-example": 50 + }, + { + "description": "Max stores to return, 1 to 50, defaults to 10", "in": "query", "name": "limit", - "type": "integer" + "type": "integer", + "x-example": 10 } ], "produces": [ @@ -158390,7 +162938,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/sec.insiderResponseDoc" + "$ref": "#/definitions/sephora.storesResponseDoc" } }, "400": { @@ -158399,14 +162947,8 @@ "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } @@ -158423,33 +162965,27 @@ "ApiKeyAuth": [] } ], - "summary": "Insider transactions (Forms 3/4/5)", + "summary": "Sephora store locator", "tags": [ - "SEC EDGAR" + "Sephora" ] } }, - "/sec/institutional-holdings": { + "/sephora/suggest": { "get": { "consumes": [ "application/json" ], - "description": "Returns the latest 13F-HR holdings for an institutional manager (by CIK): issuer, value, shares, sorted by value. Credential-free public SEC data.", - "operationId": "sec-institutional-holdings", + "description": "Returns Sephora's own search-box type-ahead suggestions for a partial keyword: keyword-completion terms, matching products, and trending/related categories. Sephora's own upstream never returns a genuine zero-result state for a nonempty query -- a deliberately nonsense query still returns unrelated product suggestions.", + "operationId": "sephora-suggest", "parameters": [ { - "description": "Institutional manager CIK", + "description": "Partial search keywords", "in": "query", - "name": "cik", + "name": "query", "required": true, "type": "string", - "x-example": "1067983" - }, - { - "description": "Max holdings, default 50, max 1000", - "in": "query", - "name": "limit", - "type": "integer" + "x-example": "masc" } ], "produces": [ @@ -158459,7 +162995,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/sec.holdingsResponseDoc" + "$ref": "#/definitions/sephora.suggestResponseDoc" } }, "400": { @@ -158468,14 +163004,8 @@ "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } @@ -158492,9 +163022,9 @@ "ApiKeyAuth": [] } ], - "summary": "Institutional holdings (13F-HR)", + "summary": "Sephora search suggestions", "tags": [ - "SEC EDGAR" + "Sephora" ] } }, @@ -175474,6 +180004,167 @@ ] } }, + "/usptoppubs/detail": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Fetches a single USPTO Patent Public Search record's full text -- bibliographic data, abstract, description, and claims -- by GUID and source database. guid and source normally come straight from a prior /usptoppubs/search result's guid and database fields. Public data, sourced from USPTO's own official search tool.", + "operationId": "usptoppubs-detail", + "parameters": [ + { + "description": "Document GUID, e.g. from a prior search result's guid field", + "in": "query", + "name": "guid", + "required": true, + "type": "string", + "x-example": "US-20260238009-A1" + }, + { + "description": "Source database. Allowed values: US-PGPUB, USPAT, USOCR", + "in": "query", + "name": "source", + "required": true, + "type": "string", + "x-example": "US-PGPUB" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/usptoppubs.detailResponseDoc" + } + }, + "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" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Fetch a document's full bibliographic data, abstract, description, and claims", + "tags": [ + "USPTO Patent Public Search" + ] + } + }, + "/usptoppubs/search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Searches USPTO Patent Public Search's full-text index of granted patents and published applications, returning normalized bibliographic results (title, applicant/assignee, inventors, filing and publication dates, application number, IPC/CPC classifications, page count). q accepts USPTO's full Advanced Search query syntax -- field-specific search (e.g. battery.ti., Microsoft.as.), date ranges (@pd>=20200101<=20241231), boolean and proximity operators, and wildcards -- see the markdown doc for the full field-code table and syntax reference. Public data, sourced from USPTO's own official search tool.", + "operationId": "usptoppubs-search", + "parameters": [ + { + "description": "Search query text -- accepts USPTO's full Advanced Search (BRS) query syntax: field codes, date ranges, boolean/proximity operators, wildcards", + "in": "query", + "name": "q", + "required": true, + "type": "string", + "x-example": "battery" + }, + { + "description": "Comma-separated subset of databases to search. Allowed values: US-PGPUB, USPAT, USOCR. Defaults to all three", + "in": "query", + "name": "databases", + "type": "string", + "x-example": "US-PGPUB,USPAT,USOCR" + }, + { + "description": "Results to return, default 20, max 100", + "in": "query", + "name": "num", + "type": "integer", + "x-example": 20 + }, + { + "description": "Results page, 0-indexed, default 0", + "in": "query", + "name": "page", + "type": "integer", + "x-example": 0 + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/usptoppubs.searchResponseDoc" + } + }, + "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" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Search USPTO's own patent full-text search index", + "tags": [ + "USPTO Patent Public Search" + ] + } + }, "/vinted/brand": { "get": { "consumes": [ diff --git a/src/main/java/net/crawlora/ClientGroups.java b/src/main/java/net/crawlora/ClientGroups.java index f55fd31..2581db7 100644 --- a/src/main/java/net/crawlora/ClientGroups.java +++ b/src/main/java/net/crawlora/ClientGroups.java @@ -251,11 +251,11 @@ public DoorDashGroup doorDash() { } /** - * Typed accessor for the "draftKings" operation group. - * @return a new {@link DraftKingsGroup} bound to this client + * Typed accessor for the "draftKingsSportsbook" operation group. + * @return a new {@link DraftKingsSportsbookGroup} bound to this client */ - public DraftKingsGroup draftKings() { - return new DraftKingsGroup((CrawloraClient) this); + public DraftKingsSportsbookGroup draftKingsSportsbook() { + return new DraftKingsSportsbookGroup((CrawloraClient) this); } /** @@ -666,6 +666,14 @@ public SecEdgarGroup secEdgar() { return new SecEdgarGroup((CrawloraClient) this); } + /** + * Typed accessor for the "sephora" operation group. + * @return a new {@link SephoraGroup} bound to this client + */ + public SephoraGroup sephora() { + return new SephoraGroup((CrawloraClient) this); + } + /** * Typed accessor for the "shopApp" operation group. * @return a new {@link ShopAppGroup} bound to this client @@ -882,6 +890,14 @@ public AccountDeletionGroup accountDeletion() { return new AccountDeletionGroup((CrawloraClient) this); } + /** + * Typed accessor for the "usptoPatentPublicSearch" operation group. + * @return a new {@link UsptoPatentPublicSearchGroup} bound to this client + */ + public UsptoPatentPublicSearchGroup usptoPatentPublicSearch() { + return new UsptoPatentPublicSearchGroup((CrawloraClient) this); + } + /** * Typed accessor for the "vinted" operation group. * @return a new {@link VintedGroup} bound to this client diff --git a/src/main/java/net/crawlora/OperationId.java b/src/main/java/net/crawlora/OperationId.java index 81a88c9..a083b25 100644 --- a/src/main/java/net/crawlora/OperationId.java +++ b/src/main/java/net/crawlora/OperationId.java @@ -78,9 +78,17 @@ private OperationId() {} public static final String AUTOTRADER_DEALER = "autotrader-dealer"; public static final String AUTOTRADER_SEARCH = "autotrader-search"; public static final String AUTOTRADER_VEHICLE = "autotrader-vehicle"; + public static final String BEST_BUY_BESTBUY_BRANDS = "bestbuy-brands"; + public static final String BEST_BUY_BESTBUY_CATEGORIES = "bestbuy-categories"; + public static final String BEST_BUY_BESTBUY_CATEGORIES_TRENDING = "bestbuy-categories-trending"; public static final String BEST_BUY_BESTBUY_CATEGORY = "bestbuy-category"; + public static final String BEST_BUY_BESTBUY_CATEGORY_SUBCATEGORIES = "bestbuy-category-subcategories"; public static final String BEST_BUY_BESTBUY_PRODUCT = "bestbuy-product"; + public static final String BEST_BUY_BESTBUY_PRODUCT_QUESTIONS = "bestbuy-product-questions"; + public static final String BEST_BUY_BESTBUY_PRODUCT_RELATED = "bestbuy-product-related"; public static final String BEST_BUY_BESTBUY_PRODUCT_REVIEWS = "bestbuy-product-reviews"; + public static final String BEST_BUY_BESTBUY_SEARCH = "bestbuy-search"; + public static final String BEST_BUY_BESTBUY_STORES = "bestbuy-stores"; public static final String BILLING_ME = "billing-me"; public static final String BILLING_ME_CHECKOUT = "billing-me-checkout"; public static final String BILLING_ME_EVENTS = "billing-me-events"; @@ -299,11 +307,16 @@ private OperationId() {} public static final String DATASETS_XUSERS_FACETS = "datasets-x-users-facets"; public static final String DATASETS_XUSERS_ITEM = "datasets-x-users-item"; public static final String DATASETS_XUSERS_SEARCH = "datasets-x-users-search"; + public static final String DEPOP_BRANDS = "depop-brands"; public static final String DEPOP_CATEGORIES = "depop-categories"; public static final String DEPOP_ITEM = "depop-item"; public static final String DEPOP_ITEM_SIMILAR = "depop-item-similar"; public static final String DEPOP_SEARCH = "depop-search"; + public static final String DEPOP_SEARCH_FACETS = "depop-search-facets"; + public static final String DEPOP_SEARCH_SELLERS = "depop-search-sellers"; public static final String DEPOP_SHOP = "depop-shop"; + public static final String DEPOP_SIZES = "depop-sizes"; + public static final String DEPOP_SUGGEST = "depop-suggest"; public static final String DISCOGS_ARTIST = "discogs-artist"; public static final String DISCOGS_ARTIST_RELEASES = "discogs-artist-releases"; public static final String DISCOGS_LABEL = "discogs-label"; @@ -323,10 +336,18 @@ private OperationId() {} public static final String DOOR_DASH_DOORDASH_STORE_ITEM = "doordash-store-item"; public static final String DOOR_DASH_DOORDASH_STORE_MENU = "doordash-store-menu"; public static final String DOOR_DASH_DOORDASH_STORE_REVIEWS = "doordash-store-reviews"; - public static final String DRAFT_KINGS_DRAFTKINGS_EVENT = "draftkings-event"; - public static final String DRAFT_KINGS_DRAFTKINGS_EVENT_MARKETS = "draftkings-event-markets"; - public static final String DRAFT_KINGS_DRAFTKINGS_FUTURES = "draftkings-futures"; - public static final String DRAFT_KINGS_DRAFTKINGS_ODDS = "draftkings-odds"; + public static final String DRAFT_KINGS_SPORTSBOOK_DRAFTKINGS_EVENT = "draftkings-event"; + public static final String DRAFT_KINGS_SPORTSBOOK_DRAFTKINGS_EVENT_CONTEXT = "draftkings-event-context"; + public static final String DRAFT_KINGS_SPORTSBOOK_DRAFTKINGS_EVENT_MARKETS = "draftkings-event-markets"; + public static final String DRAFT_KINGS_SPORTSBOOK_DRAFTKINGS_FEATURED_LEAGUES = "draftkings-featured-leagues"; + public static final String DRAFT_KINGS_SPORTSBOOK_DRAFTKINGS_FUTURES = "draftkings-futures"; + public static final String DRAFT_KINGS_SPORTSBOOK_DRAFTKINGS_LEAGUE_EVENTS = "draftkings-league-events"; + public static final String DRAFT_KINGS_SPORTSBOOK_DRAFTKINGS_LEAGUES = "draftkings-leagues"; + public static final String DRAFT_KINGS_SPORTSBOOK_DRAFTKINGS_LIVE = "draftkings-live"; + public static final String DRAFT_KINGS_SPORTSBOOK_DRAFTKINGS_ODDS = "draftkings-odds"; + public static final String DRAFT_KINGS_SPORTSBOOK_DRAFTKINGS_QUICK_LINKS = "draftkings-quick-links"; + public static final String DRAFT_KINGS_SPORTSBOOK_DRAFTKINGS_TEAM = "draftkings-team"; + public static final String DRAFT_KINGS_SPORTSBOOK_DRAFTKINGS_TEAMS = "draftkings-teams"; public static final String DUCK_DUCK_GO_SEARCH_DUCKDUCKGO_IMAGE = "duckduckgo-image"; public static final String DUCK_DUCK_GO_SEARCH_DUCKDUCKGO_NEWS = "duckduckgo-news"; public static final String DUCK_DUCK_GO_SEARCH_DUCKDUCKGO_SEARCH = "duckduckgo-search"; @@ -428,8 +449,10 @@ private OperationId() {} public static final String GOOGLE_MAP_PLACE_REVIEWS = "google-map-place-reviews"; public static final String GOOGLE_MAP_SEARCH = "google-map-search"; public static final String GOOGLE_NEWS = "google-news"; + public static final String GOOGLE_PATENTS_GOOGLEPATENTS_CLASSIFICATION = "googlepatents-classification"; public static final String GOOGLE_PATENTS_GOOGLEPATENTS_COVERAGE = "googlepatents-coverage"; public static final String GOOGLE_PATENTS_GOOGLEPATENTS_DETAIL = "googlepatents-detail"; + public static final String GOOGLE_PATENTS_GOOGLEPATENTS_RECENT = "googlepatents-recent"; public static final String GOOGLE_PATENTS_GOOGLEPATENTS_SEARCH = "googlepatents-search"; public static final String GOOGLE_PATENTS_GOOGLEPATENTS_SUGGEST = "googlepatents-suggest"; public static final String GOOGLE_PLAY_APP = "googleplay-app"; @@ -810,6 +833,13 @@ private OperationId() {} public static final String SEC_EDGAR_SEC_FULL_TEXT_SEARCH = "sec-full-text-search"; public static final String SEC_EDGAR_SEC_INSIDER = "sec-insider"; public static final String SEC_EDGAR_SEC_INSTITUTIONAL_HOLDINGS = "sec-institutional-holdings"; + public static final String SEPHORA_CATEGORY = "sephora-category"; + public static final String SEPHORA_PRODUCT = "sephora-product"; + public static final String SEPHORA_PRODUCT_QUESTIONS = "sephora-product-questions"; + public static final String SEPHORA_PRODUCT_REVIEWS = "sephora-product-reviews"; + public static final String SEPHORA_SEARCH = "sephora-search"; + public static final String SEPHORA_STORES = "sephora-stores"; + public static final String SEPHORA_SUGGEST = "sephora-suggest"; public static final String SHOP_APP_ANALYSIS = "shop-app-analysis"; public static final String SHOP_APP_CATEGORIES = "shop-app-categories"; public static final String SHOP_APP_COLLECTION_PRODUCTS = "shop-app-collection-products"; @@ -1039,6 +1069,8 @@ private OperationId() {} public static final String USER_ME_API_KEYS = "user-me-api-keys"; public static final String USER_ME_API_KEYS_REVEAL = "user-me-api-keys-reveal"; public static final String USER_ME_API_KEYS_ROTATE = "user-me-api-keys-rotate"; + public static final String USPTO_PATENT_PUBLIC_SEARCH_USPTOPPUBS_DETAIL = "usptoppubs-detail"; + public static final String USPTO_PATENT_PUBLIC_SEARCH_USPTOPPUBS_SEARCH = "usptoppubs-search"; public static final String VINTED_BRAND = "vinted-brand"; public static final String VINTED_BRANDS = "vinted-brands"; public static final String VINTED_CATALOG = "vinted-catalog"; diff --git a/src/main/java/net/crawlora/Operations.java b/src/main/java/net/crawlora/Operations.java index 186daea..96ac6b3 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 = 1190; + public static final int OPERATION_COUNT = 1222; /** Immutable map of operation id to its runtime metadata. */ public static final Map OPERATIONS = buildOperations(); @@ -45,6 +45,7 @@ private static Map buildOperations() { putOperations17(m); putOperations18(m); putOperations19(m); + putOperations20(m); return Map.copyOf(m); } @@ -1044,12 +1045,62 @@ private static void putOperations1(Map m) { List.of("ApiKeyAuth"), false, List.of())); + m.put("bestbuy-brands", new Operation( + "bestbuy-brands", + "GET", + "/bestbuy/brands", + List.of(), + List.of(), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("bestbuy-categories", new Operation( + "bestbuy-categories", + "GET", + "/bestbuy/categories", + List.of(), + List.of(), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("bestbuy-categories-trending", new Operation( + "bestbuy-categories-trending", + "GET", + "/bestbuy/categories/trending", + List.of(), + List.of(), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("bestbuy-category", new Operation( "bestbuy-category", "GET", "/bestbuy/category", List.of(), List.of( + new QueryParam("category_id", true, "string", List.of()), + new QueryParam("page", false, "integer", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + true, + List.of())); + m.put("bestbuy-category-subcategories", new Operation( + "bestbuy-category-subcategories", + "GET", + "/bestbuy/category/subcategories", + List.of(), + List.of( new QueryParam("category_id", true, "string", List.of())), List.of(), null, @@ -1070,6 +1121,32 @@ private static void putOperations1(Map m) { List.of("ApiKeyAuth"), false, List.of())); + m.put("bestbuy-product-questions", new Operation( + "bestbuy-product-questions", + "GET", + "/bestbuy/product/questions", + List.of(), + List.of( + new QueryParam("sku", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("bestbuy-product-related", new Operation( + "bestbuy-product-related", + "GET", + "/bestbuy/product/related", + List.of(), + List.of( + new QueryParam("sku", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("bestbuy-product-reviews", new Operation( "bestbuy-product-reviews", "GET", @@ -1083,6 +1160,34 @@ private static void putOperations1(Map m) { List.of("ApiKeyAuth"), false, List.of())); + m.put("bestbuy-search", new Operation( + "bestbuy-search", + "GET", + "/bestbuy/search", + List.of(), + List.of( + new QueryParam("q", true, "string", List.of()), + new QueryParam("page", false, "integer", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + true, + List.of())); + m.put("bestbuy-stores", new Operation( + "bestbuy-stores", + "GET", + "/bestbuy/stores", + List.of(), + List.of( + new QueryParam("state", true, "string", List.of()), + new QueryParam("city", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("billing-me", new Operation( "billing-me", "GET", @@ -1729,6 +1834,9 @@ private static void putOperations1(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations2(Map m) { m.put("boxofficemojo-showdowns", new Operation( "boxofficemojo-showdowns", "GET", @@ -1841,9 +1949,6 @@ private static void putOperations1(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations2(Map m) { m.put("brave-images", new Operation( "brave-images", "GET", @@ -2632,6 +2737,9 @@ private static void putOperations2(Map m) { List.of("ApiKeyAuth"), true, List.of())); + } + + private static void putOperations3(Map m) { m.put("contact", new Operation( "contact", "POST", @@ -2735,9 +2843,6 @@ private static void putOperations2(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations3(Map m) { m.put("datasets-airbnb-markets-facets", new Operation( "datasets-airbnb-markets-facets", "GET", @@ -3856,6 +3961,9 @@ private static void putOperations3(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations4(Map m) { m.put("datasets-numbeo-cities-search", new Operation( "datasets-numbeo-cities-search", "GET", @@ -4009,9 +4117,6 @@ private static void putOperations3(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations4(Map m) { m.put("datasets-pitchbook-companies-search", new Operation( "datasets-pitchbook-companies-search", "GET", @@ -5014,6 +5119,18 @@ private static void putOperations4(Map m) { List.of("ApiKeyAuth"), true, List.of())); + m.put("depop-brands", new Operation( + "depop-brands", + "GET", + "/depop/brands", + List.of(), + List.of(), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("depop-categories", new Operation( "depop-categories", "GET", @@ -5052,6 +5169,9 @@ private static void putOperations4(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations5(Map m) { m.put("depop-search", new Operation( "depop-search", "GET", @@ -5070,6 +5190,7 @@ private static void putOperations4(Map m) { new QueryParam("gender", false, "string", List.of()), new QueryParam("is_kids", false, "boolean", List.of()), new QueryParam("brand_ids", false, "string", List.of()), + new QueryParam("sizes", false, "string", List.of()), new QueryParam("after", false, "string", List.of())), List.of(), null, @@ -5077,6 +5198,32 @@ private static void putOperations4(Map m) { List.of("ApiKeyAuth"), false, List.of())); + m.put("depop-search-sellers", new Operation( + "depop-search-sellers", + "GET", + "/depop/search-sellers", + List.of(), + List.of( + new QueryParam("query", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("depop-search-facets", new Operation( + "depop-search-facets", + "GET", + "/depop/search/facets", + List.of(), + List.of( + new QueryParam("query", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("depop-shop", new Operation( "depop-shop", "GET", @@ -5091,7 +5238,33 @@ private static void putOperations4(Map m) { new QueryParam("sort", false, "string", List.of()), new QueryParam("category", false, "string", List.of()), new QueryParam("subcategory", false, "string", List.of()), - new QueryParam("gender", false, "string", List.of())), + new QueryParam("gender", false, "string", List.of()), + new QueryParam("sizes", false, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("depop-sizes", new Operation( + "depop-sizes", + "GET", + "/depop/sizes", + List.of(), + List.of(), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("depop-suggest", new Operation( + "depop-suggest", + "GET", + "/depop/suggest", + List.of(), + List.of( + new QueryParam("query", true, "string", List.of())), List.of(), null, false, @@ -5186,9 +5359,6 @@ private static void putOperations4(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations5(Map m) { m.put("discogs-search", new Operation( "discogs-search", "GET", @@ -5386,7 +5556,20 @@ private static void putOperations5(Map m) { m.put("draftkings-event", new Operation( "draftkings-event", "GET", - "/draftkings/event", + "/draftkings/sportsbook/event", + List.of(), + List.of( + new QueryParam("event_id", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("draftkings-event-context", new Operation( + "draftkings-event-context", + "GET", + "/draftkings/sportsbook/event-context", List.of(), List.of( new QueryParam("event_id", true, "string", List.of())), @@ -5399,7 +5582,7 @@ private static void putOperations5(Map m) { m.put("draftkings-event-markets", new Operation( "draftkings-event-markets", "GET", - "/draftkings/event-markets", + "/draftkings/sportsbook/event-markets", List.of(), List.of( new QueryParam("event_id", true, "string", List.of()), @@ -5410,10 +5593,22 @@ private static void putOperations5(Map m) { List.of("ApiKeyAuth"), false, List.of())); + m.put("draftkings-featured-leagues", new Operation( + "draftkings-featured-leagues", + "GET", + "/draftkings/sportsbook/featured-leagues", + List.of(), + List.of(), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("draftkings-futures", new Operation( "draftkings-futures", "GET", - "/draftkings/futures", + "/draftkings/sportsbook/futures", List.of(), List.of( new QueryParam("league_id", true, "string", List.of()), @@ -5424,10 +5619,47 @@ private static void putOperations5(Map m) { List.of("ApiKeyAuth"), false, List.of())); + m.put("draftkings-league-events", new Operation( + "draftkings-league-events", + "GET", + "/draftkings/sportsbook/league-events", + List.of(), + List.of( + new QueryParam("league_id", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("draftkings-leagues", new Operation( + "draftkings-leagues", + "GET", + "/draftkings/sportsbook/leagues", + List.of(), + List.of(), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("draftkings-live", new Operation( + "draftkings-live", + "GET", + "/draftkings/sportsbook/live", + List.of(), + List.of(), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("draftkings-odds", new Operation( "draftkings-odds", "GET", - "/draftkings/odds", + "/draftkings/sportsbook/odds", List.of(), List.of( new QueryParam("league_id", true, "string", List.of())), @@ -5437,6 +5669,46 @@ private static void putOperations5(Map m) { List.of("ApiKeyAuth"), false, List.of())); + m.put("draftkings-quick-links", new Operation( + "draftkings-quick-links", + "GET", + "/draftkings/sportsbook/quick-links", + List.of(), + List.of(), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("draftkings-team", new Operation( + "draftkings-team", + "GET", + "/draftkings/sportsbook/team", + List.of(), + List.of( + new QueryParam("team_id", true, "string", List.of()), + new QueryParam("sport", true, "string", List.of("football", "hockey", "basketball", "baseball")), + new QueryParam("slug", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("draftkings-teams", new Operation( + "draftkings-teams", + "GET", + "/draftkings/sportsbook/teams", + List.of(), + List.of( + new QueryParam("league", true, "string", List.of("nfl", "nhl", "nba", "cbb", "mlb", "cfb"))), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("duckduckgo-image", new Operation( "duckduckgo-image", "GET", @@ -5746,6 +6018,9 @@ private static void putOperations5(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations6(Map m) { m.put("espn-team-roster", new Operation( "espn-team-roster", "GET", @@ -6025,9 +6300,6 @@ private static void putOperations5(Map m) { List.of("ApiKeyAuth"), true, List.of())); - } - - private static void putOperations6(Map m) { m.put("fiverr-seller", new Operation( "fiverr-seller", "GET", @@ -6571,6 +6843,9 @@ private static void putOperations6(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations7(Map m) { m.put("google-finance-markets-category-news", new Operation( "google-finance-markets-category-news", "GET", @@ -6841,9 +7116,6 @@ private static void putOperations6(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations7(Map m) { m.put("google-suggest", new Operation( "google-suggest", "GET", @@ -7018,6 +7290,19 @@ private static void putOperations7(Map m) { List.of("ApiKeyAuth"), true, List.of())); + m.put("googlepatents-classification", new Operation( + "googlepatents-classification", + "GET", + "/googlepatents/classification", + List.of(), + List.of( + new QueryParam("code", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("googlepatents-coverage", new Operation( "googlepatents-coverage", "GET", @@ -7044,6 +7329,19 @@ private static void putOperations7(Map m) { List.of("ApiKeyAuth"), false, List.of())); + m.put("googlepatents-recent", new Operation( + "googlepatents-recent", + "GET", + "/googlepatents/recent", + List.of(), + List.of( + new QueryParam("week", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("googlepatents-search", new Operation( "googlepatents-search", "GET", @@ -7387,6 +7685,9 @@ private static void putOperations7(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations8(Map m) { m.put("imdb-name-credits", new Operation( "imdb-name-credits", "GET", @@ -7740,9 +8041,6 @@ private static void putOperations7(Map m) { List.of("ApiKeyAuth"), true, List.of())); - } - - private static void putOperations8(Map m) { m.put("instacart-departments", new Operation( "instacart-departments", "GET", @@ -8300,6 +8598,9 @@ private static void putOperations8(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations9(Map m) { m.put("justwatch-age-certifications", new Operation( "justwatch-age-certifications", "GET", @@ -8653,9 +8954,6 @@ private static void putOperations8(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations9(Map m) { m.put("kalshi-event-metadata", new Operation( "kalshi-event-metadata", "GET", @@ -9172,6 +9470,9 @@ private static void putOperations9(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations10(Map m) { m.put("lululemon-product", new Operation( "lululemon-product", "GET", @@ -9496,9 +9797,6 @@ private static void putOperations9(Map m) { List.of("ApiKeyAuth"), true, List.of())); - } - - private static void putOperations10(Map m) { m.put("metacritic-tv", new Operation( "metacritic-tv", "GET", @@ -10005,6 +10303,9 @@ private static void putOperations10(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations11(Map m) { m.put("numbeo-indices-country", new Operation( "numbeo-indices-country", "GET", @@ -10324,9 +10625,6 @@ private static void putOperations10(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations11(Map m) { m.put("pitchbook-advisor", new Operation( "pitchbook-advisor", "GET", @@ -10872,6 +11170,9 @@ private static void putOperations11(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations12(Map m) { m.put("polymarket-market-liquidity", new Operation( "polymarket-market-liquidity", "GET", @@ -11192,9 +11493,6 @@ private static void putOperations11(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations12(Map m) { m.put("polymarket-related-tag-rows", new Operation( "polymarket-related-tag-rows", "GET", @@ -11703,6 +12001,9 @@ private static void putOperations12(Map m) { List.of("ApiKeyAuth"), true, List.of())); + } + + private static void putOperations13(Map m) { m.put("ready", new Operation( "ready", "GET", @@ -12039,9 +12340,6 @@ private static void putOperations12(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations13(Map m) { m.put("rottentomatoes-movie", new Operation( "rottentomatoes-movie", "GET", @@ -12355,6 +12653,119 @@ private static void putOperations13(Map m) { List.of("ApiKeyAuth"), false, List.of())); + m.put("sephora-category", new Operation( + "sephora-category", + "GET", + "/sephora/category", + List.of(), + List.of( + new QueryParam("slug", true, "string", List.of()), + new QueryParam("page", false, "integer", List.of()), + new QueryParam("sort_by", false, "string", List.of("featured", "top_rated", "new", "best_selling", "price_low_to_high", "price_high_to_low")), + new QueryParam("price_min", false, "integer", List.of()), + new QueryParam("price_max", false, "integer", List.of()), + new QueryParam("brand", false, "array", List.of()), + new QueryParam("rating_min", false, "integer", List.of()), + new QueryParam("is_new", false, "boolean", List.of()), + new QueryParam("filter", false, "array", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + true, + List.of())); + m.put("sephora-product", new Operation( + "sephora-product", + "GET", + "/sephora/product", + List.of(), + List.of( + new QueryParam("product_id", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("sephora-product-questions", new Operation( + "sephora-product-questions", + "GET", + "/sephora/product/questions", + List.of(), + List.of( + new QueryParam("product_id", true, "string", List.of()), + new QueryParam("page", false, "integer", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + true, + List.of())); + m.put("sephora-product-reviews", new Operation( + "sephora-product-reviews", + "GET", + "/sephora/product/reviews", + List.of(), + List.of( + new QueryParam("product_id", true, "string", List.of()), + new QueryParam("page", false, "integer", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + true, + List.of())); + m.put("sephora-search", new Operation( + "sephora-search", + "GET", + "/sephora/search", + List.of(), + List.of( + new QueryParam("query", true, "string", List.of()), + new QueryParam("page", false, "integer", List.of()), + new QueryParam("page_size", false, "integer", List.of()), + new QueryParam("sort_by", false, "string", List.of("featured", "top_rated", "new", "best_selling", "price_low_to_high", "price_high_to_low")), + new QueryParam("price_min", false, "integer", List.of()), + new QueryParam("price_max", false, "integer", List.of()), + new QueryParam("brand", false, "array", List.of()), + new QueryParam("rating_min", false, "integer", List.of()), + new QueryParam("is_new", false, "boolean", List.of()), + new QueryParam("filter", false, "array", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + true, + List.of())); + m.put("sephora-stores", new Operation( + "sephora-stores", + "GET", + "/sephora/stores", + List.of(), + List.of( + new QueryParam("latitude", true, "number", List.of()), + new QueryParam("longitude", true, "number", List.of()), + new QueryParam("radius", false, "integer", List.of()), + new QueryParam("limit", false, "integer", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("sephora-suggest", new Operation( + "sephora-suggest", + "GET", + "/sephora/suggest", + List.of(), + List.of( + new QueryParam("query", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); m.put("shop-app-analysis", new Operation( "shop-app-analysis", "GET", @@ -12479,6 +12890,9 @@ private static void putOperations13(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations14(Map m) { m.put("shop-app-shop", new Operation( "shop-app-shop", "GET", @@ -12890,9 +13304,6 @@ private static void putOperations13(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations14(Map m) { m.put("sofascore-standings", new Operation( "sofascore-standings", "GET", @@ -13352,6 +13763,9 @@ private static void putOperations14(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations15(Map m) { m.put("spotify-episodes-search", new Operation( "spotify-episodes-search", "GET", @@ -13842,9 +14256,6 @@ private static void putOperations14(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations15(Map m) { m.put("steam-players", new Operation( "steam-players", "GET", @@ -14296,6 +14707,9 @@ private static void putOperations15(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations16(Map m) { m.put("threads-profile-posts", new Operation( "threads-profile-posts", "GET", @@ -14708,9 +15122,6 @@ private static void putOperations15(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations16(Map m) { m.put("tiktok-top-ads-list", new Operation( "tiktok-top-ads-list", "GET", @@ -15186,6 +15597,9 @@ private static void putOperations16(Map m) { List.of("ApiKeyAuth"), true, List.of())); + } + + private static void putOperations17(Map m) { m.put("trustpilot-business-search", new Operation( "trustpilot-business-search", "GET", @@ -15604,9 +16018,6 @@ private static void putOperations16(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations17(Map m) { m.put("upwork-job", new Operation( "upwork-job", "GET", @@ -15781,6 +16192,36 @@ private static void putOperations17(Map m) { List.of("JWTAuth"), false, List.of())); + m.put("usptoppubs-detail", new Operation( + "usptoppubs-detail", + "GET", + "/usptoppubs/detail", + List.of(), + List.of( + new QueryParam("guid", true, "string", List.of()), + new QueryParam("source", true, "string", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + false, + List.of())); + m.put("usptoppubs-search", new Operation( + "usptoppubs-search", + "GET", + "/usptoppubs/search", + List.of(), + List.of( + new QueryParam("q", true, "string", List.of()), + new QueryParam("databases", false, "string", List.of()), + new QueryParam("num", false, "integer", List.of()), + new QueryParam("page", false, "integer", List.of())), + List.of(), + null, + false, + List.of("ApiKeyAuth"), + true, + List.of())); m.put("vinted-brand", new Operation( "vinted-brand", "GET", @@ -15986,6 +16427,9 @@ private static void putOperations17(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations18(Map m) { m.put("whatnot-browse", new Operation( "whatnot-browse", "GET", @@ -16405,9 +16849,6 @@ private static void putOperations17(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations18(Map m) { m.put("yahoo-finance-ticker-actions", new Operation( "yahoo-finance-ticker-actions", "GET", @@ -16766,6 +17207,9 @@ private static void putOperations18(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations19(Map m) { m.put("yahoo-life-article", new Operation( "yahoo-life-article", "GET", @@ -17193,9 +17637,6 @@ private static void putOperations18(Map m) { List.of("ApiKeyAuth"), false, List.of())); - } - - private static void putOperations19(Map m) { m.put("yahoo-sports-standings", new Operation( "yahoo-sports-standings", "GET", @@ -17571,6 +18012,9 @@ private static void putOperations19(Map m) { List.of("ApiKeyAuth"), false, List.of())); + } + + private static void putOperations20(Map m) { m.put("youtube-transcript", new Operation( "youtube-transcript", "GET", @@ -17991,9 +18435,17 @@ private static Map> buildGroups() { } { Map group = new LinkedHashMap<>(); + group.put("bestbuyBrands", "bestbuy-brands"); + group.put("bestbuyCategories", "bestbuy-categories"); + group.put("bestbuyCategoriesTrending", "bestbuy-categories-trending"); group.put("bestbuyCategory", "bestbuy-category"); + group.put("bestbuyCategorySubcategories", "bestbuy-category-subcategories"); group.put("bestbuyProduct", "bestbuy-product"); + group.put("bestbuyProductQuestions", "bestbuy-product-questions"); + group.put("bestbuyProductRelated", "bestbuy-product-related"); group.put("bestbuyProductReviews", "bestbuy-product-reviews"); + group.put("bestbuySearch", "bestbuy-search"); + group.put("bestbuyStores", "bestbuy-stores"); g.put("bestBuy", Map.copyOf(group)); } { @@ -18285,11 +18737,16 @@ private static Map> buildGroups() { } { Map group = new LinkedHashMap<>(); + group.put("brands", "depop-brands"); group.put("categories", "depop-categories"); group.put("item", "depop-item"); group.put("itemSimilar", "depop-item-similar"); group.put("search", "depop-search"); + group.put("searchSellers", "depop-search-sellers"); + group.put("searchFacets", "depop-search-facets"); group.put("shop", "depop-shop"); + group.put("sizes", "depop-sizes"); + group.put("suggest", "depop-suggest"); g.put("depop", Map.copyOf(group)); } { @@ -18322,10 +18779,18 @@ private static Map> buildGroups() { { Map group = new LinkedHashMap<>(); group.put("draftkingsEvent", "draftkings-event"); + group.put("draftkingsEventContext", "draftkings-event-context"); group.put("draftkingsEventMarkets", "draftkings-event-markets"); + group.put("draftkingsFeaturedLeagues", "draftkings-featured-leagues"); group.put("draftkingsFutures", "draftkings-futures"); + group.put("draftkingsLeagueEvents", "draftkings-league-events"); + group.put("draftkingsLeagues", "draftkings-leagues"); + group.put("draftkingsLive", "draftkings-live"); group.put("draftkingsOdds", "draftkings-odds"); - g.put("draftKings", Map.copyOf(group)); + group.put("draftkingsQuickLinks", "draftkings-quick-links"); + group.put("draftkingsTeam", "draftkings-team"); + group.put("draftkingsTeams", "draftkings-teams"); + g.put("draftKingsSportsbook", Map.copyOf(group)); } { Map group = new LinkedHashMap<>(); @@ -18492,8 +18957,10 @@ private static Map> buildGroups() { } { Map group = new LinkedHashMap<>(); + group.put("googlepatentsClassification", "googlepatents-classification"); group.put("googlepatentsCoverage", "googlepatents-coverage"); group.put("googlepatentsDetail", "googlepatents-detail"); + group.put("googlepatentsRecent", "googlepatents-recent"); group.put("googlepatentsSearch", "googlepatents-search"); group.put("googlepatentsSuggest", "googlepatents-suggest"); g.put("googlePatents", Map.copyOf(group)); @@ -19014,6 +19481,17 @@ private static Map> buildGroups() { group.put("secInstitutionalHoldings", "sec-institutional-holdings"); g.put("secEdgar", Map.copyOf(group)); } + { + Map group = new LinkedHashMap<>(); + group.put("category", "sephora-category"); + group.put("product", "sephora-product"); + group.put("productQuestions", "sephora-product-questions"); + group.put("productReviews", "sephora-product-reviews"); + group.put("search", "sephora-search"); + group.put("stores", "sephora-stores"); + group.put("suggest", "sephora-suggest"); + g.put("sephora", Map.copyOf(group)); + } { Map group = new LinkedHashMap<>(); group.put("analysis", "shop-app-analysis"); @@ -19354,6 +19832,12 @@ private static Map> buildGroups() { group.put("request", "account-deletion-request"); g.put("accountDeletion", Map.copyOf(group)); } + { + Map group = new LinkedHashMap<>(); + group.put("usptoppubsDetail", "usptoppubs-detail"); + group.put("usptoppubsSearch", "usptoppubs-search"); + g.put("usptoPatentPublicSearch", Map.copyOf(group)); + } { Map group = new LinkedHashMap<>(); group.put("brand", "vinted-brand"); diff --git a/src/main/java/net/crawlora/groups/BestBuyGroup.java b/src/main/java/net/crawlora/groups/BestBuyGroup.java index 4fb1a93..3627e4c 100644 --- a/src/main/java/net/crawlora/groups/BestBuyGroup.java +++ b/src/main/java/net/crawlora/groups/BestBuyGroup.java @@ -18,6 +18,99 @@ public BestBuyGroup(CrawloraClient client) { this.client = client; } + /** + * bestbuy-brands (GET /bestbuy/brands). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object bestbuyBrands(Map params) { + return bestbuyBrands(params, null); + } + + /** + * bestbuy-brands (GET /bestbuy/brands). 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 bestbuyBrands(Map params, RequestOptions options) { + OperationGroup.checkParams("bestbuy-brands", params); + return client.request("bestbuy-brands", params, options); + } + + /** + * bestbuy-brands (GET /bestbuy/brands). with no parameters. + * + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object bestbuyBrands() { + return bestbuyBrands(Map.of(), null); + } + + /** + * bestbuy-categories (GET /bestbuy/categories). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object bestbuyCategories(Map params) { + return bestbuyCategories(params, null); + } + + /** + * bestbuy-categories (GET /bestbuy/categories). 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 bestbuyCategories(Map params, RequestOptions options) { + OperationGroup.checkParams("bestbuy-categories", params); + return client.request("bestbuy-categories", params, options); + } + + /** + * bestbuy-categories (GET /bestbuy/categories). with no parameters. + * + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object bestbuyCategories() { + return bestbuyCategories(Map.of(), null); + } + + /** + * bestbuy-categories-trending (GET /bestbuy/categories/trending). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object bestbuyCategoriesTrending(Map params) { + return bestbuyCategoriesTrending(params, null); + } + + /** + * bestbuy-categories-trending (GET /bestbuy/categories/trending). 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 bestbuyCategoriesTrending(Map params, RequestOptions options) { + OperationGroup.checkParams("bestbuy-categories-trending", params); + return client.request("bestbuy-categories-trending", params, options); + } + + /** + * bestbuy-categories-trending (GET /bestbuy/categories/trending). with no parameters. + * + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object bestbuyCategoriesTrending() { + return bestbuyCategoriesTrending(Map.of(), null); + } + /** * bestbuy-category (GET /bestbuy/category). * @@ -40,6 +133,28 @@ public Object bestbuyCategory(Map params, RequestOptions options return client.request("bestbuy-category", params, options); } + /** + * bestbuy-category-subcategories (GET /bestbuy/category/subcategories). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object bestbuyCategorySubcategories(Map params) { + return bestbuyCategorySubcategories(params, null); + } + + /** + * bestbuy-category-subcategories (GET /bestbuy/category/subcategories). 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 bestbuyCategorySubcategories(Map params, RequestOptions options) { + OperationGroup.checkParams("bestbuy-category-subcategories", params); + return client.request("bestbuy-category-subcategories", params, options); + } + /** * bestbuy-product (GET /bestbuy/product). * @@ -62,6 +177,50 @@ public Object bestbuyProduct(Map params, RequestOptions options) return client.request("bestbuy-product", params, options); } + /** + * bestbuy-product-questions (GET /bestbuy/product/questions). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object bestbuyProductQuestions(Map params) { + return bestbuyProductQuestions(params, null); + } + + /** + * bestbuy-product-questions (GET /bestbuy/product/questions). 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 bestbuyProductQuestions(Map params, RequestOptions options) { + OperationGroup.checkParams("bestbuy-product-questions", params); + return client.request("bestbuy-product-questions", params, options); + } + + /** + * bestbuy-product-related (GET /bestbuy/product/related). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object bestbuyProductRelated(Map params) { + return bestbuyProductRelated(params, null); + } + + /** + * bestbuy-product-related (GET /bestbuy/product/related). 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 bestbuyProductRelated(Map params, RequestOptions options) { + OperationGroup.checkParams("bestbuy-product-related", params); + return client.request("bestbuy-product-related", params, options); + } + /** * bestbuy-product-reviews (GET /bestbuy/product/reviews). * @@ -84,4 +243,48 @@ public Object bestbuyProductReviews(Map params, RequestOptions o return client.request("bestbuy-product-reviews", params, options); } + /** + * bestbuy-search (GET /bestbuy/search). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object bestbuySearch(Map params) { + return bestbuySearch(params, null); + } + + /** + * bestbuy-search (GET /bestbuy/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 bestbuySearch(Map params, RequestOptions options) { + OperationGroup.checkParams("bestbuy-search", params); + return client.request("bestbuy-search", params, options); + } + + /** + * bestbuy-stores (GET /bestbuy/stores). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object bestbuyStores(Map params) { + return bestbuyStores(params, null); + } + + /** + * bestbuy-stores (GET /bestbuy/stores). 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 bestbuyStores(Map params, RequestOptions options) { + OperationGroup.checkParams("bestbuy-stores", params); + return client.request("bestbuy-stores", params, options); + } + } diff --git a/src/main/java/net/crawlora/groups/DepopGroup.java b/src/main/java/net/crawlora/groups/DepopGroup.java index b2249a4..076a6c3 100644 --- a/src/main/java/net/crawlora/groups/DepopGroup.java +++ b/src/main/java/net/crawlora/groups/DepopGroup.java @@ -18,6 +18,37 @@ public DepopGroup(CrawloraClient client) { this.client = client; } + /** + * depop-brands (GET /depop/brands). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object brands(Map params) { + return brands(params, null); + } + + /** + * depop-brands (GET /depop/brands). 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 brands(Map params, RequestOptions options) { + OperationGroup.checkParams("depop-brands", params); + return client.request("depop-brands", params, options); + } + + /** + * depop-brands (GET /depop/brands). with no parameters. + * + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object brands() { + return brands(Map.of(), null); + } + /** * depop-categories (GET /depop/categories). * @@ -115,6 +146,50 @@ public Object search(Map params, RequestOptions options) { return client.request("depop-search", params, options); } + /** + * depop-search-sellers (GET /depop/search-sellers). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object searchSellers(Map params) { + return searchSellers(params, null); + } + + /** + * depop-search-sellers (GET /depop/search-sellers). 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 searchSellers(Map params, RequestOptions options) { + OperationGroup.checkParams("depop-search-sellers", params); + return client.request("depop-search-sellers", params, options); + } + + /** + * depop-search-facets (GET /depop/search/facets). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object searchFacets(Map params) { + return searchFacets(params, null); + } + + /** + * depop-search-facets (GET /depop/search/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 searchFacets(Map params, RequestOptions options) { + OperationGroup.checkParams("depop-search-facets", params); + return client.request("depop-search-facets", params, options); + } + /** * depop-shop (GET /depop/shop/{username}). * @@ -137,4 +212,57 @@ public Object shop(Map params, RequestOptions options) { return client.request("depop-shop", params, options); } + /** + * depop-sizes (GET /depop/sizes). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object sizes(Map params) { + return sizes(params, null); + } + + /** + * depop-sizes (GET /depop/sizes). 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 sizes(Map params, RequestOptions options) { + OperationGroup.checkParams("depop-sizes", params); + return client.request("depop-sizes", params, options); + } + + /** + * depop-sizes (GET /depop/sizes). with no parameters. + * + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object sizes() { + return sizes(Map.of(), null); + } + + /** + * depop-suggest (GET /depop/suggest). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object suggest(Map params) { + return suggest(params, null); + } + + /** + * depop-suggest (GET /depop/suggest). 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 suggest(Map params, RequestOptions options) { + OperationGroup.checkParams("depop-suggest", params); + return client.request("depop-suggest", params, options); + } + } diff --git a/src/main/java/net/crawlora/groups/DraftKingsGroup.java b/src/main/java/net/crawlora/groups/DraftKingsGroup.java deleted file mode 100644 index 7243320..0000000 --- a/src/main/java/net/crawlora/groups/DraftKingsGroup.java +++ /dev/null @@ -1,109 +0,0 @@ -package net.crawlora.groups; - -// Generated by scripts/generate.py. Do not edit manually. - -import java.util.Map; -import net.crawlora.CrawloraClient; -import net.crawlora.OperationGroup; -import net.crawlora.RequestOptions; - -/** - * Generated typed accessor for the "draftKings" operation group. - * Reach it via {@code client.draftKings()}. - */ -public final class DraftKingsGroup { - private final CrawloraClient client; - - public DraftKingsGroup(CrawloraClient client) { - this.client = client; - } - - /** - * draftkings-event (GET /draftkings/event). - * - * @param params operation parameters - * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode - */ - public Object draftkingsEvent(Map params) { - return draftkingsEvent(params, null); - } - - /** - * draftkings-event (GET /draftkings/event). 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 draftkingsEvent(Map params, RequestOptions options) { - OperationGroup.checkParams("draftkings-event", params); - return client.request("draftkings-event", params, options); - } - - /** - * draftkings-event-markets (GET /draftkings/event-markets). - * - * @param params operation parameters - * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode - */ - public Object draftkingsEventMarkets(Map params) { - return draftkingsEventMarkets(params, null); - } - - /** - * draftkings-event-markets (GET /draftkings/event-markets). 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 draftkingsEventMarkets(Map params, RequestOptions options) { - OperationGroup.checkParams("draftkings-event-markets", params); - return client.request("draftkings-event-markets", params, options); - } - - /** - * draftkings-futures (GET /draftkings/futures). - * - * @param params operation parameters - * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode - */ - public Object draftkingsFutures(Map params) { - return draftkingsFutures(params, null); - } - - /** - * draftkings-futures (GET /draftkings/futures). 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 draftkingsFutures(Map params, RequestOptions options) { - OperationGroup.checkParams("draftkings-futures", params); - return client.request("draftkings-futures", params, options); - } - - /** - * draftkings-odds (GET /draftkings/odds). - * - * @param params operation parameters - * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode - */ - public Object draftkingsOdds(Map params) { - return draftkingsOdds(params, null); - } - - /** - * draftkings-odds (GET /draftkings/odds). 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 draftkingsOdds(Map params, RequestOptions options) { - OperationGroup.checkParams("draftkings-odds", params); - return client.request("draftkings-odds", params, options); - } - -} diff --git a/src/main/java/net/crawlora/groups/DraftKingsSportsbookGroup.java b/src/main/java/net/crawlora/groups/DraftKingsSportsbookGroup.java new file mode 100644 index 0000000..476d5ba --- /dev/null +++ b/src/main/java/net/crawlora/groups/DraftKingsSportsbookGroup.java @@ -0,0 +1,321 @@ +package net.crawlora.groups; + +// Generated by scripts/generate.py. Do not edit manually. + +import java.util.Map; +import net.crawlora.CrawloraClient; +import net.crawlora.OperationGroup; +import net.crawlora.RequestOptions; + +/** + * Generated typed accessor for the "draftKingsSportsbook" operation group. + * Reach it via {@code client.draftKingsSportsbook()}. + */ +public final class DraftKingsSportsbookGroup { + private final CrawloraClient client; + + public DraftKingsSportsbookGroup(CrawloraClient client) { + this.client = client; + } + + /** + * draftkings-event (GET /draftkings/sportsbook/event). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsEvent(Map params) { + return draftkingsEvent(params, null); + } + + /** + * draftkings-event (GET /draftkings/sportsbook/event). 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 draftkingsEvent(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-event", params); + return client.request("draftkings-event", params, options); + } + + /** + * draftkings-event-context (GET /draftkings/sportsbook/event-context). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsEventContext(Map params) { + return draftkingsEventContext(params, null); + } + + /** + * draftkings-event-context (GET /draftkings/sportsbook/event-context). 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 draftkingsEventContext(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-event-context", params); + return client.request("draftkings-event-context", params, options); + } + + /** + * draftkings-event-markets (GET /draftkings/sportsbook/event-markets). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsEventMarkets(Map params) { + return draftkingsEventMarkets(params, null); + } + + /** + * draftkings-event-markets (GET /draftkings/sportsbook/event-markets). 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 draftkingsEventMarkets(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-event-markets", params); + return client.request("draftkings-event-markets", params, options); + } + + /** + * draftkings-featured-leagues (GET /draftkings/sportsbook/featured-leagues). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsFeaturedLeagues(Map params) { + return draftkingsFeaturedLeagues(params, null); + } + + /** + * draftkings-featured-leagues (GET /draftkings/sportsbook/featured-leagues). 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 draftkingsFeaturedLeagues(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-featured-leagues", params); + return client.request("draftkings-featured-leagues", params, options); + } + + /** + * draftkings-featured-leagues (GET /draftkings/sportsbook/featured-leagues). with no parameters. + * + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsFeaturedLeagues() { + return draftkingsFeaturedLeagues(Map.of(), null); + } + + /** + * draftkings-futures (GET /draftkings/sportsbook/futures). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsFutures(Map params) { + return draftkingsFutures(params, null); + } + + /** + * draftkings-futures (GET /draftkings/sportsbook/futures). 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 draftkingsFutures(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-futures", params); + return client.request("draftkings-futures", params, options); + } + + /** + * draftkings-league-events (GET /draftkings/sportsbook/league-events). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsLeagueEvents(Map params) { + return draftkingsLeagueEvents(params, null); + } + + /** + * draftkings-league-events (GET /draftkings/sportsbook/league-events). 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 draftkingsLeagueEvents(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-league-events", params); + return client.request("draftkings-league-events", params, options); + } + + /** + * draftkings-leagues (GET /draftkings/sportsbook/leagues). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsLeagues(Map params) { + return draftkingsLeagues(params, null); + } + + /** + * draftkings-leagues (GET /draftkings/sportsbook/leagues). 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 draftkingsLeagues(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-leagues", params); + return client.request("draftkings-leagues", params, options); + } + + /** + * draftkings-leagues (GET /draftkings/sportsbook/leagues). with no parameters. + * + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsLeagues() { + return draftkingsLeagues(Map.of(), null); + } + + /** + * draftkings-live (GET /draftkings/sportsbook/live). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsLive(Map params) { + return draftkingsLive(params, null); + } + + /** + * draftkings-live (GET /draftkings/sportsbook/live). 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 draftkingsLive(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-live", params); + return client.request("draftkings-live", params, options); + } + + /** + * draftkings-live (GET /draftkings/sportsbook/live). with no parameters. + * + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsLive() { + return draftkingsLive(Map.of(), null); + } + + /** + * draftkings-odds (GET /draftkings/sportsbook/odds). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsOdds(Map params) { + return draftkingsOdds(params, null); + } + + /** + * draftkings-odds (GET /draftkings/sportsbook/odds). 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 draftkingsOdds(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-odds", params); + return client.request("draftkings-odds", params, options); + } + + /** + * draftkings-quick-links (GET /draftkings/sportsbook/quick-links). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsQuickLinks(Map params) { + return draftkingsQuickLinks(params, null); + } + + /** + * draftkings-quick-links (GET /draftkings/sportsbook/quick-links). 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 draftkingsQuickLinks(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-quick-links", params); + return client.request("draftkings-quick-links", params, options); + } + + /** + * draftkings-quick-links (GET /draftkings/sportsbook/quick-links). with no parameters. + * + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsQuickLinks() { + return draftkingsQuickLinks(Map.of(), null); + } + + /** + * draftkings-team (GET /draftkings/sportsbook/team). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsTeam(Map params) { + return draftkingsTeam(params, null); + } + + /** + * draftkings-team (GET /draftkings/sportsbook/team). 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 draftkingsTeam(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-team", params); + return client.request("draftkings-team", params, options); + } + + /** + * draftkings-teams (GET /draftkings/sportsbook/teams). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object draftkingsTeams(Map params) { + return draftkingsTeams(params, null); + } + + /** + * draftkings-teams (GET /draftkings/sportsbook/teams). 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 draftkingsTeams(Map params, RequestOptions options) { + OperationGroup.checkParams("draftkings-teams", params); + return client.request("draftkings-teams", params, options); + } + +} diff --git a/src/main/java/net/crawlora/groups/GooglePatentsGroup.java b/src/main/java/net/crawlora/groups/GooglePatentsGroup.java index 728f08f..7bf3cf4 100644 --- a/src/main/java/net/crawlora/groups/GooglePatentsGroup.java +++ b/src/main/java/net/crawlora/groups/GooglePatentsGroup.java @@ -18,6 +18,28 @@ public GooglePatentsGroup(CrawloraClient client) { this.client = client; } + /** + * googlepatents-classification (GET /googlepatents/classification). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object googlepatentsClassification(Map params) { + return googlepatentsClassification(params, null); + } + + /** + * googlepatents-classification (GET /googlepatents/classification). 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 googlepatentsClassification(Map params, RequestOptions options) { + OperationGroup.checkParams("googlepatents-classification", params); + return client.request("googlepatents-classification", params, options); + } + /** * googlepatents-coverage (GET /googlepatents/coverage). * @@ -71,6 +93,28 @@ public Object googlepatentsDetail(Map params, RequestOptions opt return client.request("googlepatents-detail", params, options); } + /** + * googlepatents-recent (GET /googlepatents/recent). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object googlepatentsRecent(Map params) { + return googlepatentsRecent(params, null); + } + + /** + * googlepatents-recent (GET /googlepatents/recent). 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 googlepatentsRecent(Map params, RequestOptions options) { + OperationGroup.checkParams("googlepatents-recent", params); + return client.request("googlepatents-recent", params, options); + } + /** * googlepatents-search (GET /googlepatents/search). * diff --git a/src/main/java/net/crawlora/groups/SephoraGroup.java b/src/main/java/net/crawlora/groups/SephoraGroup.java new file mode 100644 index 0000000..0bd106c --- /dev/null +++ b/src/main/java/net/crawlora/groups/SephoraGroup.java @@ -0,0 +1,175 @@ +package net.crawlora.groups; + +// Generated by scripts/generate.py. Do not edit manually. + +import java.util.Map; +import net.crawlora.CrawloraClient; +import net.crawlora.OperationGroup; +import net.crawlora.RequestOptions; + +/** + * Generated typed accessor for the "sephora" operation group. + * Reach it via {@code client.sephora()}. + */ +public final class SephoraGroup { + private final CrawloraClient client; + + public SephoraGroup(CrawloraClient client) { + this.client = client; + } + + /** + * sephora-category (GET /sephora/category). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object category(Map params) { + return category(params, null); + } + + /** + * sephora-category (GET /sephora/category). 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 category(Map params, RequestOptions options) { + OperationGroup.checkParams("sephora-category", params); + return client.request("sephora-category", params, options); + } + + /** + * sephora-product (GET /sephora/product). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object product(Map params) { + return product(params, null); + } + + /** + * sephora-product (GET /sephora/product). 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 product(Map params, RequestOptions options) { + OperationGroup.checkParams("sephora-product", params); + return client.request("sephora-product", params, options); + } + + /** + * sephora-product-questions (GET /sephora/product/questions). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object productQuestions(Map params) { + return productQuestions(params, null); + } + + /** + * sephora-product-questions (GET /sephora/product/questions). 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 productQuestions(Map params, RequestOptions options) { + OperationGroup.checkParams("sephora-product-questions", params); + return client.request("sephora-product-questions", params, options); + } + + /** + * sephora-product-reviews (GET /sephora/product/reviews). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object productReviews(Map params) { + return productReviews(params, null); + } + + /** + * sephora-product-reviews (GET /sephora/product/reviews). 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 productReviews(Map params, RequestOptions options) { + OperationGroup.checkParams("sephora-product-reviews", params); + return client.request("sephora-product-reviews", params, options); + } + + /** + * sephora-search (GET /sephora/search). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object search(Map params) { + return search(params, null); + } + + /** + * sephora-search (GET /sephora/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 search(Map params, RequestOptions options) { + OperationGroup.checkParams("sephora-search", params); + return client.request("sephora-search", params, options); + } + + /** + * sephora-stores (GET /sephora/stores). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object stores(Map params) { + return stores(params, null); + } + + /** + * sephora-stores (GET /sephora/stores). 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 stores(Map params, RequestOptions options) { + OperationGroup.checkParams("sephora-stores", params); + return client.request("sephora-stores", params, options); + } + + /** + * sephora-suggest (GET /sephora/suggest). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object suggest(Map params) { + return suggest(params, null); + } + + /** + * sephora-suggest (GET /sephora/suggest). 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 suggest(Map params, RequestOptions options) { + OperationGroup.checkParams("sephora-suggest", params); + return client.request("sephora-suggest", params, options); + } + +} diff --git a/src/main/java/net/crawlora/groups/UsptoPatentPublicSearchGroup.java b/src/main/java/net/crawlora/groups/UsptoPatentPublicSearchGroup.java new file mode 100644 index 0000000..c470406 --- /dev/null +++ b/src/main/java/net/crawlora/groups/UsptoPatentPublicSearchGroup.java @@ -0,0 +1,65 @@ +package net.crawlora.groups; + +// Generated by scripts/generate.py. Do not edit manually. + +import java.util.Map; +import net.crawlora.CrawloraClient; +import net.crawlora.OperationGroup; +import net.crawlora.RequestOptions; + +/** + * Generated typed accessor for the "usptoPatentPublicSearch" operation group. + * Reach it via {@code client.usptoPatentPublicSearch()}. + */ +public final class UsptoPatentPublicSearchGroup { + private final CrawloraClient client; + + public UsptoPatentPublicSearchGroup(CrawloraClient client) { + this.client = client; + } + + /** + * usptoppubs-detail (GET /usptoppubs/detail). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object usptoppubsDetail(Map params) { + return usptoppubsDetail(params, null); + } + + /** + * usptoppubs-detail (GET /usptoppubs/detail). 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 usptoppubsDetail(Map params, RequestOptions options) { + OperationGroup.checkParams("usptoppubs-detail", params); + return client.request("usptoppubs-detail", params, options); + } + + /** + * usptoppubs-search (GET /usptoppubs/search). + * + * @param params operation parameters + * @return the parsed JSON response (Map/List/String/Number/Boolean), or an InputStream in stream mode + */ + public Object usptoppubsSearch(Map params) { + return usptoppubsSearch(params, null); + } + + /** + * usptoppubs-search (GET /usptoppubs/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 usptoppubsSearch(Map params, RequestOptions options) { + OperationGroup.checkParams("usptoppubs-search", params); + return client.request("usptoppubs-search", params, options); + } + +}