diff --git a/pr-body.md b/pr-body.md index 4cb69b4..78ca6f9 100644 --- a/pr-body.md +++ b/pr-body.md @@ -1,11 +1,23 @@ ## Changes - src/endpoints.generated.ts | 1022 +++++++++++++++++++++++++++++++++++++++++--- - 1 file changed, 959 insertions(+), 63 deletions(-) + src/endpoints.generated.ts | 5543 ++++++++++++++++++++++++++------------------ + 1 file changed, 3253 insertions(+), 2290 deletions(-) ## Endpoint delta ### Added -- google-hotels -- google-maps-posts +- chat-gpt-chat +- duckduckgo +- facebook-profile +- google-scholar +- google-scholar-cite +- instagram-posts +- tiktok-comments +- tiktok-posts +- tiktok-profile +- tiktok-search +- walmart-product +- walmart-reviews +- walmart-search +- yelp-reviews diff --git a/src/endpoints.generated.ts b/src/endpoints.generated.ts index 7ebdd26..93646bc 100644 --- a/src/endpoints.generated.ts +++ b/src/endpoints.generated.ts @@ -38,13 +38,12 @@ export const ENDPOINTS = { "path": "/scrape/airbnb/listing", "cost": 5, "required": [ - "location", "checkIn" ], "properties": { "location": { "type": "string", - "description": "The location to search for listings.", + "description": "The location to search for listings. Required unless a full map bounding box (neLat, neLng, swLat, swLng) is provided.", "wireName": "location", "default": "New York" }, @@ -52,13 +51,13 @@ export const ENDPOINTS = { "type": "string", "description": "The check-in date for the listings.", "wireName": "checkIn", - "default": "2026-01-01" + "default": "2026-09-20" }, "checkOut": { "type": "string", "description": "The check-out date for the listings.", "wireName": "checkOut", - "default": "2026-01-05" + "default": "2026-09-24" }, "adults": { "type": "integer", @@ -80,6 +79,30 @@ export const ENDPOINTS = { "description": "Number of pets.", "wireName": "pets" }, + "neLat": { + "type": "number", + "description": "North-east corner latitude of the map bounding box. When all four bounding-box coordinates are provided, listings are searched within the box instead of by location.", + "wireName": "neLat", + "default": 40.8 + }, + "neLng": { + "type": "number", + "description": "North-east corner longitude of the map bounding box.", + "wireName": "neLng", + "default": -73.9 + }, + "swLat": { + "type": "number", + "description": "South-west corner latitude of the map bounding box.", + "wireName": "swLat", + "default": 40.6 + }, + "swLng": { + "type": "number", + "description": "South-west corner longitude of the map bounding box.", + "wireName": "swLng", + "default": -74.1 + }, "nextPageToken": { "type": "string", "description": "The token used to retrieve the next page of results.", @@ -111,7 +134,7 @@ export const ENDPOINTS = { "slug": "amazon-product", "title": "Amazon Product Scraper API", "description": "The Amazon Product Scraper API allows users to get product details from Amazon based on the specified ASIN and domain. This API enables retrieving detailed information about a specific product on Amazon.", - "category": "Amazon", + "category": "E-commerce", "method": "GET", "path": "/scrape/amazon/product", "cost": 5, @@ -436,7 +459,7 @@ export const ENDPOINTS = { }, "otherSellers": { "type": "boolean", - "description": "If set to true, extracts the other sellers block from the product page.", + "description": "Also collect the offers of other sellers competing for this item. This takes an extra request to Amazon and costs 5 credits on top of the base. Default is false.", "wireName": "otherSellers", "default": true } @@ -446,7 +469,7 @@ export const ENDPOINTS = { "slug": "amazon-search", "title": "Amazon Search Scraper API", "description": "The Amazon Search Scraper API allows users to get search results from Amazon based on the specified query and domain. This API enables searching for products on Amazon.", - "category": "Amazon", + "category": "E-commerce", "method": "GET", "path": "/scrape/amazon/search", "cost": 5, @@ -793,7 +816,7 @@ export const ENDPOINTS = { "slug": "amazon-seller", "title": "Amazon Seller Scraper API", "description": "The Amazon Seller Scraper API allows users to retrieve detailed information about a specific Amazon seller using the seller ID, with optional domain and language settings.", - "category": "Amazon", + "category": "E-commerce", "method": "GET", "path": "/scrape/amazon/seller", "cost": 5, @@ -872,7 +895,7 @@ export const ENDPOINTS = { "slug": "amazon-seller-products", "title": "Amazon Seller Products Scraper API", "description": "The Amazon Seller Products Scraper API allows users to retrieve products listed by a specific Amazon seller using the seller ID, with optional domain, language, and page settings.", - "category": "Amazon", + "category": "E-commerce", "method": "GET", "path": "/scrape/amazon/seller-products", "cost": 5, @@ -955,7 +978,7 @@ export const ENDPOINTS = { "bing-serp": { "slug": "bing-serp", "title": "Bing SERP API", - "description": "The Bing SERP API provides real-time access to structured Bing search results, offering no blocks or CAPTCHAs.", + "description": "The Bing SERP API provides real-time access to structured Bing search results with a high success rate at scale.", "category": "Bing", "method": "GET", "path": "/scrape/bing/serp", @@ -972,9 +995,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 +1097,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 +1173,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", @@ -1139,13 +1203,13 @@ export const ENDPOINTS = { "type": "string", "description": "Check-in date in `YYYY-MM-DD` format. Must be in the future and earlier than `checkOutDate`.", "wireName": "checkInDate", - "default": "2026-06-01" + "default": "2026-09-20" }, "checkOutDate": { "type": "string", "description": "Check-out date in `YYYY-MM-DD` format. Must be later than `checkInDate`.", "wireName": "checkOutDate", - "default": "2026-06-05" + "default": "2026-09-24" }, "rooms": { "type": "integer", @@ -1285,7 +1349,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", @@ -1327,13 +1391,13 @@ export const ENDPOINTS = { "type": "string", "description": "Check-in date in `YYYY-MM-DD` format. Must be in the future and earlier than `checkOutDate`.", "wireName": "checkInDate", - "default": "2026-06-01" + "default": "2026-09-20" }, "checkOutDate": { "type": "string", "description": "Check-out date in `YYYY-MM-DD` format. Must be later than `checkInDate`.", "wireName": "checkOutDate", - "default": "2026-06-05" + "default": "2026-09-24" }, "rooms": { "type": "integer", @@ -1711,6 +1775,267 @@ export const ENDPOINTS = { } } }, + "chat-gpt-chat": { + "slug": "chat-gpt-chat", + "title": "ChatGPT Scraper API", + "description": "The ChatGPT Scraper API sends a prompt to ChatGPT and returns the answer as text, together with the web sources ChatGPT consulted when it decided to search the web. No OpenAI account or API key is needed.", + "category": "AI", + "method": "GET", + "path": "/scrape/chatgpt/chat", + "cost": 10, + "required": [ + "prompt" + ], + "properties": { + "prompt": { + "type": "string", + "description": "The question or instruction to send to ChatGPT, up to 8000 characters. A prompt that asks about recent events makes ChatGPT search the web and return sources; a general-knowledge prompt is answered from the model alone. The prompt also decides the language of the answer — write it in the language you want back, or ask for one explicitly (\"Antworte auf Deutsch\").", + "wireName": "prompt", + "default": "What are the latest developments in the James Webb Space Telescope this month?" + }, + "timezone": { + "type": "string", + "description": "IANA time zone name, for example `America/Chicago` or `Europe/Berlin`. It sets what ChatGPT treats as the current date and time, which matters for prompts that say \"today\", \"this week\" or \"latest\".", + "wireName": "timezone", + "default": "Europe/Berlin" + } + } + }, + "duckduckgo": { + "slug": "duckduckgo", + "title": "DuckDuckGo SERP API", + "description": "The DuckDuckGo SERP API provides real-time access to structured DuckDuckGo search results with a high success rate at scale.", + "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" + } + } + }, + "facebook-profile": { + "slug": "facebook-profile", + "title": "Facebook Profile Scraper API", + "description": "The Facebook Profile Scraper API lets you retrieve public information from a Facebook page or profile by its handle, together with the posts on the page. It returns name, category, bio, exact likes and talking-about counts, followers and following, website, phone, the page owner, profile and cover photos, the photo tiles, and the posts with their text, media, reaction breakdown, comment and share counts.", + "category": "Social", + "method": "GET", + "path": "/scrape/facebook/profile", + "cost": 10, + "required": [ + "handle" + ], + "properties": { + "handle": { + "type": "string", + "description": "The Facebook username of the page or profile you want to scrape, with or without the `@` symbol, or its numeric profile id (the `id` of a `profile.php?id=…` URL), e.g. `nike` or `61550916779928`. Groups and private personal accounts are not supported.", + "wireName": "handle", + "default": "nike" + }, + "language": { + "type": "string", + "description": "Language the page is rendered in. Facebook serves a page in the language of the request, so this changes the localised strings (`followersCount`, `followingCount`, `category`) while the exact figures (`likesCount`, `talkingAboutCount`) stay numeric in every language.", + "wireName": "language", + "enum": [ + "ar", + "bn", + "cs", + "da", + "de", + "el", + "en", + "es", + "fi", + "fil", + "fr", + "he", + "hi", + "hu", + "id", + "it", + "ja", + "ko", + "ms", + "nb", + "nl", + "pl", + "pt", + "ro", + "ru", + "sv", + "th", + "tr", + "uk", + "vi", + "zh-hans", + "zh-hant" + ] + }, + "nextPageToken": { + "type": "string", + "description": "Token from the `pagination.nextPageToken` field of a previous response; the page it leads to is reported as `pagination.nextPage`. Each paginated request returns the next three posts of the feed and a fresh token; the token is absent once the feed ends. Every request is billed separately.", + "wireName": "nextPageToken" + } + } + }, "glassdoor-job": { "slug": "glassdoor-job", "title": "Glassdoor Job Scraper API", @@ -2265,234 +2590,75 @@ export const ENDPOINTS = { "google-events": { "slug": "google-events", "title": "Google Events API", - "description": "The Google Events API allows users to retrieve information about events based on specified search terms, locations, and various filter options.", + "description": "The Google Events API retrieves full details for a single Google event — venue, ticket sources, ratings, and description — given the `pageToken` of an event returned by the Google Search API.", "category": "Google SERP", "method": "GET", "path": "/scrape/google/events", - "cost": 5, + "cost": 10, "required": [ - "q" + "pageToken" ], "properties": { - "q": { - "type": "string", - "description": "Specify the search term for which you want to scrape the SERP.", - "wireName": "q", - "default": "Events in New York" - }, - "location": { - "type": "string", - "description": "Google canonical location for the search.", - "wireName": "location", - "default": "Austin,Texas,United States" - }, - "uule": { + "pageToken": { "type": "string", - "description": "The encoded location parameter.", - "wireName": "uule" + "description": "Token identifying a single event, taken from the `pageToken` field of an `eventsResults` entry in a `google/serp` response. Expires a few minutes after it is minted.", + "wireName": "pageToken" + } + } + }, + "google-flights": { + "slug": "google-flights", + "title": "Google Flights API", + "description": "The Google Flights API provides real-time access to structured flight search results, enabling users to find flights based on various criteria.", + "category": "Google Travel", + "method": "GET", + "path": "/scrape/google/flights", + "cost": 15, + "required": [ + "departureId", + "arrivalId", + "outboundDate" + ], + "properties": { + "departureId": { + "type": "string", + "description": "Specifies the departure airport code (IATA) or location kgmid. - **IATA Code**: A 3-letter uppercase code (e.g., SFO for San Francisco, LHR for London Heathrow). Search on [IATA](https://www.iata.org/en/publications/directories/code-search). - **Location kgmid**: A string starting with `/m/`, found in Wikidata under \"Freebase ID\" (e.g., `/m/02_286` for New York, NY). Multiple values can be separated by commas (e.g., `JFK,LGA,/m/0hptm`).", + "wireName": "departureId", + "default": "LHR" }, - "domain": { + "arrivalId": { "type": "string", - "description": "Google domain to use. Default is google.com.", - "wireName": "domain", + "description": "Specifies the arrival airport code (IATA) or location kgmid. - **IATA Code**: A 3-letter uppercase code (e.g., `SFO` for San Francisco, `LHR` for London Heathrow). Search on [IATA](https://www.iata.org/en/publications/directories/code-search). - **Location kgmid**: A string starting with `/m/`, found in Wikidata under \"Freebase ID\" (e.g., `/m/02_286` for New York, NY). Multiple values can be separated by commas (e.g., `JFK,LGA,/m/0hptm`).", + "wireName": "arrivalId", + "default": "JFK" + }, + "outboundDate": { + "type": "string", + "description": "The outbound travel date in 'yyyy-MM-dd' format.", + "wireName": "outboundDate", + "default": "2026-09-20" + }, + "returnDate": { + "type": "string", + "description": "The return travel date in 'yyyy-MM-dd' format. Required when **type** is `roundTrip`.", + "wireName": "returnDate", + "default": "2026-09-27" + }, + "type": { + "type": "string", + "description": "Specifies the type of flight. Options: - `roundTrip` (default) - `oneWay` - `multiCity` (requires `multiCityJson` for flight details) For round trips, retrieve return flight details with a separate request using `departureToken`.", + "wireName": "type", "enum": [ - "google.ac", - "google.ad", - "google.ae", - "google.al", - "google.am", - "google.as", - "google.at", - "google.az", - "google.ba", - "google.be", - "google.bf", - "google.bg", - "google.bi", - "google.bj", - "google.bs", - "google.bt", - "google.by", - "google.ca", - "google.cd", - "google.cf", - "google.cg", - "google.ch", - "google.ci", - "google.cl", - "google.cm", - "google.co.ao", - "google.co.bw", - "google.co.ck", - "google.co.cr", - "google.co.id", - "google.co.il", - "google.co.in", - "google.co.jp", - "google.co.ke", - "google.co.kr", - "google.co.ls", - "google.co.ma", - "google.co.mz", - "google.co.nz", - "google.co.th", - "google.co.tz", - "google.co.ug", - "google.co.uk", - "google.co.uz", - "google.co.ve", - "google.co.vi", - "google.co.za", - "google.co.zm", - "google.co.zw", - "google.com", - "google.com.af", - "google.com.ag", - "google.com.ai", - "google.com.ar", - "google.com.au", - "google.com.bd", - "google.com.bh", - "google.com.bn", - "google.com.bo", - "google.com.br", - "google.com.bz", - "google.com.co", - "google.com.cu", - "google.com.cy", - "google.com.do", - "google.com.ec", - "google.com.eg", - "google.com.et", - "google.com.fj", - "google.com.gh", - "google.com.gi", - "google.com.gt", - "google.com.hk", - "google.com.jm", - "google.com.kh", - "google.com.kw", - "google.com.lb", - "google.com.ly", - "google.com.mm", - "google.com.mt", - "google.com.mx", - "google.com.my", - "google.com.na", - "google.com.ng", - "google.ng", - "google.com.nf", - "google.com.ni", - "google.com.np", - "google.com.om", - "google.com.pa", - "google.com.pe", - "google.com.pg", - "google.com.ph", - "google.com.pk", - "google.com.pr", - "google.com.py", - "google.com.qa", - "google.com.sa", - "google.com.sb", - "google.com.sg", - "google.com.sl", - "google.com.sv", - "google.com.tj", - "google.com.tr", - "google.com.tw", - "google.com.ua", - "google.com.uy", - "google.com.vc", - "google.com.vn", - "google.cat", - "google.cn", - "google.cv", - "google.cz", - "google.de", - "google.dj", - "google.dk", - "google.dm", - "google.dz", - "google.ee", - "google.es", - "google.fi", - "google.fm", - "google.fr", - "google.ga", - "google.ge", - "google.gg", - "google.gl", - "google.gm", - "google.gp", - "google.gr", - "google.gy", - "google.hn", - "google.hr", - "google.ht", - "google.hu", - "google.ie", - "google.im", - "google.iq", - "google.is", - "google.it", - "google.je", - "google.jo", - "google.kg", - "google.ki", - "google.kz", - "google.la", - "google.li", - "google.lk", - "google.lt", - "google.lu", - "google.lv", - "google.md", - "google.me", - "google.mg", - "google.mk", - "google.ml", - "google.mn", - "google.ms", - "google.mu", - "google.mv", - "google.mw", - "google.ne", - "google.nl", - "google.no", - "google.nr", - "google.nu", - "google.pl", - "google.pn", - "google.ps", - "google.pt", - "google.ro", - "google.rs", - "google.ru", - "google.rw", - "google.sc", - "google.se", - "google.sh", - "google.si", - "google.sk", - "google.sm", - "google.sn", - "google.so", - "google.sr", - "google.st", - "google.td", - "google.tg", - "google.tk", - "google.tl", - "google.tm", - "google.tn", - "google.to", - "google.tt", - "google.vg", - "google.vu", - "google.ws" + "roundTrip", + "oneWay", + "multiCity" ] }, + "multiCityJson": { + "type": "string", + "description": "This parameter specifies flight details for multi-city trips. It is a JSON string containing multiple flight objects. Each object must include the following fields: - **departureId** – The departure airport code or location KGMID. Uses the same format as the main `departureId` parameter. - **arrivalId** – The arrival airport code or location KGMID. Uses the same format as the main `arrivalId` parameter. - **date** – The flight date. Uses the same format as the `outboundDate` parameter. - **times** *(optional)* – The time range for the flight. Uses the same format as the `outboundTimes` parameter.", + "wireName": "multiCityJson" + }, "gl": { "type": "string", "description": "The two-letter country code for the country you want to limit the search to.", @@ -2911,161 +3077,337 @@ export const ENDPOINTS = { "zu" ] }, - "start": { - "type": "integer", - "description": "This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 0 (default) indicates the first page of results, 10 refers to the second page, and 20 to the third page.", - "wireName": "start" - }, - "htichips": { + "currency": { "type": "string", - "description": "Filter parameter for refining event search results. Supports various filters for events. Multiple filters can be passed using a comma. The available filters are: - `date:today`: Today's Events - `date:tomorrow`: Tomorrow's Events - `date:week`: This Week's Events - `date:weekend`: This Weekend's Events - `date:next_week`: Next Week's Events - `date:month`: This Month's Events - `date:next_month`: Next Month's Events - `event_type:Virtual-Event`: Online Events For example, to filter for today's online events, use: `event_type:Virtual-Event,date:today`.", - "wireName": "htichips" - } - } - }, - "google-flights": { - "slug": "google-flights", - "title": "Google Flights API", - "description": "The Google Flights API provides real-time access to structured flight search results, enabling users to find flights based on various criteria.", - "category": "Google Travel", - "method": "GET", - "path": "/scrape/google/flights", - "cost": 15, - "required": [ - "departureId", - "arrivalId", - "outboundDate" - ], - "properties": { - "departureId": { - "type": "string", - "description": "Specifies the departure airport code (IATA) or location kgmid. - **IATA Code**: A 3-letter uppercase code (e.g., SFO for San Francisco, LHR for London Heathrow). Search on [IATA](https://www.iata.org/en/publications/directories/code-search). - **Location kgmid**: A string starting with `/m/`, found in Wikidata under \"Freebase ID\" (e.g., `/m/02_286` for New York, NY). Multiple values can be separated by commas (e.g., `JFK,LGA,/m/0hptm`).", - "wireName": "departureId", - "default": "LHR" + "description": "Parameter defines the currency of the returned prices", + "wireName": "currency", + "enum": [ + "ALL", + "DZD", + "ARS", + "AMD", + "AWG", + "AUD", + "AZN", + "BSD", + "BHD", + "BYN", + "BMD", + "BAM", + "BRL", + "GBP", + "BGN", + "XPF", + "CAD", + "CLP", + "CNY", + "COP", + "CRC", + "CUP", + "CZK", + "DKK", + "DOP", + "EGP", + "EUR", + "GEL", + "HKD", + "HUF", + "ISK", + "INR", + "IDR", + "IRR", + "ILS", + "JMD", + "JPY", + "JOD", + "KZT", + "KWD", + "LBP", + "MKD", + "MYR", + "MXN", + "MDL", + "MAD", + "TWD", + "NZD", + "NOK", + "OMR", + "PKR", + "PAB", + "PEN", + "PHP", + "PLN", + "QAR", + "RON", + "RUB", + "SAR", + "RSD", + "SGD", + "ZAR", + "KRW", + "SEK", + "CHF", + "THB", + "TRY", + "USD", + "UAH", + "VND", + "AED" + ] }, - "arrivalId": { + "travelClass": { "type": "string", - "description": "Specifies the arrival airport code (IATA) or location kgmid. - **IATA Code**: A 3-letter uppercase code (e.g., `SFO` for San Francisco, `LHR` for London Heathrow). Search on [IATA](https://www.iata.org/en/publications/directories/code-search). - **Location kgmid**: A string starting with `/m/`, found in Wikidata under \"Freebase ID\" (e.g., `/m/02_286` for New York, NY). Multiple values can be separated by commas (e.g., `JFK,LGA,/m/0hptm`).", - "wireName": "arrivalId", - "default": "JFK" + "description": "The travel class for the flight (Economy, Premium Economy, Business, or First).", + "wireName": "travelClass", + "enum": [ + "economy", + "premiumEconomy", + "business", + "first" + ] }, - "outboundDate": { - "type": "string", - "description": "The outbound travel date in 'yyyy-MM-dd' format.", - "wireName": "outboundDate", - "default": "2026-08-15" + "showHidden": { + "type": "boolean", + "description": "Indicates whether to include hidden options in the results.", + "wireName": "showHidden" }, - "returnDate": { + "adults": { + "type": "integer", + "description": "Number of adult passengers (>= 1 if specified).", + "wireName": "adults" + }, + "children": { + "type": "integer", + "description": "Number of child passengers.", + "wireName": "children" + }, + "infantsInSeat": { + "type": "integer", + "description": "Number of infants occupying seats.", + "wireName": "infantsInSeat" + }, + "infantsOnLap": { + "type": "integer", + "description": "Number of infants sitting on an adult's lap.", + "wireName": "infantsOnLap" + }, + "sortBy": { "type": "string", - "description": "The return travel date in 'yyyy-MM-dd' format. Required when **type** is `roundTrip`.", - "wireName": "returnDate", - "default": "2026-08-20" + "description": "Sort the flight results based on price, departure time, arrival time, etc.", + "wireName": "sortBy", + "enum": [ + "topFlights", + "price", + "departureTime", + "arrivalTime", + "duration", + "emissions" + ] }, - "type": { + "stops": { "type": "string", - "description": "Specifies the type of flight. Options: - `roundTrip` (default) - `oneWay` - `multiCity` (requires `multiCityJson` for flight details) For round trips, retrieve return flight details with a separate request using `departureToken`.", - "wireName": "type", + "description": "Restrict the number of stops (layovers) in the flight itinerary.", + "wireName": "stops", "enum": [ - "roundTrip", - "oneWay", - "multiCity" + "nonStop", + "oneStopOrFewer", + "twoStopsOrFewer" ] }, - "multiCityJson": { + "excludeAirlines": { "type": "string", - "description": "This parameter specifies flight details for multi-city trips. It is a JSON string containing multiple flight objects. Each object must include the following fields: - **departureId** – The departure airport code or location KGMID. Uses the same format as the main `departureId` parameter. - **arrivalId** – The arrival airport code or location KGMID. Uses the same format as the main `arrivalId` parameter. - **date** – The flight date. Uses the same format as the `outboundDate` parameter. - **times** *(optional)* – The time range for the flight. Uses the same format as the `outboundTimes` parameter.", - "wireName": "multiCityJson" + "description": "A comma separated list of airline codes to exclude from results. You can search for airline codes on [IATA](https://www.iata.org/en/publications/directories/code-search). For example, `UA` is United Airlines.", + "wireName": "excludeAirlines" }, - "gl": { + "includeAirlines": { "type": "string", - "description": "The two-letter country code for the country you want to limit the search to.", - "wireName": "gl", - "enum": [ - "ac", - "af", - "al", - "dz", - "as", - "ad", - "ao", - "ai", - "aq", - "ag", - "ar", - "am", - "aw", - "au", - "at", - "az", - "bs", - "bh", - "bd", - "bb", - "by", - "be", - "bz", - "bj", - "bm", - "bt", - "bo", - "ba", - "bw", - "bv", - "br", - "io", - "bn", - "bg", - "bf", - "bi", - "kh", - "cm", - "ca", - "cv", - "ky", - "cf", - "td", - "cl", - "cn", - "cx", - "cc", - "co", - "km", - "cg", - "cd", - "ck", - "cr", - "ci", - "hr", - "cu", - "cy", - "cz", - "dk", - "dj", - "dm", - "do", - "ec", - "eg", - "sv", - "gq", - "er", - "ee", - "et", - "fk", - "fo", - "fj", - "fi", - "fr", - "gf", - "pf", - "tf", - "ga", - "gm", - "ge", - "gg", - "de", - "gh", - "gi", - "gr", + "description": "A comma separated list of airline codes to exclusively include in results. You can search for airline codes on [IATA](https://www.iata.org/en/publications/directories/code-search). For example, `UA` is United Airlines. `excludeAirlines` and `includeAirlines` parameters can't be used together.", + "wireName": "includeAirlines" + }, + "bags": { + "type": "integer", + "description": "Number of carry-on bags per passenger.", + "wireName": "bags" + }, + "maxPrice": { + "type": "number", + "description": "Maximum price limit for the flight search, in the selected currency.", + "wireName": "maxPrice" + }, + "outboundTimes": { + "type": "string", + "description": "Set up to 4 time boundaries (2 for departure, 2 for arrival) to filter flights. Each number represents the start of an hour. Examples: - `6,20` → 6:00 AM - 9:00 PM departure - `1,15` → 1:00 AM - 4:00 PM departure - `7,18,2,21` → 7:00 AM - 9:00 PM departure, 2:00 AM - 10:00 PM arrival", + "wireName": "outboundTimes" + }, + "returnTimes": { + "type": "string", + "description": "Set up to 4 time boundaries (2 for departure, 2 for arrival) to filter return flights. Each number represents the start of an hour. Examples: - `6,20` → 6:00 AM - 9:00 PM departure - `1,15` → 1:00 AM - 4:00 PM departure - `7,18,2,21` → 7:00 AM - 9:00 PM departure, 2:00 AM - 10:00 PM arrival", + "wireName": "returnTimes" + }, + "lessEmissions": { + "type": "boolean", + "description": "Prefer flight options with lower carbon emissions.", + "wireName": "lessEmissions" + }, + "layoverDuration": { + "type": "string", + "description": "Set the maximum layover duration in minutes to filter flights. For example, `120, 360` filters layovers between 2 hours and 6 hours, while `45, 180` allows layovers from 45 minutes to 3 hours.", + "wireName": "layoverDuration" + }, + "includeConnections": { + "type": "string", + "description": "A comma separated list of specific airports to allow as connections.", + "wireName": "includeConnections" + }, + "excludeConnections": { + "type": "string", + "description": "A comma separated list of specific airports to exclude as connections.", + "wireName": "excludeConnections" + }, + "maxDuration": { + "type": "integer", + "description": "The maximum total flight duration in minutes.", + "wireName": "maxDuration" + }, + "deepSearch": { + "type": "boolean", + "description": "Enable deep search. Returns the same results as Google Flights in a browser, but takes longer to respond. Default is `false`.", + "wireName": "deepSearch" + }, + "departureToken": { + "type": "string", + "description": "Used to select a flight and retrieve return flights for a round trip or the next leg of the itinerary for a multi-city trip.", + "wireName": "departureToken" + }, + "bookingToken": { + "type": "string", + "description": "Used to request booking options for selected flights. This token is found in the flight results and cannot be used with `departureToken`.", + "wireName": "bookingToken" + } + } + }, + "google-hotels": { + "slug": "google-hotels", + "title": "Google Hotels API", + "description": "The Google Hotels API provides real-time access to structured Google Hotels search results, including property listings, prices, ratings, amenities, and pagination.", + "category": "Google Travel", + "method": "GET", + "path": "/scrape/google/hotels", + "cost": 10, + "required": [ + "q", + "checkInDate", + "checkOutDate" + ], + "properties": { + "q": { + "type": "string", + "description": "The search query for Google Hotels (e.g., a city, neighborhood, or hotel name).", + "wireName": "q", + "default": "Hotels in New York" + }, + "checkInDate": { + "type": "string", + "description": "The check-in date in 'yyyy-MM-dd' format.", + "wireName": "checkInDate", + "default": "2026-09-20" + }, + "checkOutDate": { + "type": "string", + "description": "The check-out date in 'yyyy-MM-dd' format.", + "wireName": "checkOutDate", + "default": "2026-09-24" + }, + "gl": { + "type": "string", + "description": "The two-letter country code for the country you want to limit the search to.", + "wireName": "gl", + "enum": [ + "ac", + "af", + "al", + "dz", + "as", + "ad", + "ao", + "ai", + "aq", + "ag", + "ar", + "am", + "aw", + "au", + "at", + "az", + "bs", + "bh", + "bd", + "bb", + "by", + "be", + "bz", + "bj", + "bm", + "bt", + "bo", + "ba", + "bw", + "bv", + "br", + "io", + "bn", + "bg", + "bf", + "bi", + "kh", + "cm", + "ca", + "cv", + "ky", + "cf", + "td", + "cl", + "cn", + "cx", + "cc", + "co", + "km", + "cg", + "cd", + "ck", + "cr", + "ci", + "hr", + "cu", + "cy", + "cz", + "dk", + "dj", + "dm", + "do", + "ec", + "eg", + "sv", + "gq", + "er", + "ee", + "et", + "fk", + "fo", + "fj", + "fi", + "fr", + "gf", + "pf", + "tf", + "ga", + "gm", + "ge", + "gg", + "de", + "gh", + "gi", + "gr", "gl", "gd", "gp", @@ -3472,872 +3814,213 @@ export const ENDPOINTS = { "AED" ] }, - "travelClass": { - "type": "string", - "description": "The travel class for the flight (Economy, Premium Economy, Business, or First).", - "wireName": "travelClass", - "enum": [ - "economy", - "premiumEconomy", - "business", - "first" - ] - }, - "showHidden": { - "type": "boolean", - "description": "Indicates whether to include hidden options in the results.", - "wireName": "showHidden" - }, "adults": { "type": "integer", - "description": "Number of adult passengers (>= 1 if specified).", + "description": "Number of adult guests (1-6).", "wireName": "adults" }, "children": { "type": "integer", - "description": "Number of child passengers.", + "description": "Number of child guests (1-5). Total guests (adults + children) cannot exceed 6.", "wireName": "children" }, - "infantsInSeat": { - "type": "integer", - "description": "Number of infants occupying seats.", - "wireName": "infantsInSeat" - }, - "infantsOnLap": { - "type": "integer", - "description": "Number of infants sitting on an adult's lap.", - "wireName": "infantsOnLap" + "childrenAges": { + "type": "string", + "description": "Comma-separated list of children ages (e.g., `5,8,12`). Must match the number of children.", + "wireName": "childrenAges" }, "sortBy": { "type": "string", - "description": "Sort the flight results based on price, departure time, arrival time, etc.", + "description": "Sort hotel results. Options: - `lowestPrice` — lowest price - `highestRating` — highest rating - `mostReviewed` — most reviewed", "wireName": "sortBy", "enum": [ - "topFlights", - "price", - "departureTime", - "arrivalTime", - "duration", - "emissions" - ] - }, - "stops": { - "type": "string", - "description": "Restrict the number of stops (layovers) in the flight itinerary.", - "wireName": "stops", - "enum": [ - "nonStop", - "oneStopOrFewer", - "twoStopsOrFewer" + "lowestPrice", + "highestRating", + "mostReviewed" ] }, - "excludeAirlines": { - "type": "string", - "description": "A comma separated list of airline codes to exclude from results. You can search for airline codes on [IATA](https://www.iata.org/en/publications/directories/code-search). For example, `UA` is United Airlines.", - "wireName": "excludeAirlines" + "minPrice": { + "type": "number", + "description": "Minimum price per night, in the selected currency.", + "wireName": "minPrice" }, - "includeAirlines": { - "type": "string", - "description": "A comma separated list of airline codes to exclusively include in results. You can search for airline codes on [IATA](https://www.iata.org/en/publications/directories/code-search). For example, `UA` is United Airlines. `excludeAirlines` and `includeAirlines` parameters can't be used together.", - "wireName": "includeAirlines" + "maxPrice": { + "type": "number", + "description": "Maximum price per night, in the selected currency.", + "wireName": "maxPrice" }, - "bags": { - "type": "integer", - "description": "Number of carry-on bags per passenger.", - "wireName": "bags" + "propertyType": { + "type": "array", + "description": "List of property types to filter by (e.g., `hotelResort,hotelMotel`). Values prefixed `hotel*` apply when searching hotels (the default mode). Values prefixed `rental*` apply when `vacationRentals=true`. The two sets are disjoint because Google Hotels exposes different property-type catalogs for each mode — pass values matching the mode you're querying.", + "wireName": "propertyType[]", + "items": { + "type": "string", + "enum": [ + "hotelBeach", + "hotelBoutique", + "hotelHostel", + "hotelInn", + "hotelMotel", + "hotelResort", + "hotelSpa", + "hotelBedAndBreakfast", + "hotelOther", + "hotelAparthotel", + "hotelMinshuku", + "hotelJapaneseBusiness", + "hotelRyokan", + "rentalApartment", + "rentalBungalow", + "rentalCabin", + "rentalChalet", + "rentalCottage", + "rentalGite", + "rentalHolidayVillage", + "rentalHouse", + "rentalHouseboat", + "rentalVilla", + "rentalOther", + "rentalAparthotel" + ] + } }, - "maxPrice": { - "type": "number", - "description": "Maximum price limit for the flight search, in the selected currency.", - "wireName": "maxPrice" + "amenity": { + "type": "array", + "description": "List of amenities to filter by (e.g., `hotelFreeWifi,hotelPool`). Values prefixed `hotel*` apply when searching hotels (the default mode). Values prefixed `rental*` apply when `vacationRentals=true`. The two sets are disjoint because Google Hotels exposes different amenity catalogs for each mode — pass values matching the mode you're querying.", + "wireName": "amenity[]", + "items": { + "type": "string", + "enum": [ + "hotelFreeParking", + "hotelParking", + "hotelIndoorPool", + "hotelOutdoorPool", + "hotelPool", + "hotelFitnessCenter", + "hotelRestaurant", + "hotelFreeBreakfast", + "hotelSpa", + "hotelBeachAccess", + "hotelChildFriendly", + "hotelBar", + "hotelPetFriendly", + "hotelRoomService", + "hotelFreeWifi", + "hotelAirConditioned", + "hotelAllInclusive", + "hotelWheelchairAccessible", + "hotelEvCharger", + "rentalHotTub", + "rentalAirConditioned", + "rentalOutdoorGrill", + "rentalFireplace", + "rentalPatioOrDeck", + "rentalKitchen", + "rentalFitnessCenter", + "rentalCrib", + "rentalBeachAccess", + "rentalKidFriendly", + "rentalPetFriendly", + "rentalFreeWifi", + "rentalPool" + ] + } }, - "outboundTimes": { + "rating": { "type": "string", - "description": "Set up to 4 time boundaries (2 for departure, 2 for arrival) to filter flights. Each number represents the start of an hour. Examples: - `6,20` → 6:00 AM - 9:00 PM departure - `1,15` → 1:00 AM - 4:00 PM departure - `7,18,2,21` → 7:00 AM - 9:00 PM departure, 2:00 AM - 10:00 PM arrival", - "wireName": "outboundTimes" + "description": "Filter by minimum overall guest rating. Options: - `threePointFivePlus` — 3.5 stars or higher - `fourPlus` — 4.0 stars or higher - `fourPointFivePlus` — 4.5 stars or higher", + "wireName": "rating", + "enum": [ + "threePointFivePlus", + "fourPlus", + "fourPointFivePlus" + ] }, - "returnTimes": { + "brands": { "type": "string", - "description": "Set up to 4 time boundaries (2 for departure, 2 for arrival) to filter return flights. Each number represents the start of an hour. Examples: - `6,20` → 6:00 AM - 9:00 PM departure - `1,15` → 1:00 AM - 4:00 PM departure - `7,18,2,21` → 7:00 AM - 9:00 PM departure, 2:00 AM - 10:00 PM arrival", - "wireName": "returnTimes" + "description": "Comma-separated list of brand IDs to filter by. Brand IDs are returned in the response under `brands` for the same query.", + "wireName": "brands" }, - "lessEmissions": { + "hotelClass": { + "type": "string", + "description": "Comma-separated list of hotel star classes to include (e.g., `2,3,4,5`).", + "wireName": "hotelClass" + }, + "freeCancellation": { "type": "boolean", - "description": "Prefer flight options with lower carbon emissions.", - "wireName": "lessEmissions" + "description": "Show only properties offering free cancellation.", + "wireName": "freeCancellation" }, - "layoverDuration": { - "type": "string", - "description": "Set the maximum layover duration in minutes to filter flights. For example, `120, 360` filters layovers between 2 hours and 6 hours, while `45, 180` allows layovers from 45 minutes to 3 hours.", - "wireName": "layoverDuration" + "specialOffers": { + "type": "boolean", + "description": "Show only properties with special offers.", + "wireName": "specialOffers" }, - "includeConnections": { - "type": "string", - "description": "A comma separated list of specific airports to allow as connections.", - "wireName": "includeConnections" + "ecoCertified": { + "type": "boolean", + "description": "Show only eco-certified properties.", + "wireName": "ecoCertified" }, - "excludeConnections": { - "type": "string", - "description": "A comma separated list of specific airports to exclude as connections.", - "wireName": "excludeConnections" + "vacationRentals": { + "type": "boolean", + "description": "Search vacation rentals instead of hotels.", + "wireName": "vacationRentals" }, - "maxDuration": { + "bedrooms": { "type": "integer", - "description": "The maximum total flight duration in minutes.", - "wireName": "maxDuration" + "description": "Minimum number of bedrooms (vacation rentals only).", + "wireName": "bedrooms" }, - "deepSearch": { - "type": "boolean", - "description": "Enable deep search. Returns the same results as Google Flights in a browser, but takes longer to respond. Default is `false`.", - "wireName": "deepSearch" + "bathrooms": { + "type": "integer", + "description": "Minimum number of bathrooms (vacation rentals only).", + "wireName": "bathrooms" }, - "departureToken": { + "nextPageToken": { "type": "string", - "description": "Used to select a flight and retrieve return flights for a round trip or the next leg of the itinerary for a multi-city trip.", - "wireName": "departureToken" + "description": "Token to fetch the next page of hotel results. Returned in the `pagination` field of a previous response.", + "wireName": "nextPageToken" }, - "bookingToken": { + "propertyToken": { "type": "string", - "description": "Used to request booking options for selected flights. This token is found in the flight results and cannot be used with `departureToken`.", - "wireName": "bookingToken" + "description": "Token used to retrieve details for a specific property. Returned in each property in the results.", + "wireName": "propertyToken" } } }, - "google-hotels": { - "slug": "google-hotels", - "title": "Google Hotels API", - "description": "The Google Hotels API provides real-time access to structured Google Hotels search results, including property listings, prices, ratings, amenities, and pagination.", - "category": "Google Travel", + "google-images": { + "slug": "google-images", + "title": "Google Images API", + "description": "Provides real-time access to Google image search results, tailored to specific parameters, ensuring efficient and reliable retrieval at scale.", + "category": "Google Images", "method": "GET", - "path": "/scrape/google/hotels", - "cost": 10, + "path": "/scrape/google/images", + "cost": 5, "required": [ - "q", - "checkInDate", - "checkOutDate" + "q" ], "properties": { "q": { "type": "string", - "description": "The search query for Google Hotels (e.g., a city, neighborhood, or hotel name).", + "description": "Search query term for retrieving image results.", "wireName": "q", - "default": "Hotels in New York" + "default": "Coffee" }, - "checkInDate": { + "location": { "type": "string", - "description": "The check-in date in 'yyyy-MM-dd' format.", - "wireName": "checkInDate", - "default": "2026-08-15" + "description": "Google canonical location for the search.", + "wireName": "location", + "default": "Austin,Texas,United States" }, - "checkOutDate": { + "uule": { "type": "string", - "description": "The check-out date in 'yyyy-MM-dd' format.", - "wireName": "checkOutDate", - "default": "2026-08-20" + "description": "The encoded location parameter.", + "wireName": "uule" }, - "gl": { + "domain": { "type": "string", - "description": "The two-letter country code for the country you want to limit the search to.", - "wireName": "gl", - "enum": [ - "ac", - "af", - "al", - "dz", - "as", - "ad", - "ao", - "ai", - "aq", - "ag", - "ar", - "am", - "aw", - "au", - "at", - "az", - "bs", - "bh", - "bd", - "bb", - "by", - "be", - "bz", - "bj", - "bm", - "bt", - "bo", - "ba", - "bw", - "bv", - "br", - "io", - "bn", - "bg", - "bf", - "bi", - "kh", - "cm", - "ca", - "cv", - "ky", - "cf", - "td", - "cl", - "cn", - "cx", - "cc", - "co", - "km", - "cg", - "cd", - "ck", - "cr", - "ci", - "hr", - "cu", - "cy", - "cz", - "dk", - "dj", - "dm", - "do", - "ec", - "eg", - "sv", - "gq", - "er", - "ee", - "et", - "fk", - "fo", - "fj", - "fi", - "fr", - "gf", - "pf", - "tf", - "ga", - "gm", - "ge", - "gg", - "de", - "gh", - "gi", - "gr", - "gl", - "gd", - "gp", - "gu", - "gt", - "gn", - "gw", - "gy", - "ht", - "hm", - "va", - "hn", - "hk", - "hu", - "im", - "is", - "in", - "id", - "ir", - "iq", - "ie", - "il", - "it", - "je", - "jm", - "jp", - "jo", - "kz", - "ke", - "ki", - "kp", - "kr", - "kw", - "kg", - "la", - "lv", - "lb", - "ls", - "lr", - "ly", - "li", - "lt", - "lu", - "me", - "mo", - "mk", - "mg", - "mw", - "my", - "mv", - "ml", - "mt", - "mh", - "mq", - "mr", - "mu", - "yt", - "mx", - "fm", - "md", - "mc", - "mn", - "ms", - "ma", - "mz", - "mm", - "na", - "nr", - "np", - "nl", - "an", - "nc", - "nz", - "ni", - "ne", - "ng", - "nu", - "nf", - "mp", - "no", - "om", - "pk", - "pw", - "ps", - "pa", - "pg", - "py", - "pe", - "ph", - "pn", - "pl", - "pt", - "pr", - "qa", - "re", - "ro", - "ru", - "rw", - "sh", - "kn", - "lc", - "pm", - "vc", - "ws", - "sm", - "st", - "sa", - "sn", - "rs", - "sc", - "sl", - "sg", - "sk", - "si", - "sb", - "so", - "za", - "gs", - "es", - "lk", - "sd", - "sr", - "sj", - "sz", - "se", - "ch", - "sy", - "tw", - "tj", - "tz", - "th", - "tl", - "tg", - "tk", - "to", - "tt", - "tn", - "tr", - "tm", - "tc", - "tv", - "ug", - "ua", - "ae", - "uk", - "gb", - "us", - "um", - "uy", - "uz", - "vu", - "ve", - "vn", - "vg", - "vi", - "wf", - "eh", - "ye", - "zm", - "zw" - ] - }, - "hl": { - "type": "string", - "description": "The two-letter language code for the language you want to use for the search.", - "wireName": "hl", - "enum": [ - "af", - "ak", - "sq", - "ws", - "am", - "ar", - "hy", - "az", - "eu", - "be", - "bem", - "bn", - "bh", - "xx-bork", - "bs", - "br", - "bg", - "bt", - "km", - "ca", - "chr", - "ny", - "zh-cn", - "zh-tw", - "zh-hk", - "co", - "hr", - "cs", - "da", - "nl", - "xx-elmer", - "en", - "eo", - "et", - "ee", - "fo", - "tl", - "fil", - "fi", - "fr", - "fy", - "gaa", - "gl", - "ka", - "de", - "el", - "kl", - "gn", - "gu", - "xx-hacker", - "ht", - "ha", - "haw", - "iw", - "he", - "hi", - "hu", - "is", - "ig", - "id", - "ia", - "ga", - "it", - "ja", - "jw", - "kn", - "kk", - "rw", - "rn", - "xx-klingon", - "kg", - "ko", - "kri", - "ku", - "ckb", - "ky", - "lo", - "la", - "lv", - "ln", - "lt", - "loz", - "lg", - "ach", - "mk", - "mg", - "my", - "ml", - "mt", - "mv", - "mi", - "mr", - "mfe", - "mo", - "mn", - "ms", - "sr-me", - "ne", - "pcm", - "nso", - "no", - "nn", - "oc", - "or", - "om", - "ps", - "fa", - "xx-pirate", - "pl", - "pt", - "pt-br", - "pt-pt", - "pa", - "qu", - "ro", - "rm", - "nyn", - "ru", - "gd", - "sr", - "sh", - "st", - "tn", - "crs", - "sn", - "sd", - "si", - "sk", - "sl", - "so", - "es", - "es-419", - "su", - "sw", - "sv", - "tg", - "ta", - "tt", - "te", - "th", - "ti", - "to", - "lua", - "tum", - "tr", - "tk", - "tw", - "ug", - "uk", - "ur", - "uz", - "vu", - "vi", - "cy", - "wo", - "xh", - "yi", - "yo", - "zu" - ] - }, - "currency": { - "type": "string", - "description": "Parameter defines the currency of the returned prices", - "wireName": "currency", - "enum": [ - "ALL", - "DZD", - "ARS", - "AMD", - "AWG", - "AUD", - "AZN", - "BSD", - "BHD", - "BYN", - "BMD", - "BAM", - "BRL", - "GBP", - "BGN", - "XPF", - "CAD", - "CLP", - "CNY", - "COP", - "CRC", - "CUP", - "CZK", - "DKK", - "DOP", - "EGP", - "EUR", - "GEL", - "HKD", - "HUF", - "ISK", - "INR", - "IDR", - "IRR", - "ILS", - "JMD", - "JPY", - "JOD", - "KZT", - "KWD", - "LBP", - "MKD", - "MYR", - "MXN", - "MDL", - "MAD", - "TWD", - "NZD", - "NOK", - "OMR", - "PKR", - "PAB", - "PEN", - "PHP", - "PLN", - "QAR", - "RON", - "RUB", - "SAR", - "RSD", - "SGD", - "ZAR", - "KRW", - "SEK", - "CHF", - "THB", - "TRY", - "USD", - "UAH", - "VND", - "AED" - ] - }, - "adults": { - "type": "integer", - "description": "Number of adult guests (1-6).", - "wireName": "adults" - }, - "children": { - "type": "integer", - "description": "Number of child guests (1-5). Total guests (adults + children) cannot exceed 6.", - "wireName": "children" - }, - "childrenAges": { - "type": "string", - "description": "Comma-separated list of children ages (e.g., `5,8,12`). Must match the number of children.", - "wireName": "childrenAges" - }, - "sortBy": { - "type": "string", - "description": "Sort hotel results. Options: - `lowestPrice` — lowest price - `highestRating` — highest rating - `mostReviewed` — most reviewed", - "wireName": "sortBy", - "enum": [ - "lowestPrice", - "highestRating", - "mostReviewed" - ] - }, - "minPrice": { - "type": "number", - "description": "Minimum price per night, in the selected currency.", - "wireName": "minPrice" - }, - "maxPrice": { - "type": "number", - "description": "Maximum price per night, in the selected currency.", - "wireName": "maxPrice" - }, - "propertyType": { - "type": "array", - "description": "List of property types to filter by (e.g., `hotelResort,hotelMotel`). Values prefixed `hotel*` apply when searching hotels (the default mode). Values prefixed `rental*` apply when `vacationRentals=true`. The two sets are disjoint because Google Hotels exposes different property-type catalogs for each mode — pass values matching the mode you're querying.", - "wireName": "propertyType[]", - "items": { - "type": "string", - "enum": [ - "hotelBeach", - "hotelBoutique", - "hotelHostel", - "hotelInn", - "hotelMotel", - "hotelResort", - "hotelSpa", - "hotelBedAndBreakfast", - "hotelOther", - "hotelAparthotel", - "hotelMinshuku", - "hotelJapaneseBusiness", - "hotelRyokan", - "rentalApartment", - "rentalBungalow", - "rentalCabin", - "rentalChalet", - "rentalCottage", - "rentalGite", - "rentalHolidayVillage", - "rentalHouse", - "rentalHouseboat", - "rentalVilla", - "rentalOther", - "rentalAparthotel" - ] - } - }, - "amenity": { - "type": "array", - "description": "List of amenities to filter by (e.g., `hotelFreeWifi,hotelPool`). Values prefixed `hotel*` apply when searching hotels (the default mode). Values prefixed `rental*` apply when `vacationRentals=true`. The two sets are disjoint because Google Hotels exposes different amenity catalogs for each mode — pass values matching the mode you're querying.", - "wireName": "amenity[]", - "items": { - "type": "string", - "enum": [ - "hotelFreeParking", - "hotelParking", - "hotelIndoorPool", - "hotelOutdoorPool", - "hotelPool", - "hotelFitnessCenter", - "hotelRestaurant", - "hotelFreeBreakfast", - "hotelSpa", - "hotelBeachAccess", - "hotelChildFriendly", - "hotelBar", - "hotelPetFriendly", - "hotelRoomService", - "hotelFreeWifi", - "hotelAirConditioned", - "hotelAllInclusive", - "hotelWheelchairAccessible", - "hotelEvCharger", - "rentalHotTub", - "rentalAirConditioned", - "rentalOutdoorGrill", - "rentalFireplace", - "rentalPatioOrDeck", - "rentalKitchen", - "rentalFitnessCenter", - "rentalCrib", - "rentalBeachAccess", - "rentalKidFriendly", - "rentalPetFriendly", - "rentalFreeWifi", - "rentalPool" - ] - } - }, - "rating": { - "type": "string", - "description": "Filter by minimum overall guest rating. Options: - `threePointFivePlus` — 3.5 stars or higher - `fourPlus` — 4.0 stars or higher - `fourPointFivePlus` — 4.5 stars or higher", - "wireName": "rating", - "enum": [ - "threePointFivePlus", - "fourPlus", - "fourPointFivePlus" - ] - }, - "brands": { - "type": "string", - "description": "Comma-separated list of brand IDs to filter by. Brand IDs are returned in the response under `brands` for the same query.", - "wireName": "brands" - }, - "hotelClass": { - "type": "string", - "description": "Comma-separated list of hotel star classes to include (e.g., `2,3,4,5`).", - "wireName": "hotelClass" - }, - "freeCancellation": { - "type": "boolean", - "description": "Show only properties offering free cancellation.", - "wireName": "freeCancellation" - }, - "specialOffers": { - "type": "boolean", - "description": "Show only properties with special offers.", - "wireName": "specialOffers" - }, - "ecoCertified": { - "type": "boolean", - "description": "Show only eco-certified properties.", - "wireName": "ecoCertified" - }, - "vacationRentals": { - "type": "boolean", - "description": "Search vacation rentals instead of hotels.", - "wireName": "vacationRentals" - }, - "bedrooms": { - "type": "integer", - "description": "Minimum number of bedrooms (vacation rentals only).", - "wireName": "bedrooms" - }, - "bathrooms": { - "type": "integer", - "description": "Minimum number of bathrooms (vacation rentals only).", - "wireName": "bathrooms" - }, - "nextPageToken": { - "type": "string", - "description": "Token to fetch the next page of hotel results. Returned in the `pagination` field of a previous response.", - "wireName": "nextPageToken" - }, - "propertyToken": { - "type": "string", - "description": "Token used to retrieve details for a specific property. Returned in each property in the results.", - "wireName": "propertyToken" - } - } - }, - "google-images": { - "slug": "google-images", - "title": "Google Images API", - "description": "Provides real-time access to Google image search results, tailored to specific parameters, ensuring efficient retrieval free from blocks or CAPTCHAs.", - "category": "Google Images", - "method": "GET", - "path": "/scrape/google/images", - "cost": 5, - "required": [ - "q" - ], - "properties": { - "q": { - "type": "string", - "description": "Search query term for retrieving image results.", - "wireName": "q", - "default": "Coffee" - }, - "location": { - "type": "string", - "description": "Google canonical location for the search.", - "wireName": "location", - "default": "Austin,Texas,United States" - }, - "uule": { - "type": "string", - "description": "The encoded location parameter.", - "wireName": "uule" - }, - "domain": { - "type": "string", - "description": "Google domain to use. Default is google.com.", - "wireName": "domain", + "description": "Google domain to use. Default is google.com.", + "wireName": "domain", "enum": [ "google.ac", "google.ad", @@ -5007,7 +4690,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", @@ -5023,8 +4706,8 @@ export const ENDPOINTS = { }, "google-maps": { "slug": "google-maps", - "title": "Google Maps API", - "description": "The Google Maps API allows users to retreive business data including business type, phone, address, website, ratings, number of reviews, and more.", + "title": "Google Maps Search API", + "description": "The Google Maps Search API allows users to search for locations using keyword, coordinates, and various filters. The API returns relevant location details and map data.", "category": "Google Maps", "method": "GET", "path": "/scrape/google-maps/search", @@ -5659,37 +5342,886 @@ export const ENDPOINTS = { "zu" ] }, - "start": { - "type": "integer", - "description": "Specifies the result offset for pagination purposes. The offset dictates the number of rows to skip from the beginning of the results. This is useful for accessing subsequent pages of search results. For example, an offset of 0 (the default value) returns the first page of results, 20 returns the second page, 40 returns the third page, and so on. This parameter is especially relevant when used in conjunction with the 'll' parameter for location-based searches.", - "wireName": "start" - }, - "ll": { - "type": "string", - "description": "GPS coordinates of the location where the search query is to be performed. This parameter is required if the 'start' parameter is present. The format for the `ll` parameter is `@` followed by latitude, longitude, and zoom level, separated by commas. The latitude and longitude should be in decimal degrees, and the zoom level is an integer. Example: `@40.7455096,-74.0083012,14z`.", - "wireName": "ll", - "default": "@40.7455096,-74.0083012,14z" - } - } - }, - "google-maps-contributor-reviews": { - "slug": "google-maps-contributor-reviews", - "title": "Google Maps Contributor Reviews API", - "description": "The Google Maps Contributor Reviews API allows to retrieve reviews submitted by specific users on Google Maps.", - "category": "Google Maps", - "method": "GET", - "path": "/scrape/google-maps/contributor-reviews", - "cost": 5, - "required": [ - "contributorId" - ], - "properties": { - "contributorId": { - "type": "string", - "description": "Google Maps Contributor ID.", - "wireName": "contributorId", - "default": "117472887966458832611" - }, + "start": { + "type": "integer", + "description": "Specifies the result offset for pagination purposes. The offset dictates the number of rows to skip from the beginning of the results. This is useful for accessing subsequent pages of search results. For example, an offset of 0 (the default value) returns the first page of results, 20 returns the second page, 40 returns the third page, and so on. This parameter is especially relevant when used in conjunction with the 'll' parameter for location-based searches.", + "wireName": "start" + }, + "ll": { + "type": "string", + "description": "GPS coordinates of the location where the search query is to be performed. This parameter is required if the 'start' parameter is present. The format for the `ll` parameter is `@` followed by latitude, longitude, and zoom level, separated by commas. The latitude and longitude should be in decimal degrees, and the zoom level is an integer. Example: `@40.7455096,-74.0083012,14z`.", + "wireName": "ll", + "default": "@40.7455096,-74.0083012,14z" + } + } + }, + "google-maps-contributor-reviews": { + "slug": "google-maps-contributor-reviews", + "title": "Google Maps Contributor Reviews API", + "description": "The Google Maps Contributor Reviews API allows to retrieve reviews submitted by specific users on Google Maps.", + "category": "Google Maps", + "method": "GET", + "path": "/scrape/google-maps/contributor-reviews", + "cost": 5, + "required": [ + "contributorId" + ], + "properties": { + "contributorId": { + "type": "string", + "description": "Google Maps Contributor ID.", + "wireName": "contributorId", + "default": "117472887966458832611" + }, + "hl": { + "type": "string", + "description": "The two-letter language code for the language you want to use for the search.", + "wireName": "hl", + "enum": [ + "af", + "ak", + "sq", + "ws", + "am", + "ar", + "hy", + "az", + "eu", + "be", + "bem", + "bn", + "bh", + "xx-bork", + "bs", + "br", + "bg", + "bt", + "km", + "ca", + "chr", + "ny", + "zh-cn", + "zh-tw", + "zh-hk", + "co", + "hr", + "cs", + "da", + "nl", + "xx-elmer", + "en", + "eo", + "et", + "ee", + "fo", + "tl", + "fil", + "fi", + "fr", + "fy", + "gaa", + "gl", + "ka", + "de", + "el", + "kl", + "gn", + "gu", + "xx-hacker", + "ht", + "ha", + "haw", + "iw", + "he", + "hi", + "hu", + "is", + "ig", + "id", + "ia", + "ga", + "it", + "ja", + "jw", + "kn", + "kk", + "rw", + "rn", + "xx-klingon", + "kg", + "ko", + "kri", + "ku", + "ckb", + "ky", + "lo", + "la", + "lv", + "ln", + "lt", + "loz", + "lg", + "ach", + "mk", + "mg", + "my", + "ml", + "mt", + "mv", + "mi", + "mr", + "mfe", + "mo", + "mn", + "ms", + "sr-me", + "ne", + "pcm", + "nso", + "no", + "nn", + "oc", + "or", + "om", + "ps", + "fa", + "xx-pirate", + "pl", + "pt", + "pt-br", + "pt-pt", + "pa", + "qu", + "ro", + "rm", + "nyn", + "ru", + "gd", + "sr", + "sh", + "st", + "tn", + "crs", + "sn", + "sd", + "si", + "sk", + "sl", + "so", + "es", + "es-419", + "su", + "sw", + "sv", + "tg", + "ta", + "tt", + "te", + "th", + "ti", + "to", + "lua", + "tum", + "tr", + "tk", + "tw", + "ug", + "uk", + "ur", + "uz", + "vu", + "vi", + "cy", + "wo", + "xh", + "yi", + "yo", + "zu" + ] + }, + "gl": { + "type": "string", + "description": "The two-letter country code for the country you want to limit the search to.", + "wireName": "gl", + "enum": [ + "ac", + "af", + "al", + "dz", + "as", + "ad", + "ao", + "ai", + "aq", + "ag", + "ar", + "am", + "aw", + "au", + "at", + "az", + "bs", + "bh", + "bd", + "bb", + "by", + "be", + "bz", + "bj", + "bm", + "bt", + "bo", + "ba", + "bw", + "bv", + "br", + "io", + "bn", + "bg", + "bf", + "bi", + "kh", + "cm", + "ca", + "cv", + "ky", + "cf", + "td", + "cl", + "cn", + "cx", + "cc", + "co", + "km", + "cg", + "cd", + "ck", + "cr", + "ci", + "hr", + "cu", + "cy", + "cz", + "dk", + "dj", + "dm", + "do", + "ec", + "eg", + "sv", + "gq", + "er", + "ee", + "et", + "fk", + "fo", + "fj", + "fi", + "fr", + "gf", + "pf", + "tf", + "ga", + "gm", + "ge", + "gg", + "de", + "gh", + "gi", + "gr", + "gl", + "gd", + "gp", + "gu", + "gt", + "gn", + "gw", + "gy", + "ht", + "hm", + "va", + "hn", + "hk", + "hu", + "im", + "is", + "in", + "id", + "ir", + "iq", + "ie", + "il", + "it", + "je", + "jm", + "jp", + "jo", + "kz", + "ke", + "ki", + "kp", + "kr", + "kw", + "kg", + "la", + "lv", + "lb", + "ls", + "lr", + "ly", + "li", + "lt", + "lu", + "me", + "mo", + "mk", + "mg", + "mw", + "my", + "mv", + "ml", + "mt", + "mh", + "mq", + "mr", + "mu", + "yt", + "mx", + "fm", + "md", + "mc", + "mn", + "ms", + "ma", + "mz", + "mm", + "na", + "nr", + "np", + "nl", + "an", + "nc", + "nz", + "ni", + "ne", + "ng", + "nu", + "nf", + "mp", + "no", + "om", + "pk", + "pw", + "ps", + "pa", + "pg", + "py", + "pe", + "ph", + "pn", + "pl", + "pt", + "pr", + "qa", + "re", + "ro", + "ru", + "rw", + "sh", + "kn", + "lc", + "pm", + "vc", + "ws", + "sm", + "st", + "sa", + "sn", + "rs", + "sc", + "sl", + "sg", + "sk", + "si", + "sb", + "so", + "za", + "gs", + "es", + "lk", + "sd", + "sr", + "sj", + "sz", + "se", + "ch", + "sy", + "tw", + "tj", + "tz", + "th", + "tl", + "tg", + "tk", + "to", + "tt", + "tn", + "tr", + "tm", + "tc", + "tv", + "ug", + "ua", + "ae", + "uk", + "gb", + "us", + "um", + "uy", + "uz", + "vu", + "ve", + "vn", + "vg", + "vi", + "wf", + "eh", + "ye", + "zm", + "zw" + ] + }, + "num": { + "type": "integer", + "description": "Number of results per page, ranging from 10 to 200.", + "wireName": "num" + }, + "nextPageToken": { + "type": "string", + "description": "Defines the next page token. It is used for retrieving the next page results.", + "wireName": "nextPageToken" + } + } + }, + "google-maps-photos": { + "slug": "google-maps-photos", + "title": "Google Maps Photos API", + "description": "The Google Maps Photos API returns photos for a place on Google Maps. Use either dataId or placeId with optional language, category, and pagination.", + "category": "Google Maps", + "method": "GET", + "path": "/scrape/google-maps/photos", + "cost": 5, + "required": [], + "properties": { + "dataId": { + "type": "string", + "description": "Google Maps data ID. Either dataId or placeId should be set.", + "wireName": "dataId", + "default": "0x80cc0654bd27e08d:0xb1c2554442d42e8d" + }, + "placeId": { + "type": "string", + "description": "Unique reference to a place on Google Maps. Either dataId or placeId should be set.", + "wireName": "placeId" + }, + "hl": { + "type": "string", + "description": "The two-letter language code for the language you want to use for the search.", + "wireName": "hl", + "enum": [ + "af", + "ak", + "sq", + "ws", + "am", + "ar", + "hy", + "az", + "eu", + "be", + "bem", + "bn", + "bh", + "xx-bork", + "bs", + "br", + "bg", + "bt", + "km", + "ca", + "chr", + "ny", + "zh-cn", + "zh-tw", + "zh-hk", + "co", + "hr", + "cs", + "da", + "nl", + "xx-elmer", + "en", + "eo", + "et", + "ee", + "fo", + "tl", + "fil", + "fi", + "fr", + "fy", + "gaa", + "gl", + "ka", + "de", + "el", + "kl", + "gn", + "gu", + "xx-hacker", + "ht", + "ha", + "haw", + "iw", + "he", + "hi", + "hu", + "is", + "ig", + "id", + "ia", + "ga", + "it", + "ja", + "jw", + "kn", + "kk", + "rw", + "rn", + "xx-klingon", + "kg", + "ko", + "kri", + "ku", + "ckb", + "ky", + "lo", + "la", + "lv", + "ln", + "lt", + "loz", + "lg", + "ach", + "mk", + "mg", + "my", + "ml", + "mt", + "mv", + "mi", + "mr", + "mfe", + "mo", + "mn", + "ms", + "sr-me", + "ne", + "pcm", + "nso", + "no", + "nn", + "oc", + "or", + "om", + "ps", + "fa", + "xx-pirate", + "pl", + "pt", + "pt-br", + "pt-pt", + "pa", + "qu", + "ro", + "rm", + "nyn", + "ru", + "gd", + "sr", + "sh", + "st", + "tn", + "crs", + "sn", + "sd", + "si", + "sk", + "sl", + "so", + "es", + "es-419", + "su", + "sw", + "sv", + "tg", + "ta", + "tt", + "te", + "th", + "ti", + "to", + "lua", + "tum", + "tr", + "tk", + "tw", + "ug", + "uk", + "ur", + "uz", + "vu", + "vi", + "cy", + "wo", + "xh", + "yi", + "yo", + "zu" + ] + }, + "categoryId": { + "type": "string", + "description": "Filters photos by category.", + "wireName": "categoryId" + }, + "nextPageToken": { + "type": "string", + "description": "Token for fetching the next page of photos.", + "wireName": "nextPageToken" + } + } + }, + "google-maps-place": { + "slug": "google-maps-place", + "title": "Google Maps Place API", + "description": "The Google Maps Place API retrieves detailed information about a specific place using a `placeId`.", + "category": "Google Maps", + "method": "GET", + "path": "/scrape/google-maps/place", + "cost": 5, + "required": [ + "placeId" + ], + "properties": { + "placeId": { + "type": "string", + "description": "A unique identifier for the place. This ID can be obtained from Google Maps search results.", + "wireName": "placeId", + "default": "ChIJFU2bda4SM4cRKSCRyb6pOB8" + }, + "domain": { + "type": "string", + "description": "Google domain to use. Default is google.com.", + "wireName": "domain", + "enum": [ + "google.ac", + "google.ad", + "google.ae", + "google.al", + "google.am", + "google.as", + "google.at", + "google.az", + "google.ba", + "google.be", + "google.bf", + "google.bg", + "google.bi", + "google.bj", + "google.bs", + "google.bt", + "google.by", + "google.ca", + "google.cd", + "google.cf", + "google.cg", + "google.ch", + "google.ci", + "google.cl", + "google.cm", + "google.co.ao", + "google.co.bw", + "google.co.ck", + "google.co.cr", + "google.co.id", + "google.co.il", + "google.co.in", + "google.co.jp", + "google.co.ke", + "google.co.kr", + "google.co.ls", + "google.co.ma", + "google.co.mz", + "google.co.nz", + "google.co.th", + "google.co.tz", + "google.co.ug", + "google.co.uk", + "google.co.uz", + "google.co.ve", + "google.co.vi", + "google.co.za", + "google.co.zm", + "google.co.zw", + "google.com", + "google.com.af", + "google.com.ag", + "google.com.ai", + "google.com.ar", + "google.com.au", + "google.com.bd", + "google.com.bh", + "google.com.bn", + "google.com.bo", + "google.com.br", + "google.com.bz", + "google.com.co", + "google.com.cu", + "google.com.cy", + "google.com.do", + "google.com.ec", + "google.com.eg", + "google.com.et", + "google.com.fj", + "google.com.gh", + "google.com.gi", + "google.com.gt", + "google.com.hk", + "google.com.jm", + "google.com.kh", + "google.com.kw", + "google.com.lb", + "google.com.ly", + "google.com.mm", + "google.com.mt", + "google.com.mx", + "google.com.my", + "google.com.na", + "google.com.ng", + "google.ng", + "google.com.nf", + "google.com.ni", + "google.com.np", + "google.com.om", + "google.com.pa", + "google.com.pe", + "google.com.pg", + "google.com.ph", + "google.com.pk", + "google.com.pr", + "google.com.py", + "google.com.qa", + "google.com.sa", + "google.com.sb", + "google.com.sg", + "google.com.sl", + "google.com.sv", + "google.com.tj", + "google.com.tr", + "google.com.tw", + "google.com.ua", + "google.com.uy", + "google.com.vc", + "google.com.vn", + "google.cat", + "google.cn", + "google.cv", + "google.cz", + "google.de", + "google.dj", + "google.dk", + "google.dm", + "google.dz", + "google.ee", + "google.es", + "google.fi", + "google.fm", + "google.fr", + "google.ga", + "google.ge", + "google.gg", + "google.gl", + "google.gm", + "google.gp", + "google.gr", + "google.gy", + "google.hn", + "google.hr", + "google.ht", + "google.hu", + "google.ie", + "google.im", + "google.iq", + "google.is", + "google.it", + "google.je", + "google.jo", + "google.kg", + "google.ki", + "google.kz", + "google.la", + "google.li", + "google.lk", + "google.lt", + "google.lu", + "google.lv", + "google.md", + "google.me", + "google.mg", + "google.mk", + "google.ml", + "google.mn", + "google.ms", + "google.mu", + "google.mv", + "google.mw", + "google.ne", + "google.nl", + "google.no", + "google.nr", + "google.nu", + "google.pl", + "google.pn", + "google.ps", + "google.pt", + "google.ro", + "google.rs", + "google.ru", + "google.rw", + "google.sc", + "google.se", + "google.sh", + "google.si", + "google.sk", + "google.sm", + "google.sn", + "google.so", + "google.sr", + "google.st", + "google.td", + "google.tg", + "google.tk", + "google.tl", + "google.tm", + "google.tn", + "google.to", + "google.tt", + "google.vg", + "google.vu", + "google.ws" + ] + }, "hl": { "type": "string", "description": "The two-letter language code for the language you want to use for the search.", @@ -5709,436 +6241,174 @@ export const ENDPOINTS = { "bn", "bh", "xx-bork", - "bs", - "br", - "bg", - "bt", - "km", - "ca", - "chr", - "ny", - "zh-cn", - "zh-tw", - "zh-hk", - "co", - "hr", - "cs", - "da", - "nl", - "xx-elmer", - "en", - "eo", - "et", - "ee", - "fo", - "tl", - "fil", - "fi", - "fr", - "fy", - "gaa", - "gl", - "ka", - "de", - "el", - "kl", - "gn", - "gu", - "xx-hacker", - "ht", - "ha", - "haw", - "iw", - "he", - "hi", - "hu", - "is", - "ig", - "id", - "ia", - "ga", - "it", - "ja", - "jw", - "kn", - "kk", - "rw", - "rn", - "xx-klingon", - "kg", - "ko", - "kri", - "ku", - "ckb", - "ky", - "lo", - "la", - "lv", - "ln", - "lt", - "loz", - "lg", - "ach", - "mk", - "mg", - "my", - "ml", - "mt", - "mv", - "mi", - "mr", - "mfe", - "mo", - "mn", - "ms", - "sr-me", - "ne", - "pcm", - "nso", - "no", - "nn", - "oc", - "or", - "om", - "ps", - "fa", - "xx-pirate", - "pl", - "pt", - "pt-br", - "pt-pt", - "pa", - "qu", - "ro", - "rm", - "nyn", - "ru", - "gd", - "sr", - "sh", - "st", - "tn", - "crs", - "sn", - "sd", - "si", - "sk", - "sl", - "so", - "es", - "es-419", - "su", - "sw", - "sv", - "tg", - "ta", - "tt", - "te", - "th", - "ti", - "to", - "lua", - "tum", - "tr", - "tk", - "tw", - "ug", - "uk", - "ur", - "uz", - "vu", - "vi", - "cy", - "wo", - "xh", - "yi", - "yo", - "zu" - ] - }, - "gl": { - "type": "string", - "description": "The two-letter country code for the country you want to limit the search to.", - "wireName": "gl", - "enum": [ - "ac", - "af", - "al", - "dz", - "as", - "ad", - "ao", - "ai", - "aq", - "ag", - "ar", - "am", - "aw", - "au", - "at", - "az", - "bs", - "bh", - "bd", - "bb", - "by", - "be", - "bz", - "bj", - "bm", - "bt", - "bo", - "ba", - "bw", - "bv", - "br", - "io", - "bn", - "bg", - "bf", - "bi", - "kh", - "cm", - "ca", - "cv", - "ky", - "cf", - "td", - "cl", - "cn", - "cx", - "cc", - "co", + "bs", + "br", + "bg", + "bt", "km", - "cg", - "cd", - "ck", - "cr", - "ci", + "ca", + "chr", + "ny", + "zh-cn", + "zh-tw", + "zh-hk", + "co", "hr", - "cu", - "cy", - "cz", - "dk", - "dj", - "dm", - "do", - "ec", - "eg", - "sv", - "gq", - "er", - "ee", + "cs", + "da", + "nl", + "xx-elmer", + "en", + "eo", "et", - "fk", + "ee", "fo", - "fj", + "tl", + "fil", "fi", "fr", - "gf", - "pf", - "tf", - "ga", - "gm", - "ge", - "gg", - "de", - "gh", - "gi", - "gr", + "fy", + "gaa", "gl", - "gd", - "gp", - "gu", - "gt", + "ka", + "de", + "el", + "kl", "gn", - "gw", - "gy", + "gu", + "xx-hacker", "ht", - "hm", - "va", - "hn", - "hk", + "ha", + "haw", + "iw", + "he", + "hi", "hu", - "im", "is", - "in", + "ig", "id", - "ir", - "iq", - "ie", - "il", + "ia", + "ga", "it", - "je", - "jm", - "jp", - "jo", - "kz", - "ke", - "ki", - "kp", - "kr", - "kw", + "ja", + "jw", + "kn", + "kk", + "rw", + "rn", + "xx-klingon", "kg", + "ko", + "kri", + "ku", + "ckb", + "ky", + "lo", "la", "lv", - "lb", - "ls", - "lr", - "ly", - "li", + "ln", "lt", - "lu", - "me", - "mo", + "loz", + "lg", + "ach", "mk", "mg", - "mw", "my", - "mv", "ml", "mt", - "mh", - "mq", + "mv", + "mi", "mr", - "mu", - "yt", - "mx", - "fm", - "md", - "mc", + "mfe", + "mo", "mn", "ms", - "ma", - "mz", - "mm", - "na", - "nr", - "np", - "nl", - "an", - "nc", - "nz", - "ni", + "sr-me", "ne", - "ng", - "nu", - "nf", - "mp", + "pcm", + "nso", "no", + "nn", + "oc", + "or", "om", - "pk", - "pw", "ps", - "pa", - "pg", - "py", - "pe", - "ph", - "pn", + "fa", + "xx-pirate", "pl", "pt", - "pr", - "qa", - "re", + "pt-br", + "pt-pt", + "pa", + "qu", "ro", + "rm", + "nyn", "ru", - "rw", + "gd", + "sr", "sh", - "kn", - "lc", - "pm", - "vc", - "ws", - "sm", "st", - "sa", + "tn", + "crs", "sn", - "rs", - "sc", - "sl", - "sg", - "sk", + "sd", "si", - "sb", + "sk", + "sl", "so", - "za", - "gs", "es", - "lk", - "sd", - "sr", - "sj", - "sz", - "se", - "ch", - "sy", - "tw", - "tj", - "tz", - "th", - "tl", + "es-419", + "su", + "sw", + "sv", "tg", - "tk", - "to", + "ta", "tt", - "tn", + "te", + "th", + "ti", + "to", + "lua", + "tum", "tr", - "tm", - "tc", - "tv", + "tk", + "tw", "ug", - "ua", - "ae", "uk", - "gb", - "us", - "um", - "uy", + "ur", "uz", "vu", - "ve", - "vn", - "vg", "vi", - "wf", - "eh", - "ye", - "zm", - "zw" - ] - }, - "num": { - "type": "integer", - "description": "Number of results per page, ranging from 10 to 200.", - "wireName": "num" - }, - "nextPageToken": { - "type": "string", - "description": "Defines the next page token. It is used for retrieving the next page results.", - "wireName": "nextPageToken" + "cy", + "wo", + "xh", + "yi", + "yo", + "zu" + ] } } }, - "google-maps-photos": { - "slug": "google-maps-photos", - "title": "Google Maps Photos API", - "description": "The Google Maps Photos API returns photos for a place on Google Maps. Use either dataId or placeId with optional language, category, and pagination.", + "google-maps-posts": { + "slug": "google-maps-posts", + "title": "Google Maps Posts API", + "description": "The Google Maps Posts API provides access to posts (offers, events, announcements) published by businesses on their Google Maps listings, identified by data ID or place ID.", "category": "Google Maps", "method": "GET", - "path": "/scrape/google-maps/photos", - "cost": 5, + "path": "/scrape/google-maps/posts", + "cost": 10, "required": [], "properties": { "dataId": { "type": "string", - "description": "Google Maps data ID. Either dataId or placeId should be set.", + "description": "Google Maps data ID.", "wireName": "dataId", - "default": "0x80cc0654bd27e08d:0xb1c2554442d42e8d" + "default": "0x873312ae759b4d15:0x1f38a9bec9912029" }, "placeId": { "type": "string", - "description": "Unique reference to a place on Google Maps. Either dataId or placeId should be set.", + "description": "Unique reference to a place on a Google Map. Either dataId or placeId should be set.", "wireName": "placeId" }, "hl": { @@ -6307,237 +6577,33 @@ export const ENDPOINTS = { "zu" ] }, - "categoryId": { - "type": "string", - "description": "Filters photos by category.", - "wireName": "categoryId" - }, "nextPageToken": { "type": "string", - "description": "Token for fetching the next page of photos.", + "description": "Defines the next page token. It is used for retrieving the next page results.", "wireName": "nextPageToken" } } }, - "google-maps-place": { - "slug": "google-maps-place", - "title": "Google Maps Place API", - "description": "The Google Maps Place API retrieves detailed information about a specific place using a `placeId`.", + "google-maps-reviews": { + "slug": "google-maps-reviews", + "title": "Google Maps Reviews API", + "description": "The Google Maps Reviews API provides access to reviews from Google Maps, with options to specify the data ID, place ID, language, sorting parameters, and topic filters.", "category": "Google Maps", "method": "GET", - "path": "/scrape/google-maps/place", + "path": "/scrape/google-maps/reviews", "cost": 5, - "required": [ - "placeId" - ], + "required": [], "properties": { - "placeId": { + "dataId": { "type": "string", - "description": "A unique identifier for the place. This ID can be obtained from Google Maps search results.", - "wireName": "placeId", - "default": "ChIJFU2bda4SM4cRKSCRyb6pOB8" + "description": "Google Maps data ID.", + "wireName": "dataId", + "default": "0x873312ae759b4d15:0x1f38a9bec9912029" }, - "domain": { + "placeId": { "type": "string", - "description": "Google domain to use. Default is google.com.", - "wireName": "domain", - "enum": [ - "google.ac", - "google.ad", - "google.ae", - "google.al", - "google.am", - "google.as", - "google.at", - "google.az", - "google.ba", - "google.be", - "google.bf", - "google.bg", - "google.bi", - "google.bj", - "google.bs", - "google.bt", - "google.by", - "google.ca", - "google.cd", - "google.cf", - "google.cg", - "google.ch", - "google.ci", - "google.cl", - "google.cm", - "google.co.ao", - "google.co.bw", - "google.co.ck", - "google.co.cr", - "google.co.id", - "google.co.il", - "google.co.in", - "google.co.jp", - "google.co.ke", - "google.co.kr", - "google.co.ls", - "google.co.ma", - "google.co.mz", - "google.co.nz", - "google.co.th", - "google.co.tz", - "google.co.ug", - "google.co.uk", - "google.co.uz", - "google.co.ve", - "google.co.vi", - "google.co.za", - "google.co.zm", - "google.co.zw", - "google.com", - "google.com.af", - "google.com.ag", - "google.com.ai", - "google.com.ar", - "google.com.au", - "google.com.bd", - "google.com.bh", - "google.com.bn", - "google.com.bo", - "google.com.br", - "google.com.bz", - "google.com.co", - "google.com.cu", - "google.com.cy", - "google.com.do", - "google.com.ec", - "google.com.eg", - "google.com.et", - "google.com.fj", - "google.com.gh", - "google.com.gi", - "google.com.gt", - "google.com.hk", - "google.com.jm", - "google.com.kh", - "google.com.kw", - "google.com.lb", - "google.com.ly", - "google.com.mm", - "google.com.mt", - "google.com.mx", - "google.com.my", - "google.com.na", - "google.com.ng", - "google.ng", - "google.com.nf", - "google.com.ni", - "google.com.np", - "google.com.om", - "google.com.pa", - "google.com.pe", - "google.com.pg", - "google.com.ph", - "google.com.pk", - "google.com.pr", - "google.com.py", - "google.com.qa", - "google.com.sa", - "google.com.sb", - "google.com.sg", - "google.com.sl", - "google.com.sv", - "google.com.tj", - "google.com.tr", - "google.com.tw", - "google.com.ua", - "google.com.uy", - "google.com.vc", - "google.com.vn", - "google.cat", - "google.cn", - "google.cv", - "google.cz", - "google.de", - "google.dj", - "google.dk", - "google.dm", - "google.dz", - "google.ee", - "google.es", - "google.fi", - "google.fm", - "google.fr", - "google.ga", - "google.ge", - "google.gg", - "google.gl", - "google.gm", - "google.gp", - "google.gr", - "google.gy", - "google.hn", - "google.hr", - "google.ht", - "google.hu", - "google.ie", - "google.im", - "google.iq", - "google.is", - "google.it", - "google.je", - "google.jo", - "google.kg", - "google.ki", - "google.kz", - "google.la", - "google.li", - "google.lk", - "google.lt", - "google.lu", - "google.lv", - "google.md", - "google.me", - "google.mg", - "google.mk", - "google.ml", - "google.mn", - "google.ms", - "google.mu", - "google.mv", - "google.mw", - "google.ne", - "google.nl", - "google.no", - "google.nr", - "google.nu", - "google.pl", - "google.pn", - "google.ps", - "google.pt", - "google.ro", - "google.rs", - "google.ru", - "google.rw", - "google.sc", - "google.se", - "google.sh", - "google.si", - "google.sk", - "google.sm", - "google.sn", - "google.so", - "google.sr", - "google.st", - "google.td", - "google.tg", - "google.tk", - "google.tl", - "google.tm", - "google.tn", - "google.to", - "google.tt", - "google.vg", - "google.vu", - "google.ws" - ] + "description": "Unique reference to a place on a Google Map. Either dataId or placeId should be set.", + "wireName": "placeId" }, "hl": { "type": "string", @@ -6704,224 +6770,297 @@ export const ENDPOINTS = { "yo", "zu" ] + }, + "sortBy": { + "type": "string", + "description": "Parameter used for sorting and refining results.", + "wireName": "sortBy", + "enum": [ + "mostRelevant", + "newestFirst", + "ratingHigh", + "ratingLow" + ] + }, + "topicId": { + "type": "string", + "description": "Defines the ID of the topic you want to use for filtering reviews.", + "wireName": "topicId" + }, + "nextPageToken": { + "type": "string", + "description": "Defines the next page token. It is used for retrieving the next page results.", + "wireName": "nextPageToken" } } }, - "google-maps-posts": { - "slug": "google-maps-posts", - "title": "Google Maps Posts API", - "description": "The Google Maps Posts API provides access to posts (offers, events, announcements) published by businesses on their Google Maps listings, identified by data ID or place ID.", - "category": "Google Maps", + "google-news": { + "slug": "google-news", + "title": "Google News API", + "description": "Real-time access to structured Google News results with a high success rate at scale.", + "category": "Google SERP", "method": "GET", - "path": "/scrape/google-maps/posts", + "path": "/scrape/google/news", "cost": 10, "required": [], "properties": { - "dataId": { - "type": "string", - "description": "Google Maps data ID.", - "wireName": "dataId", - "default": "0x873312ae759b4d15:0x1f38a9bec9912029" - }, - "placeId": { + "q": { "type": "string", - "description": "Unique reference to a place on a Google Map. Either dataId or placeId should be set.", - "wireName": "placeId" + "description": "Free-text query as used on news.google.com. Not allowed with `topicToken`, `storyToken`, or `publicationToken`.", + "wireName": "q" }, - "hl": { + "gl": { "type": "string", - "description": "The two-letter language code for the language you want to use for the search.", - "wireName": "hl", + "description": "The two-letter country code for the country you want to limit the search to.", + "wireName": "gl", "enum": [ + "ac", "af", - "ak", - "sq", - "ws", - "am", + "al", + "dz", + "as", + "ad", + "ao", + "ai", + "aq", + "ag", "ar", - "hy", + "am", + "aw", + "au", + "at", "az", - "eu", - "be", - "bem", - "bn", - "bh", - "xx-bork", "bs", + "bh", + "bd", + "bb", + "by", + "be", + "bz", + "bj", + "bm", + "bt", + "bo", + "ba", + "bw", + "bv", "br", + "io", + "bn", "bg", - "bt", - "km", + "bf", + "bi", + "kh", + "cm", "ca", - "chr", - "ny", - "zh-cn", - "zh-tw", - "zh-hk", + "cv", + "ky", + "cf", + "td", + "cl", + "cn", + "cx", + "cc", "co", + "km", + "cg", + "cd", + "ck", + "cr", + "ci", "hr", - "cs", - "da", - "nl", - "xx-elmer", - "en", - "eo", - "et", + "cu", + "cy", + "cz", + "dk", + "dj", + "dm", + "do", + "ec", + "eg", + "sv", + "gq", + "er", "ee", + "et", + "fk", "fo", - "tl", - "fil", + "fj", "fi", "fr", - "fy", - "gaa", - "gl", - "ka", + "gf", + "pf", + "tf", + "ga", + "gm", + "ge", + "gg", "de", - "el", - "kl", - "gn", + "gh", + "gi", + "gr", + "gl", + "gd", + "gp", "gu", - "xx-hacker", + "gt", + "gn", + "gw", + "gy", "ht", - "ha", - "haw", - "iw", - "he", - "hi", + "hm", + "va", + "hn", + "hk", "hu", + "im", "is", - "ig", + "in", "id", - "ia", - "ga", + "ir", + "iq", + "ie", + "il", "it", - "ja", - "jw", - "kn", - "kk", - "rw", - "rn", - "xx-klingon", + "je", + "jm", + "jp", + "jo", + "kz", + "ke", + "ki", + "kp", + "kr", + "kw", "kg", - "ko", - "kri", - "ku", - "ckb", - "ky", - "lo", "la", "lv", - "ln", + "lb", + "ls", + "lr", + "ly", + "li", "lt", - "loz", - "lg", - "ach", + "lu", + "me", + "mo", "mk", "mg", + "mw", "my", + "mv", "ml", "mt", - "mv", - "mi", + "mh", + "mq", "mr", - "mfe", - "mo", + "mu", + "yt", + "mx", + "fm", + "md", + "mc", "mn", "ms", - "sr-me", + "ma", + "mz", + "mm", + "na", + "nr", + "np", + "nl", + "an", + "nc", + "nz", + "ni", "ne", - "pcm", - "nso", + "ng", + "nu", + "nf", + "mp", "no", - "nn", - "oc", - "or", "om", + "pk", + "pw", "ps", - "fa", - "xx-pirate", + "pa", + "pg", + "py", + "pe", + "ph", + "pn", "pl", "pt", - "pt-br", - "pt-pt", - "pa", - "qu", + "pr", + "qa", + "re", "ro", - "rm", - "nyn", "ru", - "gd", - "sr", + "rw", "sh", + "kn", + "lc", + "pm", + "vc", + "ws", + "sm", "st", - "tn", - "crs", + "sa", "sn", - "sd", - "si", - "sk", + "rs", + "sc", "sl", + "sg", + "sk", + "si", + "sb", "so", + "za", + "gs", "es", - "es-419", - "su", - "sw", - "sv", - "tg", - "ta", - "tt", - "te", + "lk", + "sd", + "sr", + "sj", + "sz", + "se", + "ch", + "sy", + "tw", + "tj", + "tz", "th", - "ti", + "tl", + "tg", + "tk", "to", - "lua", - "tum", + "tt", + "tn", "tr", - "tk", - "tw", + "tm", + "tc", + "tv", "ug", + "ua", + "ae", "uk", - "ur", + "gb", + "us", + "um", + "uy", "uz", "vu", + "ve", + "vn", + "vg", "vi", - "cy", - "wo", - "xh", - "yi", - "yo", - "zu" + "wf", + "eh", + "ye", + "zm", + "zw" ] }, - "nextPageToken": { - "type": "string", - "description": "Defines the next page token. It is used for retrieving the next page results.", - "wireName": "nextPageToken" - } - } - }, - "google-maps-reviews": { - "slug": "google-maps-reviews", - "title": "Google Maps Reviews API", - "description": "The Google Maps Reviews API provides access to reviews from Google Maps, with options to specify the data ID, place ID, language, sorting parameters, and topic filters.", - "category": "Google Maps", - "method": "GET", - "path": "/scrape/google-maps/reviews", - "cost": 5, - "required": [], - "properties": { - "dataId": { - "type": "string", - "description": "Google Maps data ID.", - "wireName": "dataId", - "default": "0x873312ae759b4d15:0x1f38a9bec9912029" - }, - "placeId": { - "type": "string", - "description": "Unique reference to a place on a Google Map. Either dataId or placeId should be set.", - "wireName": "placeId" - }, "hl": { "type": "string", "description": "The two-letter language code for the language you want to use for the search.", @@ -7088,296 +7227,665 @@ export const ENDPOINTS = { "zu" ] }, - "sortBy": { + "topicToken": { "type": "string", - "description": "Parameter used for sorting and refining results.", - "wireName": "sortBy", - "enum": [ - "qualityScore", - "newestFirst", - "ratingHigh", - "ratingLow" - ] + "description": "Token for a Google News topic such as World, Business, or Technology. Not allowed with `q`, `storyToken`, or `publicationToken`.", + "wireName": "topicToken" }, - "topicId": { + "sectionToken": { "type": "string", - "description": "Defines the ID of the topic you want to use for filtering reviews.", - "wireName": "topicId" + "description": "Token for a sub-section under a topic, for example Business → Economy. Use only when `topicToken` or `publicationToken` is present.", + "wireName": "sectionToken" }, - "nextPageToken": { + "publicationToken": { "type": "string", - "description": "Defines the next page token. It is used for retrieving the next page results.", - "wireName": "nextPageToken" + "description": "Token for a specific publisher such as CNN or BBC. Not allowed with `q`, `storyToken`, or `topicToken`.", + "wireName": "publicationToken" + }, + "storyToken": { + "type": "string", + "description": "Token for a single news story cluster (the “Full coverage” page).", + "wireName": "storyToken" + }, + "so": { + "type": "string", + "description": "Sort order for articles in a story. Use only with storyToken.", + "wireName": "so", + "enum": [ + "0", + "1" + ] } } }, - "google-news": { - "slug": "google-news", - "title": "Google News API", - "description": "The Google News API offers real-time access to comprehensive news articles from Google, enabling users to fetch news based on specific queries, locations, publishers, and various filter options for tailored news feeds.", - "category": "Google SERP", + "google-scholar": { + "slug": "google-scholar", + "title": "Google Scholar API", + "description": "Provides real-time access to Google Scholar search results, including papers, citations, and related scholarly metadata.", + "category": "Google Scholar", "method": "GET", - "path": "/scrape/google/news", + "path": "/scrape/google/scholar", "cost": 10, - "required": [], + "required": [ + "q" + ], "properties": { "q": { "type": "string", - "description": "Free-text query as used on news.google.com. Not allowed with `topicToken`, `storyToken`, or `publicationToken`.", - "wireName": "q" + "description": "Search query. Supports Google Scholar search helpers such as `author:` and `source:`.", + "wireName": "q", + "default": "machine learning" }, - "gl": { + "hl": { "type": "string", - "description": "The two-letter country code for the country you want to limit the search to.", - "wireName": "gl", + "description": "The two-letter language code for the language you want to use for the search.", + "wireName": "hl", "enum": [ - "ac", "af", - "al", - "dz", - "as", - "ad", - "ao", - "ai", - "aq", - "ag", - "ar", + "ak", + "sq", + "ws", "am", - "aw", - "au", - "at", + "ar", + "hy", "az", - "bs", - "bh", - "bd", - "bb", - "by", + "eu", "be", - "bz", - "bj", - "bm", - "bt", - "bo", - "ba", - "bw", - "bv", - "br", - "io", + "bem", "bn", + "bh", + "xx-bork", + "bs", + "br", "bg", - "bf", - "bi", - "kh", - "cm", + "bt", + "km", "ca", - "cv", - "ky", - "cf", - "td", - "cl", - "cn", - "cx", - "cc", + "chr", + "ny", + "zh-cn", + "zh-tw", + "zh-hk", "co", - "km", - "cg", - "cd", - "ck", - "cr", - "ci", "hr", - "cu", - "cy", - "cz", - "dk", - "dj", - "dm", - "do", - "ec", - "eg", - "sv", - "gq", - "er", - "ee", + "cs", + "da", + "nl", + "xx-elmer", + "en", + "eo", "et", - "fk", + "ee", "fo", - "fj", + "tl", + "fil", "fi", "fr", - "gf", - "pf", - "tf", - "ga", - "gm", - "ge", - "gg", - "de", - "gh", - "gi", - "gr", + "fy", + "gaa", "gl", - "gd", - "gp", - "gu", - "gt", + "ka", + "de", + "el", + "kl", "gn", - "gw", - "gy", + "gu", + "xx-hacker", "ht", - "hm", - "va", - "hn", - "hk", + "ha", + "haw", + "iw", + "he", + "hi", "hu", - "im", "is", - "in", + "ig", "id", - "ir", - "iq", - "ie", - "il", + "ia", + "ga", "it", - "je", - "jm", - "jp", - "jo", - "kz", - "ke", - "ki", - "kp", - "kr", - "kw", + "ja", + "jw", + "kn", + "kk", + "rw", + "rn", + "xx-klingon", "kg", + "ko", + "kri", + "ku", + "ckb", + "ky", + "lo", "la", "lv", - "lb", - "ls", - "lr", - "ly", - "li", + "ln", "lt", - "lu", - "me", - "mo", + "loz", + "lg", + "ach", "mk", "mg", - "mw", "my", - "mv", "ml", "mt", - "mh", - "mq", + "mv", + "mi", "mr", - "mu", - "yt", - "mx", - "fm", - "md", - "mc", + "mfe", + "mo", "mn", "ms", - "ma", - "mz", - "mm", - "na", - "nr", - "np", - "nl", - "an", - "nc", - "nz", - "ni", + "sr-me", "ne", - "ng", - "nu", - "nf", - "mp", + "pcm", + "nso", "no", + "nn", + "oc", + "or", "om", - "pk", - "pw", "ps", - "pa", - "pg", - "py", - "pe", - "ph", - "pn", + "fa", + "xx-pirate", "pl", "pt", - "pr", - "qa", - "re", + "pt-br", + "pt-pt", + "pa", + "qu", "ro", + "rm", + "nyn", "ru", - "rw", + "gd", + "sr", "sh", - "kn", - "lc", - "pm", - "vc", - "ws", - "sm", "st", - "sa", + "tn", + "crs", "sn", - "rs", - "sc", - "sl", - "sg", - "sk", + "sd", "si", - "sb", + "sk", + "sl", "so", - "za", - "gs", "es", - "lk", - "sd", - "sr", - "sj", - "sz", - "se", - "ch", - "sy", - "tw", - "tj", - "tz", - "th", - "tl", + "es-419", + "su", + "sw", + "sv", "tg", - "tk", - "to", + "ta", "tt", - "tn", + "te", + "th", + "ti", + "to", + "lua", + "tum", "tr", - "tm", - "tc", - "tv", + "tk", + "tw", "ug", - "ua", - "ae", "uk", - "gb", - "us", - "um", - "uy", + "ur", "uz", "vu", - "ve", - "vn", - "vg", "vi", - "wf", - "eh", - "ye", - "zm", - "zw" + "cy", + "wo", + "xh", + "yi", + "yo", + "zu" + ] + }, + "lr": { + "type": "array", + "description": "The 'lr' parameter specifies the language of the websites to return results from. This parameter filters results based on the language of the web content.", + "wireName": "lr", + "items": { + "type": "string", + "enum": [ + "lang_ar", + "lang_hy", + "lang_bg", + "lang_ca", + "lang_cs", + "lang_da", + "lang_de", + "lang_el", + "lang_en", + "lang_es", + "lang_et", + "lang_tl", + "lang_fi", + "lang_fr", + "lang_hr", + "lang_hi", + "lang_hu", + "lang_id", + "lang_is", + "lang_it", + "lang_iw", + "lang_he", + "lang_ja", + "lang_ko", + "lang_lt", + "lang_lv", + "lang_nl", + "lang_no", + "lang_fa", + "lang_pl", + "lang_pt", + "lang_ro", + "lang_ru", + "lang_sk", + "lang_sl", + "lang_sr", + "lang_sv", + "lang_th", + "lang_tr", + "lang_uk", + "lang_vi", + "lang_zh-CN", + "lang_zh-TW" + ] + } + }, + "start": { + "type": "integer", + "description": "Result offset for pagination, where 0 is the first result.", + "wireName": "start" + }, + "num": { + "type": "integer", + "description": "Maximum number of results to return per page.", + "wireName": "num" + }, + "asYlo": { + "type": "integer", + "description": "Return results published from this year onward.", + "wireName": "asYlo", + "default": 2020 + }, + "asYhi": { + "type": "integer", + "description": "Return results published up to and including this year.", + "wireName": "asYhi", + "default": 2024 + }, + "scisbd": { + "type": "integer", + "description": "Sort results by date instead of relevance: 1 for abstracts only, 2 for everything. Omit for relevance sorting.", + "wireName": "scisbd" + }, + "cluster": { + "type": "string", + "description": "Unique article ID to look up all indexed versions of that article, as returned in a result's `versions.clusterId`.", + "wireName": "cluster" + }, + "cites": { + "type": "string", + "description": "Unique article ID to look up articles that cite it, as returned in a result's `citedBy.citesId`.", + "wireName": "cites" + }, + "asSdt": { + "type": "string", + "description": "Search type/filter. Pick a value below to search case law from a specific court, or use `0,5` for Articles (default) / `7` to include patents. Any comma-separated court-code combination Google Scholar accepts also works here as free text beyond this list.", + "wireName": "asSdt", + "default": "0,5", + "enum": [ + "2003", + "2006", + "2007", + "0,5", + "4,1", + "4,61", + "4,62", + "4,63", + "4,64", + "4,2", + "4,65", + "4,66", + "4,3", + "4,67", + "4,68", + "4,4", + "4,70", + "4,71", + "4,5", + "4,102", + "4,103", + "4,104", + "4,6", + "4,115", + "4,116", + "4,7", + "4,117", + "4,118", + "4,8", + "4,132", + "4,385", + "4,133", + "4,9", + "4,165", + "4,10", + "4,167", + "4,168", + "4,11", + "4,169", + "4,170", + "4,12", + "4,171", + "4,172", + "4,13", + "4,173", + "4,174", + "4,14", + "4,175", + "4,176", + "4,15", + "4,177", + "4,178", + "4,179", + "4,16", + "4,181", + "4,182", + "4,17", + "4,183", + "4,184", + "4,18", + "4,185", + "4,186", + "4,19", + "4,386", + "4,187", + "4,20", + "4,193", + "4,21", + "4,195", + "4,194", + "4,22", + "4,196", + "4,197", + "4,23", + "4,198", + "4,199", + "4,24", + "4,200", + "4,201", + "4,25", + "4,202", + "4,203", + "4,26", + "4,204", + "4,205", + "4,27", + "4,206", + "4,28", + "4,207", + "4,208", + "4,29", + "4,209", + "4,30", + "4,210", + "4,31", + "4,211", + "4,212", + "4,32", + "4,213", + "4,214", + "4,33", + "4,215", + "4,387", + "4,216", + "4,34", + "4,217", + "4,218", + "4,35", + "4,219", + "4,220", + "4,36", + "4,221", + "4,222", + "4,37", + "4,223", + "4,224", + "4,225", + "4,226", + "4,38", + "4,227", + "4,228", + "4,39", + "4,229", + "4,388", + "4,230", + "4,40", + "4,231", + "4,41", + "4,232", + "4,233", + "4,42", + "4,234", + "4,43", + "4,235", + "4,236", + "4,237", + "4,44", + "4,238", + "4,239", + "4,240", + "4,241", + "4,45", + "4,242", + "4,243", + "4,46", + "4,244", + "4,47", + "4,245", + "4,246", + "4,48", + "4,247", + "4,248", + "4,49", + "4,249", + "4,50", + "4,250", + "4,251", + "4,51", + "4,252", + "4,60", + "4,188", + "4,189", + "4,190", + "4,191", + "4,192", + "4,55", + "4,119,105,145,147,152,157,158,82,84,89,94,95,379", + "4,119,105", + "4,145", + "4,147", + "4,152", + "4,157", + "4,158", + "4,82,84,89,94,95", + "4,379", + "4,122,107,138,162,349,350,351,352,75,99,286,287,288,289,380", + "4,122,107", + "4,138", + "4,162", + "4,349", + "4,350", + "4,351", + "4,352", + "4,75,99,286,287,288,289", + "4,380", + "4,123,108,139,153,163,361,362,363,76,90,100,298,299,300", + "4,123,108", + "4,139", + "4,153", + "4,163", + "4,361", + "4,362", + "4,363", + "4,76,90,100,298,299,300", + "4,124,109,146,159,353,354,355,371,372,375,376,83,96,290,291,292,308,309,312,313", + "4,124,109", + "4,146", + "4,159", + "4,353", + "4,354", + "4,355", + "4,371", + "4,372", + "4,375", + "4,376", + "4,83,96,290,291,292,308,309,312,313", + "4,125,110,340,341,342,345,346,367,368,369,370,277,278,279,282,283,304,305,306,307", + "4,125,110", + "4,340", + "4,341", + "4,342", + "4,345", + "4,346", + "4,367", + "4,368", + "4,369", + "4,370", + "4,277,278,279,282,283,304,305,306,307", + "4,126,111,338,339,343,344,356,357,364,365,366,275,276,280,281,293,294,301,302,303,381", + "4,126,111", + "4,338", + "4,339", + "4,343", + "4,344", + "4,356", + "4,357", + "4,364", + "4,365", + "4,366", + "4,275,276,280,281,293,294,301,302,303", + "4,381", + "4,127,112,331,332,333,334,335,377,378,268,269,270,271,272,314,315", + "4,127,112", + "4,331", + "4,332", + "4,333", + "4,334", + "4,335", + "4,377", + "4,378", + "4,268,269,270,271,272,314,315", + "4,128,113,148,150,155,160,319,320,336,337,347,348,85,87,92,97,256,257,273,274,284,285,382", + "4,128,113", + "4,148", + "4,150", + "4,155", + "4,160", + "4,319", + "4,320", + "4,336", + "4,337", + "4,347", + "4,348", + "4,85,87,92,97,256,257,273,274,284,285", + "4,382", + "4,129,114,134,135,141,142,143,149,151,156,321,322,323,324,373,374,72,73,78,79,80,86,88,93,258,259,260,261,310,311,383", + "4,129,114", + "4,134", + "4,135", + "4,141", + "4,142", + "4,143", + "4,149", + "4,151", + "4,156", + "4,321", + "4,322", + "4,323", + "4,324", + "4,373", + "4,374", + "4,72,73,78,79,80,86,88,93,258,259,260,261,310,311", + "4,383", + "4,120,106,137,144,154,161,164,358,359,360,74,81,91,98,101,295,296,297,384", + "4,120,106", + "4,137", + "4,144", + "4,154", + "4,161", + "4,164", + "4,358", + "4,359", + "4,360", + "4,74,81,91,98,101,295,296,297", + "4,384", + "4,121,316,317,318,325,326,327,328,329,330,253,254,255,262,263,264,265,266,267", + "4,121", + "4,316", + "4,317", + "4,318", + "4,325", + "4,326", + "4,327", + "4,328", + "4,329", + "4,330", + "4,253,254,255,262,263,264,265,266,267", + "4,130,140,77", + "4,130", + "4,140", + "4,77", + "4,131" + ] + }, + "safe": { + "type": "string", + "description": "Adult content filtering option.", + "wireName": "safe", + "enum": [ + "active", + "off" ] }, + "filter": { + "type": "number", + "description": "Defines whether to enable or disable the filters for 'Similar Results' and 'Omitted Results'. Set to 1 (default) to enable these filters, or 0 to disable them.", + "wireName": "filter" + }, + "asVis": { + "type": "number", + "description": "Set to 1 to exclude citations from the results, or 0 (default) to include them.", + "wireName": "asVis" + }, + "asRr": { + "type": "number", + "description": "Set to 1 to return review articles only, or 0 (default) to return all articles.", + "wireName": "asRr" + } + } + }, + "google-scholar-cite": { + "slug": "google-scholar-cite", + "title": "Google Scholar Cite API", + "description": "Provides real-time access to Google Scholar citation formats and reference-manager export links for a single organic search result.", + "category": "Google Scholar", + "method": "GET", + "path": "/scrape/google/scholar-cite", + "cost": 10, + "required": [ + "q" + ], + "properties": { + "q": { + "type": "string", + "description": "The `resultId` of a Google Scholar organic result, as returned by the google/scholar endpoint.", + "wireName": "q", + "default": "EQ8shYj8Ai8J" + }, "hl": { "type": "string", "description": "The two-letter language code for the language you want to use for the search.", @@ -7543,42 +8051,13 @@ export const ENDPOINTS = { "yo", "zu" ] - }, - "topicToken": { - "type": "string", - "description": "Token for a Google News topic such as World, Business, or Technology. Not allowed with `q`, `storyToken`, or `publicationToken`.", - "wireName": "topicToken" - }, - "sectionToken": { - "type": "string", - "description": "Token for a sub-section under a topic, for example Business → Economy. Use only when `topicToken` or `publicationToken` is present.", - "wireName": "sectionToken" - }, - "publicationToken": { - "type": "string", - "description": "Token for a specific publisher such as CNN or BBC. Not allowed with `q`, `storyToken`, or `topicToken`.", - "wireName": "publicationToken" - }, - "storyToken": { - "type": "string", - "description": "Token for a single news story cluster (the “Full coverage” page).", - "wireName": "storyToken" - }, - "so": { - "type": "string", - "description": "Sort order for articles in a story. Use only with storyToken.", - "wireName": "so", - "enum": [ - "0", - "1" - ] } } }, "google-serp": { "slug": "google-serp", "title": "Google SERP API", - "description": "The Google SERP API provides real-time access to structured Google search results, offering no blocks or CAPTCHAs.", + "description": "The Google SERP API provides real-time access to structured Google search results with a high success rate at scale.", "category": "Google SERP", "method": "GET", "path": "/scrape/google/serp", @@ -8359,7 +8838,7 @@ export const ENDPOINTS = { "google-serp-light": { "slug": "google-serp-light", "title": "Google SERP Light API", - "description": "Google Light SERP API offers real-time access to essential search data, omitting extra-rich results for faster response times and lower costs.", + "description": "Google Light SERP API offers real-time access to Google search results parsed from the lightweight layout — organic results, AI Overview, answer box, knowledge graph, related questions and searches, inline images, local pack and search filters — for faster response times and lower costs.", "category": "Google SERP", "method": "GET", "path": "/scrape/google-light/serp", @@ -9092,7 +9571,7 @@ export const ENDPOINTS = { "google-shopping": { "slug": "google-shopping", "title": "Google Shopping API", - "description": "The Google Shopping API gives real-time access to structured product listings from Google Shopping, with no blocks or CAPTCHAs.", + "description": "The Google Shopping API gives real-time access to structured product listings from Google Shopping with a high success rate at scale.", "category": "Google SERP", "method": "GET", "path": "/scrape/google/shopping", @@ -15387,11 +15866,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, @@ -15411,7 +15921,7 @@ export const ENDPOINTS = { "slug": "redfin-listing", "title": "Redfin Listing Scraper API", "description": "The Redfin Listing Scraper API allows you to retrieve real estate listings from Redfin based on various search parameters.", - "category": "Redfin", + "category": "Real Estate", "method": "GET", "path": "/scrape/redfin/listing", "cost": 5, @@ -15422,7 +15932,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" }, @@ -16078,109 +16588,444 @@ export const ENDPOINTS = { "description": "The minimum transit score (1-100).", "wireName": "transportScores[transitScore]" }, - "transportScoresBikeScore": { - "type": "number", - "description": "The minimum bike score (1-100).", - "wireName": "transportScores[bikeScore]" + "transportScoresBikeScore": { + "type": "number", + "description": "The minimum bike score (1-100).", + "wireName": "transportScores[bikeScore]" + }, + "page": { + "type": "number", + "description": "The page number of the results to retrieve.", + "wireName": "page" + } + } + }, + "redfin-property": { + "slug": "redfin-property", + "title": "Redfin Property Scraper API", + "description": "The Redfin Property Scraper API allows users to retrieve detailed information about a specific property using its URL. It provides details such as property features, price, and agent contacts.", + "category": "Real Estate", + "method": "GET", + "path": "/scrape/redfin/property", + "cost": 5, + "required": [ + "url" + ], + "properties": { + "url": { + "type": "string", + "description": "The URL of the property on Redfin. Must be a valid Redfin property URL.", + "wireName": "url", + "default": "https://www.redfin.com/IL/Chicago/1322-S-Prairie-Ave-60605/unit-1106/home/12694628" + } + } + }, + "shopify-collections": { + "slug": "shopify-collections", + "title": "Shopify Collections Scraper API", + "description": "The Shopify Collections Scraper API allows users to retrieve information about collections in a Shopify store, including details such as title, handle, description, and image.", + "category": "E-commerce", + "method": "GET", + "path": "/scrape/shopify/collections", + "cost": 5, + "required": [ + "url" + ], + "properties": { + "url": { + "type": "string", + "description": "The URL of the Shopify store. For example, 'https://b2bdemoexperience.myshopify.com'.", + "wireName": "url", + "default": "https://b2bdemoexperience.myshopify.com" + }, + "limit": { + "type": "integer", + "description": "The maximum number of collections to retrieve. Must be between 1 and 250.", + "wireName": "limit", + "default": 10 + }, + "page": { + "type": "integer", + "description": "The page number of the results to retrieve. Must be a positive integer.", + "wireName": "page" + } + } + }, + "shopify-products": { + "slug": "shopify-products", + "title": "Shopify Products Scraper API", + "description": "The Shopify Products Scraper API allows users to retrieve product information from a Shopify store using the provided URL, with options to limit the results and filter by collection.", + "category": "E-commerce", + "method": "GET", + "path": "/scrape/shopify/products", + "cost": 5, + "required": [ + "url" + ], + "properties": { + "url": { + "type": "string", + "description": "The URL of the Shopify store. For example, 'https://b2bdemoexperience.myshopify.com'.", + "wireName": "url", + "default": "https://b2bdemoexperience.myshopify.com" + }, + "limit": { + "type": "integer", + "description": "The maximum number of products to retrieve. Must be between 1 and 250.", + "wireName": "limit", + "default": 1 + }, + "page": { + "type": "integer", + "description": "The page number of the results to retrieve. Must be a positive integer.", + "wireName": "page" + }, + "collection": { + "type": "string", + "description": "The handle of the collection to filter the products. Provide the collection handle as a string.", + "wireName": "collection" + } + } + }, + "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" + ] }, - "page": { - "type": "number", - "description": "The page number of the results to retrieve.", - "wireName": "page" + "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" } } }, - "redfin-property": { - "slug": "redfin-property", - "title": "Redfin Property Scraper API", - "description": "The Redfin Property Scraper API allows users to retrieve detailed information about a specific property using its URL. It provides details such as property features, price, and agent contacts.", - "category": "Redfin", + "walmart-product": { + "slug": "walmart-product", + "title": "Walmart Product Scraper API", + "description": "The Walmart Product Scraper API returns the full detail page of a single Walmart item, and optionally the offers of other sellers competing for the same product.", + "category": "E-commerce", "method": "GET", - "path": "/scrape/redfin/property", - "cost": 5, - "required": [ - "url" - ], + "path": "/scrape/walmart/product", + "cost": 10, + "required": [], "properties": { + "itemId": { + "type": "string", + "description": "Walmart item id, taken from a product URL or from the id field of the Walmart Search API response. On `walmart.com` it is numeric (for example `14977205582`), on `walmart.ca` an alphanumeric code (for example `6NZMJ5CW6MH2`). Required unless `url` is provided.", + "wireName": "itemId", + "default": "14977205582" + }, "url": { "type": "string", - "description": "The URL of the property on Redfin. Must be a valid Redfin property URL.", + "description": "A full Walmart product URL to scrape as is. When provided, it overrides `itemId` and the storefront is taken from the URL itself. Required unless `itemId` is provided.", "wireName": "url", - "default": "https://www.redfin.com/IL/Chicago/1322-S-Prairie-Ave-60605/unit-1106/home/12694628" + "default": "https://www.walmart.com/ip/Samsung-Galaxy-S25-Ultra-256GB-Unlocked-Android-Cell-Phone-with-200MP-Camera-Titanium-Blue/14977205582" + }, + "domain": { + "type": "string", + "description": "Walmart storefront the item belongs to. Each storefront has its own catalog, item ids, prices and currency, so an id from one storefront does not resolve on another. Ignored when `url` is provided. Default is `walmart.com`.", + "wireName": "domain", + "enum": [ + "walmart.com", + "walmart.ca" + ] + }, + "language": { + "type": "string", + "description": "Language of the product details. Availability depends on the storefront - `walmart.com` serves `en` and `es`, `walmart.ca` serves `en` and `fr`. A language the storefront does not support falls back to its default.", + "wireName": "language", + "default": "en", + "enum": [ + "en", + "es", + "fr" + ] + }, + "otherOffers": { + "type": "boolean", + "description": "Also collect the offers of other sellers competing for this item - each seller name, storefront, price, condition, shipping cost, delivery date and return policy. This takes an extra request to Walmart and costs 5 credits on top of the base 10, whether or not the item turns out to have competing sellers. How many competitors the item advertises, and the cheapest competing price, are returned in the `otherOffers` block whether the switch is on or off, so it can be left off until the count shows there is something to collect. Default is `false`.", + "wireName": "otherOffers" } } }, - "shopify-collections": { - "slug": "shopify-collections", - "title": "Shopify Collections Scraper API", - "description": "The Shopify Collections Scraper API allows users to retrieve information about collections in a Shopify store, including details such as title, handle, description, and image.", - "category": "Shopify", + "walmart-reviews": { + "slug": "walmart-reviews", + "title": "Walmart Reviews Scraper API", + "description": "The Walmart Reviews Scraper API returns the customer reviews of a single Walmart item, ten a page, with the sorting and filtering the product page itself offers.", + "category": "E-commerce", "method": "GET", - "path": "/scrape/shopify/collections", - "cost": 5, - "required": [ - "url" - ], + "path": "/scrape/walmart/reviews", + "cost": 10, + "required": [], "properties": { + "itemId": { + "type": "string", + "description": "Walmart item id, taken from a product URL or from the id field of the Walmart Search API response. On `walmart.com` it is numeric (for example `14977205582`), on `walmart.ca` an alphanumeric code (for example `6NZMJ5CW6MH2`). Required unless `url` is provided.", + "wireName": "itemId", + "default": "1028936148" + }, "url": { "type": "string", - "description": "The URL of the Shopify store. For example, 'https://b2bdemoexperience.myshopify.com'.", + "description": "A full Walmart product URL whose reviews to scrape. When provided, it overrides `itemId` and the storefront is taken from the URL itself. Required unless `itemId` is provided.", "wireName": "url", - "default": "https://b2bdemoexperience.myshopify.com" + "default": "https://www.walmart.com/ip/Restored-Apple-iPhone-14-Carrier-Unlocked-128-GB-Starlight-MPUN3LL-A-Refurbished/1028936148" }, - "limit": { - "type": "integer", - "description": "The maximum number of collections to retrieve. Must be between 1 and 250.", - "wireName": "limit", - "default": 10 + "domain": { + "type": "string", + "description": "Walmart storefront the item belongs to. Each storefront has its own catalog, item ids and review pool, so an id from one storefront does not resolve on another. Ignored when `url` is provided. Default is `walmart.com`.", + "wireName": "domain", + "enum": [ + "walmart.com", + "walmart.ca" + ] + }, + "language": { + "type": "string", + "description": "Language of the review page. Availability depends on the storefront - `walmart.com` serves `en` and `es`, `walmart.ca` serves `en` and `fr`. A language the storefront does not support falls back to its default. Reviews themselves are returned in the language their author wrote them in.", + "wireName": "language", + "default": "en", + "enum": [ + "en", + "es", + "fr" + ] }, "page": { "type": "integer", - "description": "The page number of the results to retrieve. Must be a positive integer.", - "wireName": "page" + "description": "Page of reviews to return, ten reviews a page. The response reports the last available page in `pagination.totalPages`, the next one in `pagination.nextPage`, and how many reviews the current filters select in `pagination.totalResults`. Note that only reviews carrying written text are paginated, so the ceiling follows `reviewsInformation.totalReviews` rather than the larger `reviewsInformation.totalRatings`. Default is `1`.", + "wireName": "page", + "default": 1 + }, + "sort": { + "type": "string", + "description": "Order of the returned reviews, named as the Walmart review page names it. Default is `mostRelevant`.", + "wireName": "sort", + "default": "mostRelevant", + "enum": [ + "mostRelevant", + "mostRecent", + "mostHelpful", + "highestRated", + "lowestRated", + "oldest" + ] + }, + "rating": { + "type": "integer", + "description": "Return only reviews carrying this star rating, from `1` to `5`. The Star rating group of the `filters` block lists the ratings this item actually has, each with the `value` to send here and a `count` of how many reviews to expect.", + "wireName": "rating" + }, + "aspectId": { + "type": "string", + "description": "Return only reviews mentioning one topic. Send the `value` of the topic you want, taken from the Frequent mentions group of the `filters` block in the response - given `{\"name\": \"Battery Life\", \"value\": \"6049\", \"count\": 8}` you send `6049`, and `count` is how many reviews to expect. **Only one topic per request**, Walmart rejects a list of them. Topics belong to the product rather than to Walmart: a phone offers Battery Life or Display, a coffee offers Flavor or Aroma, and some items offer none at all - so make an unfiltered request first and read the block, instead of reusing a topic id across products.", + "wireName": "aspectId" + }, + "condition": { + "type": "string", + "description": "Return only reviews written about one condition of the item. Send the `value` from the Condition group of the `filters` block - given `{\"name\": \"Restored: Like New\", \"value\": \"5\"}` you send `5`. **Only one condition per request.** This group appears for items Walmart sells in several conditions, and only when the request already names one: reach the variant through the `url` parameter with its `conditionGroupCode`, as in `https://www.walmart.com/ip/1028936148?conditionGroupCode=2`, and the block then lists the condition that variant carries. An item sold in a single condition has no such group, and no reviews to separate by it.", + "wireName": "condition" + }, + "verifiedPurchasesOnly": { + "type": "boolean", + "description": "Return only reviews left by customers whose purchase Walmart confirmed. Narrows the pool considerably, since most reviews are unverified or syndicated from the manufacturer.", + "wireName": "verifiedPurchasesOnly" } } }, - "shopify-products": { - "slug": "shopify-products", - "title": "Shopify Products Scraper API", - "description": "The Shopify Products Scraper API allows users to retrieve product information from a Shopify store using the provided URL, with options to limit the results and filter by collection.", - "category": "Shopify", + "walmart-search": { + "slug": "walmart-search", + "title": "Walmart Search Scraper API", + "description": "The Walmart Search Scraper API allows users to get search results from Walmart based on the specified query, category and storefront. This API enables searching for products on Walmart.", + "category": "E-commerce", "method": "GET", - "path": "/scrape/shopify/products", - "cost": 5, - "required": [ - "url" - ], + "path": "/scrape/walmart/search", + "cost": 10, + "required": [], "properties": { - "url": { + "q": { "type": "string", - "description": "The URL of the Shopify store. For example, 'https://b2bdemoexperience.myshopify.com'.", - "wireName": "url", - "default": "https://b2bdemoexperience.myshopify.com" + "description": "The search term for which to get the search results. It can be omitted only when `catId` is provided, to browse a whole category instead of searching.", + "wireName": "q", + "default": "coffee" }, - "limit": { - "type": "integer", - "description": "The maximum number of products to retrieve. Must be between 1 and 250.", - "wireName": "limit", - "default": 1 + "catId": { + "type": "string", + "description": "Walmart category id, taken from a category URL (for example `976759_1086446_1229651`). Combine it with `q` to search inside a category, or send it alone to browse the whole category. Required unless `q` is provided.", + "wireName": "catId" + }, + "domain": { + "type": "string", + "description": "Walmart storefront to search. Each storefront has its own catalog, prices and currency. Default is `walmart.com`.", + "wireName": "domain", + "enum": [ + "walmart.com", + "walmart.ca" + ] + }, + "language": { + "type": "string", + "description": "Language of the results. Availability depends on the storefront - `walmart.com` serves `en` and `es`, `walmart.ca` serves `en` and `fr`. A language the storefront does not support falls back to its default.", + "wireName": "language", + "default": "en", + "enum": [ + "en", + "es", + "fr" + ] + }, + "sort": { + "type": "string", + "description": "The sorting option for the search results.", + "wireName": "sort", + "default": "bestMatch", + "enum": [ + "bestMatch", + "priceLowToHigh", + "priceHighToLow", + "bestseller", + "highlyRated", + "newArrivals" + ] + }, + "url": { + "type": "string", + "description": "A full Walmart search or category URL to scrape as is. When provided, it overrides `q`, `catId` and the other search parameters, and the storefront is taken from the URL itself.", + "wireName": "url" }, "page": { "type": "integer", - "description": "The page number of the results to retrieve. Must be a positive integer.", + "description": "Page number for pagination (e.g., `1` for the first page, `2` for the second page, etc.). Walmart stops serving results after roughly page 10, returning an empty page beyond that.", "wireName": "page" }, - "collection": { + "minPrice": { + "type": "number", + "description": "Lower bound of the price range, in the storefront currency.", + "wireName": "minPrice" + }, + "maxPrice": { + "type": "number", + "description": "Upper bound of the price range, in the storefront currency.", + "wireName": "maxPrice" + }, + "deliveryType": { "type": "string", - "description": "The handle of the collection to filter the products. Provide the collection handle as a string.", - "wireName": "collection" + "description": "Keep only the products available with the selected fulfillment method. Default is `shipping`. Note that `pickup` is answered against one Walmart store, so an item in stock nationally can still be unavailable for `pickup` nearby - the response then reports that nothing matched the filters rather than that the query had no results.", + "wireName": "deliveryType", + "default": "shipping", + "enum": [ + "shipping", + "pickup" + ] + }, + "facet": { + "type": "string", + "description": "Walmart filter in the `name:value` form, for example `brand:Great Value`. Every value available for a query is listed in the facets block of the response, each one carrying the exact string to send back here, so a first unfiltered request tells you what can be filtered on. To combine filters, put each one on its own line. The double-pipe form Walmart's own urls use `brand:Great Value||retailer_type:Walmart` is also accepted.", + "wireName": "facet", + "default": "brand:Great Value\nretailer_type:Walmart" } } }, "web-scraping": { "slug": "web-scraping", "title": "Web Scraping API", - "description": "If you're tired of fiddling with proxies, headless browsers and captchas, it's time to use Scrape-it.cloud. Send the desired URL and we'll return an HTML response. Work without headaches and worries about blocking.", + "description": "Web Scraping API allows you to scrape web pages without the hassle of managing proxies and headless browsers. Simply send the URL and get the HTML response in return.", "category": "Web Scraping", "method": "POST", "path": "/scrape/web", @@ -16474,6 +17319,124 @@ 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). The response echoes it back as `pagination.start`. Cannot be combined with `nextPageToken`.", + "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. The response echoes it back as `pagination.num`.", + "wireName": "num" + }, + "nextPageToken": { + "type": "string", + "description": "Opaque cursor for the next page, taken verbatim from `pagination.nextPageToken` of the previous response. It carries both the offset and the page size, so passing it alone continues the feed where the last response ended. Keep the other filters (`sortBy`, `rating`, `languageCode`, `query`, `notRecommended`) identical across pages. Use either this or `start`, not both. Paginate until `pagination.hasNextPage` is false.", + "wireName": "nextPageToken" + } + } + }, "yelp-search": { "slug": "yelp-search", "title": "Yelp Search Scraper API", @@ -18038,7 +19001,7 @@ export const ENDPOINTS = { "slug": "zillow-listing", "title": "Zillow Listing Scraper API", "description": "The Zillow Listing Scraper API lets you retrieve property listings from Zillow.com based on various search parameters.", - "category": "Zillow", + "category": "Real Estate", "method": "GET", "path": "/scrape/zillow/listing", "cost": 5, @@ -18300,7 +19263,7 @@ export const ENDPOINTS = { }, "moveInDate": { "type": "string", - "description": "The desired move-in date.", + "description": "The desired move-in date in `YYYY-MM-DD` format.", "wireName": "moveInDate" }, "mustHaveGarage": { @@ -18329,7 +19292,7 @@ export const ENDPOINTS = { "slug": "zillow-property", "title": "Zillow Property Scraper API", "description": "The Zillow Property Scraper API lets you retrieve detailed information about a specific property on Zillow.com using its URL. It provides details such as property features, price, and agent contacts.", - "category": "Zillow", + "category": "Real Estate", "method": "GET", "path": "/scrape/zillow/property", "cost": 5,