From 14c3fe9d34c724ad5f78d077e646c77b5c4e9068 Mon Sep 17 00:00:00 2001 From: rmilyushkevich <24544571+rmilyushkevich@users.noreply.github.com> Date: Wed, 12 Aug 2026 07:31:38 +0000 Subject: [PATCH] chore(gen): refresh HasData API schema --- pr-body.md | 13 +- src/endpoints.generated.ts | 495 +++++++++++++++++++++++++++++++++++-- 2 files changed, 489 insertions(+), 19 deletions(-) diff --git a/pr-body.md b/pr-body.md index 4cb69b4..66b2bf6 100644 --- a/pr-body.md +++ b/pr-body.md @@ -1,11 +1,16 @@ ## Changes - src/endpoints.generated.ts | 1022 +++++++++++++++++++++++++++++++++++++++++--- - 1 file changed, 959 insertions(+), 63 deletions(-) + src/endpoints.generated.ts | 495 +++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 480 insertions(+), 15 deletions(-) ## Endpoint delta ### Added -- google-hotels -- google-maps-posts +- duckduckgo +- instagram-posts +- tiktok-comments +- tiktok-posts +- tiktok-profile +- tiktok-search +- yelp-reviews diff --git a/src/endpoints.generated.ts b/src/endpoints.generated.ts index 7ebdd26..1d01888 100644 --- a/src/endpoints.generated.ts +++ b/src/endpoints.generated.ts @@ -972,9 +972,9 @@ export const ENDPOINTS = { }, "location": { "type": "string", - "description": "Defines the search’s origin location. For realistic results, set location at the city level. If omitted, the proxy’s location may be used.", + "description": "Defines the search’s origin location as free text (e.g. `Austin, Texas`). It is resolved to coordinates to localize the results. For realistic results, set location at the city level. If both `lat` and `lon` are provided, they take precedence and `location` is ignored. If omitted, the proxy’s location may be used.", "wireName": "location", - "default": "Austin,Texas,United States" + "default": "Austin, Texas, United States" }, "lat": { "type": "string", @@ -1074,10 +1074,56 @@ export const ENDPOINTS = { "us" ] }, - "safe": { + "setLang": { + "type": "string", + "description": "The language of the user interface and preferred result language. Accepts a two-letter language code (e.g. `en`, `de`) or a locale/script variant (e.g. `en-gb`, `zh-hans`, `pt-br`).", + "wireName": "setLang", + "enum": [ + "ar", + "bg", + "ca", + "zh-hans", + "zh-hant", + "hr", + "cs", + "da", + "nl", + "en", + "en-gb", + "et", + "fi", + "fr", + "de", + "he", + "hi", + "hu", + "it", + "jp", + "ko", + "lv", + "lt", + "ms", + "nb", + "pl", + "pt-br", + "pt-pt", + "ro", + "ru", + "sr", + "sk", + "sl", + "es", + "sv", + "th", + "tr", + "uk", + "vi" + ] + }, + "safeSearch": { "type": "string", "description": "Adult Content Filtering option.", - "wireName": "safe", + "wireName": "safeSearch", "enum": [ "off", "moderate", @@ -1104,17 +1150,12 @@ export const ENDPOINTS = { "type": "integer", "description": "This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 1 (default) indicates the first page of results, 11 refers to the second page, and 21 to the third page.", "wireName": "first" - }, - "count": { - "type": "integer", - "description": "Number of results per page, ranging from 1 to 50.", - "wireName": "count" } } }, "booking-place": { "slug": "booking-place", - "title": "Booking.com Place API", + "title": "Booking.com Place Scraper API", "description": "The Booking.com Place API returns full details for a single Booking.com property along with the list of available room suites for the requested stay dates and guest composition.", "category": "Booking", "method": "GET", @@ -1285,7 +1326,7 @@ export const ENDPOINTS = { }, "booking-search": { "slug": "booking-search", - "title": "Booking.com Search API", + "title": "Booking.com Search Scraper API", "description": "The Booking.com Search API returns the collection of accommodations from a Booking.com search results page for a given destination and stay dates, with rich filtering by property type, rating, facilities, price and more.", "category": "Booking", "method": "GET", @@ -1711,6 +1752,177 @@ export const ENDPOINTS = { } } }, + "duckduckgo": { + "slug": "duckduckgo", + "title": "DuckDuckGo SERP API", + "description": "The DuckDuckGo SERP API provides real-time access to structured DuckDuckGo search results.", + "category": "DuckDuckGo", + "method": "GET", + "path": "/scrape/duckduckgo/serp", + "cost": 10, + "required": [], + "properties": { + "q": { + "type": "string", + "description": "Specify the search term for which you want to scrape the SERP. Required unless `nextPageToken` is provided (which carries the query of the page it continues).", + "wireName": "q", + "default": "Coffee" + }, + "kl": { + "type": "string", + "description": "DuckDuckGo region code in `-` form (e.g. `us-en`, `de-de`). Sets country and interface language at once; takes precedence over `cc`/`setLang`. Use `wt-wt` for no region.", + "wireName": "kl", + "enum": [ + "ar-es", + "au-en", + "at-de", + "be-nl", + "be-fr", + "br-pt", + "ca-en", + "ca-fr", + "cl-es", + "dk-da", + "fi-fi", + "fr-fr", + "de-de", + "hk-tzh", + "in-en", + "id-en", + "it-it", + "jp-jp", + "kr-kr", + "my-en", + "mx-es", + "nl-nl", + "nz-en", + "no-no", + "cn-zh", + "pl-pl", + "ph-en", + "ru-ru", + "za-en", + "es-es", + "se-sv", + "ch-de", + "tw-tzh", + "tr-tr", + "uk-en", + "us-en", + "wt-wt" + ] + }, + "cc": { + "type": "string", + "description": "The two-letter country code for the country to search from. Combined with `setLang` to form the DuckDuckGo region. Ignored if `kl` is set.", + "wireName": "cc", + "enum": [ + "ar", + "au", + "at", + "be", + "br", + "ca", + "cl", + "dk", + "fi", + "fr", + "de", + "hk", + "in", + "id", + "it", + "jp", + "kr", + "my", + "mx", + "nl", + "nz", + "no", + "cn", + "pl", + "pt", + "ph", + "ru", + "sa", + "za", + "es", + "se", + "ch", + "tw", + "tr", + "gb", + "us" + ] + }, + "setLang": { + "type": "string", + "description": "The preferred result/interface language code — usually two letters (e.g. `en`, `de`), with script-tag variants for some languages (e.g. `zh-hans`, `zh-hant`). Combined with `cc` to form the DuckDuckGo region. Ignored if `kl` is set.", + "wireName": "setLang", + "enum": [ + "ar", + "ca", + "zh-hans", + "zh-hant", + "hr", + "cs", + "da", + "nl", + "en", + "et", + "fi", + "fr", + "de", + "he", + "hu", + "it", + "ja", + "ko", + "lv", + "lt", + "nb", + "pl", + "pt", + "ro", + "ru", + "sk", + "sl", + "es", + "sv", + "th", + "tr", + "uk", + "vi" + ] + }, + "safeSearch": { + "type": "string", + "description": "Adult Content Filtering option.", + "wireName": "safeSearch", + "enum": [ + "off", + "moderate", + "strict" + ] + }, + "deviceType": { + "type": "string", + "description": "Specify the device type for the search.", + "wireName": "deviceType", + "default": "desktop", + "enum": [ + "desktop", + "mobile", + "tablet" + ] + }, + "nextPageToken": { + "type": "string", + "description": "Opaque token returned in each response as `nextPageToken`. Pass it back (in place of `q`) to fetch the next page of results. It carries a pre-signed page URL bound to the original request's session, so it must be used as-is and cannot be constructed manually. Absent when there are no further pages.", + "wireName": "nextPageToken" + } + } + }, "glassdoor-job": { "slug": "glassdoor-job", "title": "Glassdoor Job Scraper API", @@ -5007,7 +5219,7 @@ export const ENDPOINTS = { "type": "string", "description": "Token for displaying more product info in the Google immersive pop-up, available in the Google Shopping API response as the `immersiveProductPageToken` property.", "wireName": "pageToken", - "default": "eyJyZHMiOiJQQ18zMjQ1NDc2NDAwODMzNTUxOTQ4fFBST0RfUENfMzI0NTQ3NjQwMDgzMzU1MTk0OCIsInByb2R1Y3RpZCI6IjEyNTE4MTc2MDIxNjEyNzgxNzUyIiwiY2F0YWxvZ2lkIjoiMTY5MTQ4Nzc2MjUyODA5Nzc4NjUiLCJoZWFkbGluZU9mZmVyRG9jaWQiOiIxNzc2Njg4MTE3MjA4NzEzODU1NSIsImltYWdlRG9jaWQiOiIzNTQ4NDgyNzk5NTQyMzA0NzkxIiwiZ3BjaWQiOiIzMjQ1NDc2NDAwODMzNTUxOTQ4IiwibWlkIjoiNTc2NDYyNjEyMjgwMTMwNDgxIiwicSI6ImNvZmZlZSIsImhsIjoiZW4iLCJnbCI6InVzIiwiY29va2llcyI6Il9fU2VjdXJlLVNUUlA9QUVFUDdnTDhveTExMkFEcGdEZkdDVmtjdXVRMHNmal8ySlhHaktsbHVQVjhxTHBLVTg3UlN6RmJKd0FvYkNjWjVQUU8tYmJZdGRGd1JDYnBHWmFmVzdnc0ZaYjlQM3VPaF9kSTsgQUVDPUFhSm1hNXVoaGE4ZTdjUnF6cThoZG1Na3ExSmk2MGE4MU1kRkQ1Z2M0Szd4WjZaRnQ0S05RYVJLVkpJOyBOSUQ9NTMxPWcySHJDN296elVZUnVraDhFT1NzakN3QWw0cEFWN25mYkNvcVlnWEVmdVNEUWxWLW80WVZZamxvOTh3cW5taHoxWWQ4NF9jUkFhWlZBV1A4dTVkUzNOVHhKVG9ZcjlNbkI1S3h0R0NESWR4azAya2tGajhGbkdfalAzNGQwM0haR1RjNkV4SWpldlBGREQ5X2xCM1VpNmRabmhoLVlveXN6SUxLVTkwT1MxekZBdHJnNFU1NUE4YWVlVFdlQW5ieEgzSGUxTHRSSFY0UVc4Y2d3Vzc0dW45bTZpdThaaldDZVp0QUhoS0ZsbDdycTJGbG1ybDRRdTV6UGxzIiwieHNyZiI6IkFLUE9yMVM2YmtDejdIcEM0WVo0U2VmNzY4RWE0YnhLbGc6MTc3OTI2ODI0NjMxNCIsIm9hcHZmYyI6IkVvd0RDc3dDUVUxdU15MTVWR1JQTjNrNWJEWndTa1JQT0RWemVpMXJaSFF6YUU1SlVteGlSRE00Wm1WRWVVTXRjakZHYVcxM1lpMW9TRVU1T0ZJeU5UbGhTRXBvTlZKNVdrUTBjMHBKWHkxM1ZEVXhOVlowV25OdFMydFlYMUYzTlZKUmQycFNkREJtYlhWV01IcEdWSG95YVVsWWMzcGpWWGhDU0hJd2ExQmZPRW80YmpWdmNsVmFVR056UWsxMVNEUllkSGc1ZWxKSU9WbzBTMnhSZVhKTlRqZG9UMFIzUmpkT00wSjNWMUYwTmpsUFQxVkplRUZZVERKeFh6ZzBNVU4zTUZseGFqWmhkakp2VEZKSWQzbGZUVUU0WjBoUWRHMHpUMVZvU0cxRVJFbDZTMmhYTFRoa1JsRnRha1ZhVmt0d1pXZE1hMUpYT1ZrdExYbDZjMHhIZFhCSlR6VXhXa1JZTWxoU2VFaE5SRlphYVZOVE9YWklSMUpxU25WSVVsOU9RV1JOU1dSNVZYYzRiMHc1YVVkVFNsUjZSVGgwTjFaNVdHVlJiR1Y1VUZaTFpETjJhR3h2Y0djdGNUSkRhbGNTRjJ4WWIwNWhkbGd4VFUxVGVuRjBjMUJ3VFU5Mk5sRm5HaUpCU2t0TVJtMUtXV1pGU21GaGQzUktSakEwVEdOclYwTmlia281VkhwdWF6Rm4ifQ" + "default": "eyJyZHMiOiJQQ18zMjQ1NDc2NDAwODMzNTUxOTQ4fFBST0RfUENfMzI0NTQ3NjQwMDgzMzU1MTk0OCIsInByb2R1Y3RpZCI6IjE2NTYxODg2MzMwNjI5NzA1MjY5IiwiY2F0YWxvZ2lkIjoiMTA5MDU3MjEzODE1NDM1NDgwMCIsImhlYWRsaW5lT2ZmZXJEb2NpZCI6IjEwNTQwMDUxMzg0NjEzOTczOTg1IiwiaW1hZ2VEb2NpZCI6IjE3MjMwMzM3NDkwMTYzODIyNjMiLCJncGNpZCI6IjgyOTk1MTI3NTExOTg2NzE2MjIiLCJtaWQiOiI1NzY0NjI2MTIyODAxMzA0ODEiLCJxIjoiYnV5IGNvZmZlZSIsImhsIjoiZW4iLCJnbCI6InVzIiwiY29va2llcyI6Il9fU2VjdXJlLVNUUlA9QU5tWndhMHZsZUx5TFN3SDZKcmFHRU15RGxnbEhJN3NJelN2NFVJcXhZUDhFQk5kd1FXNTRoRHVsX3RZRl9hSFBsQjM3ajhNMWZRY1NwOVhTMy1icmVOdzIwa1RybjhnajhCaDsgQUVDPUFkSlZFYXR5TE1ZbHktUk5IRGxTVm04MGkySWRhWm4yeE5mWlVBX3JzV3pDX0xyTFFTeUwzTGJ3TkJnOyBOSUQ9NTMyPWtadG5CQnpoNE02cU5lTW9VM1Rjekd1d0VKdmtkcjBZMzFFbmNPTlZUT084TmlVX0oyUTVucmR3Q0dWUU5pWVlvWUROSEdWTE9BdUd0SWI2ZjEwSDk3OHM3bk9hajFFTVN1ellIaDVTMzdDTkJDZkdwLWlmcThVenV4aHR3TTR0YmNidXdnbVBNUHJHeXBlMS1aQmZtTEVCOXpTam9aMFpGOUZHQ3ZQdkc3aGdXZzRCcndvb1RYclhnTHdhc3BtYXpUVi1YYUg1bzJjV2lUNTUwc0dHNG5pRVpYLUI1aFZsbllYQ1QxZU91LXU0Tjk4MXQtUnYzYi1RZS1nTGV2NmV4ZGNFdlE7IERWPU02U2J0ZDljdGtvc1VKSEhKMHhOMXZfa3lxX0M5Tm42MHAxSjhPd3dCd1FBQUFBIiwieHNyZiI6IkFGNXRTTzRGb3VnZDItOVJPN09YU29oMzlvWnhLUzZGNVE6MTc4MzY4OTMxMzM5MiIsIm9hcHZmYyI6IkVvc0RDc3dDUVVwcFZEUjBTMGMwTmxObk16TktTRmxmYW05SlpUbFNNM1ZaVTFJeWJ6ZENlRGgwWm5kRVNGWTFja2hzZFVZNVMzWnVOMVUxYkVSSU1YTlVSMUpyV1VwWFpVWlNUVVY0Y2s5ak1EaElYMWd3UVRaR1RVbzJTVmxpZVdGdU5IRklVV1o0WTJ4d1RVUm1hRFZPT1dSbGFXOVZaVFpNT1ZaT1VXZHJNMlJTTlZNMlQzWlhiSEI1UW01aU5DMHlUR0psYnpWTVJEVkhSazVoYlZkZlVFUmxlbkIwTlc1U2FtRjJOVUprVWkxTloxcFJhbHBsY21kc1VXbDNXVWcxY1dKeFdtTjZWR0ZEVDB0a2RISldTekYwYzB0MVlqaHBiR1o2TFc1cFZsODNjV296VTI5RVgydDVkSE13WlVNNVJVaGhhRTU0WHpKT2ExY3plR3BXY1VGMlJXVjBhVmN5T1ZkNk9WaEVialV5VldVNGNtdHlPVUV4Ym1ZdFNYRjRkM1J3VUMxdFNYUjZORUk0Y3pCV1REUlhkbTVHUldodE1ETnVaaTFNTFZSUlRuUm9PVmRDWDNoaVoyNXVkVWtTRmxsUVFsRmhjV1ZrVFZCWGRIRjBjMUEwV1U5elRWRWFJa0ZFYzNJNVpsRjZSMVpNTkZKR2IwRmhZbmhQWmpSRFRqbHBNRTVCWjAxcFowRSIsInZlcnNpb24iOjJ9" }, "moreStores": { "type": "boolean", @@ -7093,7 +7305,7 @@ export const ENDPOINTS = { "description": "Parameter used for sorting and refining results.", "wireName": "sortBy", "enum": [ - "qualityScore", + "mostRelevant", "newestFirst", "ratingHigh", "ratingLow" @@ -15387,11 +15599,42 @@ export const ENDPOINTS = { } } }, + "instagram-posts": { + "slug": "instagram-posts", + "title": "Instagram Posts Scraper API", + "description": "The Instagram Posts Scraper API lets you retrieve the latest posts of a public Instagram account using its handle. It returns posts with captions, hashtags, mentions, likes, comments, and plays counts, image and video URLs, and timestamps, with token-based pagination for retrieving older posts.", + "category": "Social", + "method": "GET", + "path": "/scrape/instagram/posts", + "cost": 5, + "required": [ + "handle" + ], + "properties": { + "handle": { + "type": "string", + "description": "The Instagram username of the account whose posts you want to scrape, without the `@` symbol.", + "wireName": "handle", + "default": "hasdatadotcom" + }, + "limit": { + "type": "integer", + "description": "The maximum number of posts to retrieve per request. Defaults to 12.", + "wireName": "limit", + "default": 12 + }, + "nextPageToken": { + "type": "string", + "description": "Defines the next page token. It is used for retrieving the next page results. Use the `nextPageToken` value returned by the previous response.", + "wireName": "nextPageToken" + } + } + }, "instagram-profile": { "slug": "instagram-profile", "title": "Instagram Profile Scraper API", "description": "The Instagram Profile Scraper API lets you retrieve public profile information for a specific Instagram account using its handle. It returns data such as bio, followers, following, posts count, and other visible profile details.", - "category": "Instagram", + "category": "Social", "method": "GET", "path": "/scrape/instagram/profile", "cost": 5, @@ -15422,7 +15665,7 @@ export const ENDPOINTS = { "properties": { "keyword": { "type": "string", - "description": "The zipcode used to search for listings.", + "description": "The location to search for listings. Accepts a zipcode (`33321`), a city (`Austin` or `Austin, TX`), a neighborhood (`East Austin`), a school (`BASIS Austin`), a school district (`Austin Independent School District`), an apartment building by its name (`Maizon Brickell`), or a full street address (`5805 Woodview Ave, Austin, TX 78756`), including a single unit (`221 SW 12th St Unit 1716, Miami, FL`). An address or a building returns a single property card instead of a list of listings, and the `type` parameter does not apply to it.", "wireName": "keyword", "default": "33321" }, @@ -16177,6 +16420,115 @@ export const ENDPOINTS = { } } }, + "tiktok-comments": { + "slug": "tiktok-comments", + "title": "TikTok Comments Scraper API", + "description": "The TikTok Comments Scraper API returns the comments on a public TikTok video, or the replies to a specific comment. Each comment includes its text, like count, timestamp, reply count, and author (with links to the author's profile and posts). Results are paginated with a token.", + "category": "Social", + "method": "GET", + "path": "/scrape/tiktok/comments", + "cost": 10, + "required": [ + "videoId" + ], + "properties": { + "videoId": { + "type": "string", + "description": "The numeric id of the video (the number after `/video/` in a TikTok URL).", + "wireName": "videoId", + "default": "7667749432279977230" + }, + "commentId": { + "type": "string", + "description": "When provided, returns the replies to this comment instead of the video's top-level comments.", + "wireName": "commentId" + }, + "nextPageToken": { + "type": "string", + "description": "Defines the next page token. Use the `nextPageToken` value returned by the previous response. Omit it to fetch the first page.", + "wireName": "nextPageToken" + } + } + }, + "tiktok-posts": { + "slug": "tiktok-posts", + "title": "TikTok Posts Scraper API", + "description": "The TikTok Posts Scraper API lets you retrieve the videos of a public TikTok account using its handle. It returns each video with description, hashtags, mentions, like/comment/share/play counts, cover and playable video URLs, music, and timestamp. Results are paginated with a token — pass the `nextPageToken` from a response to fetch the next page.", + "category": "Social", + "method": "GET", + "path": "/scrape/tiktok/posts", + "cost": 10, + "required": [ + "handle" + ], + "properties": { + "handle": { + "type": "string", + "description": "The TikTok username of the account whose videos you want to scrape, with or without the `@` symbol.", + "wireName": "handle", + "default": "tiktok" + }, + "nextPageToken": { + "type": "string", + "description": "Defines the next page token. It is used for retrieving the next page of results. Use the `nextPageToken` value returned by the previous response. Omit it to fetch the first page.", + "wireName": "nextPageToken" + } + } + }, + "tiktok-profile": { + "slug": "tiktok-profile", + "title": "TikTok Profile Scraper API", + "description": "The TikTok Profile Scraper API lets you retrieve public profile information for a specific TikTok account using its handle. It returns data such as nickname, bio, followers, likes, videos count, and other visible profile details.", + "category": "Social", + "method": "GET", + "path": "/scrape/tiktok/profile", + "cost": 10, + "required": [ + "handle" + ], + "properties": { + "handle": { + "type": "string", + "description": "The TikTok username of the profile you want to scrape, with or without the `@` symbol.", + "wireName": "handle", + "default": "nasa" + } + } + }, + "tiktok-search": { + "slug": "tiktok-search", + "title": "TikTok Search Scraper API", + "description": "The TikTok Search Scraper API lets you search TikTok by keyword for videos or users. Video results include description, hashtags, stats, cover and playable URLs, and author info; user results include nickname, bio, avatar, verified flag, and follower count. Results are paginated with a token.", + "category": "Social", + "method": "GET", + "path": "/scrape/tiktok/search", + "cost": 10, + "required": [ + "keyword" + ], + "properties": { + "keyword": { + "type": "string", + "description": "The phrase to search for on TikTok.", + "wireName": "keyword", + "default": "dance" + }, + "type": { + "type": "string", + "description": "What to search for — videos or users. Defaults to video.", + "wireName": "type", + "enum": [ + "video", + "user" + ] + }, + "nextPageToken": { + "type": "string", + "description": "Defines the next page token. Use the `nextPageToken` value returned by the previous response. Omit it to fetch the first page.", + "wireName": "nextPageToken" + } + } + }, "web-scraping": { "slug": "web-scraping", "title": "Web Scraping API", @@ -16474,6 +16826,119 @@ export const ENDPOINTS = { } } }, + "yelp-reviews": { + "slug": "yelp-reviews", + "title": "Yelp Reviews Scraper API", + "description": "The Yelp Reviews Scraper API allows users to retrieve the review feed of a specific place on Yelp, with filtering by rating, language and keyword.", + "category": "Business", + "method": "GET", + "path": "/scrape/yelp/reviews", + "cost": 10, + "required": [ + "placeId" + ], + "properties": { + "placeId": { + "type": "string", + "description": "The Yelp ID of the place. For example, '-4ofMtrD7pSpZIX5pnDkig'. Yelp IDs can be obtained from the Yelp Search Scraper API.", + "wireName": "placeId", + "default": "-4ofMtrD7pSpZIX5pnDkig" + }, + "domain": { + "type": "string", + "description": "Yelp domain to use. Default is `www.yelp.com`.", + "wireName": "domain", + "enum": [ + "www.yelp.com", + "www.yelp.co.uk", + "www.yelp.ca", + "www.yelp.com.au", + "ms.yelp.my", + "www.yelp.cz", + "www.yelp.dk", + "www.yelp.de", + "www.yelp.at", + "de.yelp.ch", + "en.yelp.be", + "en.yelp.com.hk", + "en.yelp.my", + "www.yelp.co.nz", + "en.yelp.com.ph", + "www.yelp.ie", + "www.yelp.com.sg", + "en.yelp.ch", + "www.yelp.com.ar", + "www.yelp.cl", + "www.yelp.es", + "www.yelp.com.mx", + "fil.yelp.com.ph", + "fr.yelp.be", + "fr.yelp.ca", + "www.yelp.fr", + "fr.yelp.ch", + "www.yelp.it", + "it.yelp.ch", + "nl.yelp.be", + "www.yelp.nl", + "www.yelp.no", + "www.yelp.pl", + "www.yelp.com.br", + "www.yelp.pt", + "fi.yelp.fi", + "sv.yelp.fi", + "www.yelp.com.tr", + "www.yelp.co.jp", + "zh.yelp.com.hk", + "www.yelp.com.tw" + ] + }, + "query": { + "type": "string", + "description": "Note: Yelp ignores the `rating` filter while searching, so a query returns matching reviews of every star rating. Free-text query to search within the reviews of the place.", + "wireName": "query" + }, + "sortBy": { + "type": "string", + "description": "The order in which the reviews are returned. Defaults to relevanceDesc.", + "wireName": "sortBy", + "enum": [ + "relevanceDesc", + "dateDesc", + "dateAsc", + "ratingDesc", + "ratingAsc", + "elitesDesc" + ] + }, + "rating": { + "type": "string", + "description": "Note: Yelp ignores this filter when `query` is set, so a search returns matching reviews of every star rating. Filters the reviews by star rating. Possible values are 5, 4, 3, 2 and 1. To return only five-star reviews, set it to `5`. To include several ratings, pass them comma-separated, for example `5,4,3`. When omitted, reviews with any rating are returned.", + "wireName": "rating", + "default": "5,4" + }, + "languageCode": { + "type": "string", + "description": "Language of the reviews to return, as a two-letter code (e.g., 'en', 'es', 'fr'). Defaults to en.", + "wireName": "languageCode", + "default": "en" + }, + "notRecommended": { + "type": "boolean", + "description": "Returns the reviews Yelp does not currently recommend (filtered out of the main feed by its recommendation software) instead of the recommended ones. These reviews carry no photos, videos or reactions, and are paginated ten at a time. Defaults to false.", + "wireName": "notRecommended" + }, + "start": { + "type": "integer", + "description": "Result offset for pagination. It skips the given number of reviews, so the step matches `num` (e.g., 0, 49, 98 for the recommended feed, or 0, 10, 20 when `notRecommended` is set).", + "wireName": "start" + }, + "num": { + "type": "integer", + "description": "Number of reviews to return per page. The maximum is 49. Defaults to 49 for the recommended feed and to 10 when `notRecommended` is set.", + "wireName": "num" + } + } + }, "yelp-search": { "slug": "yelp-search", "title": "Yelp Search Scraper API",