# Trip Hotels Search Scraper (`stealth_mode/trip-hotels-search-scraper`) Actor

Scrape hotel search results from Trip.com including pricing, ratings, room details, promotions, and location data. Ideal for travel analysts, OTA developers, and hospitality researchers needing structured hotel inventory data at scale.

- **URL**: https://apify.com/stealth\_mode/trip-hotels-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, Travel
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Trip.com Hotels Search Scraper: Extract Hotel Listings & Pricing Data

---

### What Is Trip.com?

Trip.com is one of Asia's largest online travel agencies, offering hotel bookings across hundreds of thousands of properties worldwide. Its search results pages contain rich, structured data — pricing, availability, ratings, promotions, and room types — that is valuable for competitive analysis, market research, and travel tech applications. The **Trip.com Hotels Search Scraper** automates extraction of this data from search listing pages, bypassing the need for manual collection.

---

### Overview

This scraper targets Trip.com hotel search result URLs and extracts up to 200+ hotel records per search page. It captures everything from basic hotel info to real-time pricing, member discounts, and promotional labels.

**Best suited for:**
- Travel aggregators building hotel price comparison tools
- Revenue managers benchmarking competitor pricing
- Data analysts studying hotel availability and demand patterns
- Developers populating travel databases or dashboards

---

### Input Format

```json
{
  "urls": [
    "https://www.trip.com/hotels/list?city=58&provinceId=0&countryId=1&checkIn=2026-05-23&checkOut=2026-05-24&lat=0&lon=0&districtId=0&barCurr=VND&searchType=CT&searchValue=undefined&crn=1&adult=2&children=0&searchBoxArg=t&ctm_ref=ix_sb_dl&travelPurpose=0&domestic=true"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

#### Field Reference

| Field | Type | Default | Description |
|---|---|---|---|
| `urls` | `array` | — | One or more Trip.com hotel search result URLs. Each URL should be a `/hotels/list` page with your desired filters (city, dates, guests, currency, etc.) applied. You can add URLs one by one or paste a prepared list in bulk. |
| `ignore_url_failures` | `boolean` | `true` | If `true`, the scraper continues processing remaining URLs when one fails, instead of stopping the entire run. Recommended for bulk jobs. |
| `max_items_per_url` | `integer` | `20` | Maximum number of hotel records to collect per URL. Set to `200` to capture a full search results page. |

#### Building the Right URL

Navigate to `trip.com/hotels`, apply your filters (city, check-in/out dates, guest count, currency), then copy the URL from your browser. Key query parameters:

| Parameter | Meaning |
|---|---|
| `city` | Trip.com city ID |
| `checkIn` / `checkOut` | Stay dates in `YYYY-MM-DD` format |
| `barCurr` | Display currency (e.g., `VND`, `USD`) |
| `adult` / `children` | Guest count |
| `crn` | Number of rooms |

***

### Output Format

**Sample output**

```json
{
  "hotel_basic_info": {
    "hotel_id": 433361,
    "master_hotel_id": 433361,
    "hotel_name": "Hotel COZI Harbour View",
    "hotel_en_name": "Hotel COZI Harbour View",
    "hotel_img": "https://ak-d.tripcdn.com/images/1mc5i12000f0tpyqz3209_R_250_250_R5_D.jpg_.webp",
    "hotel_img_round_load": [
      {
        "position": 5,
        "group": 1,
        "url": "https://ak-d.tripcdn.com/images/1mc5i12000f0tpyqz3209_R_250_250_R5_D.jpg_.webp",
        "picture_id": 1103866945
      },
      {
        "position": 5,
        "group": 2,
        "url": "https://ak-d.tripcdn.com/images/1mc5i12000f0tpyqz3209_R_600_600_R5_D.jpg_.webp",
        "picture_id": 1103866945
      }
    ],
    "hotel_address": "No.163 Wai Yip Street",
    "super_star": 1,
    "favority_count": 64711,
    "browse_count": 0,
    "top_recommend": false,
    "top_recommend_reason": "",
    "pay_type": 1,
    "is_ad_hotel": false,
    "ad_traceid": "H4sIAAAAAAAA/+O4uWrb9KfGAowGXB6MAYxRLIZWphYJTAWsHYxyExgZZzAyAQB8bqzKIgAAAA==",
    "is_ad_slot": false,
    "star_icon": "",
    "hour_room_hours": "",
    "hour_earliest_arrive_time": "",
    "hour_latest_arrive_time": "",
    "price": 48,
    "origin_price": "",
    "online_tax_price": "54",
    "online_and_shop_tax_price": "53.84",
    "is_encrypt": false,
    "pay_at_hotel_tax": 0,
    "is_collected": false,
    "is_full_room": false,
    "is_full_room_can_fold": false,
    "hotel_close_info": null,
    "can_not_be_ordered_info": {
      "message_bold": "",
      "cannot_reserve_code": ""
    },
    "is_price_mask": 0,
    "medal_info": {
      "medal_type": 0,
      "description": "",
      "badge_hover": ""
    },
    "wow_hotel": false,
    "last_booking_time_remark": "",
    "addition_texts": [
      {
        "addition_name": "ChildrenNormalTag",
        "addition_text": ""
      },
      {
        "addition_name": "LowestPriceWillSellout",
        "addition_text": "Our last 1!"
      }
    ],
    "is_thirty_free_cancel": false,
    "open_year": "2018",
    "guest_info_entity": {
      "child_age": [],
      "child_bed": [],
      "child_meal": [],
      "child_type": [],
      "guest_hover": "",
      "child_count": 0,
      "adult_count": 2
    },
    "sign_in_note": "",
    "hide_price": false,
    "price_explanation": "Total (incl. taxes & fees): US$54",
    "pay_at_hotel_tax_text": "",
    "hotel_multi_imgs": [
      [
        {
          "position": 28,
          "group": 1,
          "url": "https://ak-d.tripcdn.com/images/1mc5i12000f0tpyqz3209_R_600_600_R5_D.jpg_.webp",
          "picture_id": 1103866945
        },
        {
          "position": 29,
          "group": 1,
          "url": "https://ak-d.tripcdn.com/images/1mc5i12000f0tpyqz3209_R_600_600_R5_D.jpg_.webp",
          "picture_id": 1103866945
        }
      ],
      [
        {
          "position": 28,
          "group": 1,
          "url": "https://ak-d.tripcdn.com/images/0200v1200084qrlie2218_R_600_600_R5_D.jpg_.webp",
          "picture_id": 265015767
        },
        {
          "position": 29,
          "group": 1,
          "url": "https://ak-d.tripcdn.com/images/0200v1200084qrlie2218_R_600_600_R5_D.jpg_.webp",
          "picture_id": 265015767
        }
      ],
      [
        {
          "position": 28,
          "group": 1,
          "url": "https://ak-d.tripcdn.com/images/0586m12000csozlxa2C8B_R_600_600_R5_D.jpg_.webp",
          "picture_id": 710591917
        },
        {
          "position": 29,
          "group": 1,
          "url": "https://ak-d.tripcdn.com/images/0586m12000csozlxa2C8B_R_600_600_R5_D.jpg_.webp",
          "picture_id": 710591917
        }
      ],
      [
        {
          "position": 28,
          "group": 1,
          "url": "https://ak-d.tripcdn.com/images/200j16000001051hf4D36_R_600_600_R5_D.jpg_.webp",
          "picture_id": 358605600
        },
        {
          "position": 29,
          "group": 1,
          "url": "https://ak-d.tripcdn.com/images/200j16000001051hf4D36_R_600_600_R5_D.jpg_.webp",
          "picture_id": 358605600
        }
      ],
      [
        {
          "position": 28,
          "group": 1,
          "url": "https://ak-d.tripcdn.com/images/1mc1612000f0tqm9s6985_R_600_600_R5_D.jpg_.webp",
          "picture_id": 1103870289
        },
        {
          "position": 29,
          "group": 1,
          "url": "https://ak-d.tripcdn.com/images/1mc1612000f0tqm9s6985_R_600_600_R5_D.jpg_.webp",
          "picture_id": 1103870289
        }
      ]
    ],
    "hotel_names": [
      "Hotel COZI Harbour View"
    ],
    "need_highlight": false
  },
  "hotel_decorate_info": {},
  "hotel_feature_tag_info": [],
  "hotel_star_info": {
    "star": 4,
    "is_license_star": false,
    "star_type": 1
  },
  "comment_info": {
    "comment_score": "8.1",
    "score_max": "10",
    "comment_description": "Very good",
    "commenter_number": "8,190 reviews",
    "sub_score": [
      {
        "number": "8.3",
        "score_max": "10",
        "content": "Location",
        "score_avg": "8.8",
        "score_type": 2
      },
      {
        "number": "8.3",
        "score_max": "10",
        "content": "Cleanliness",
        "score_avg": "8.6",
        "score_type": 3
      },
      {
        "number": "8.2",
        "score_max": "10",
        "content": "Service",
        "score_avg": "8.6",
        "score_type": 4
      },
      {
        "number": "7.7",
        "score_max": "10",
        "content": "Amenities",
        "score_avg": "8.2",
        "score_type": 5
      }
    ],
    "t_a_rating_info": null,
    "ta_alt": "",
    "ta_url": "",
    "ta_count": 0,
    "ta_review": ""
  },
  "room_info": {
    "room_id": "1379077903",
    "shadow_id": 0,
    "name": "",
    "adult": 0,
    "physical_room_name": "COZi Superior Twin Room",
    "is_booking": false,
    "bed": {
      "list": [
        "ic_new_twobeds"
      ],
      "content_list_hover": [],
      "content_list": [
        "2 single beds"
      ],
      "cpx_bed_info": {
        "title": "",
        "bed_detail": [
          {
            "room_name": "Bedroom 1",
            "detail": [
              "2 single beds(1m wide)"
            ]
          }
        ]
      }
    },
    "is_ran_of_house": false,
    "house_type_info": {
      "rent_type": -1,
      "property_type": -1
    }
  },
  "position_info": {
    "city_id": 58,
    "city_name": "Hong Kong",
    "city_name_en": "Hong Kong",
    "position_desc": "Kwun Tong  Area | Near Kai Tak Sports Park",
    "position_name": "Kwun Tong  Area|Near Kai Tak Sports Park",
    "position_info": "5.8 km from center",
    "transport": {},
    "coordinate": {
      "city_id": 58,
      "lat": 22.31214127640784,
      "lng": 114.2195864464785,
      "is_oversea": false,
      "coordinate_type": 2
    },
    "zone_names": [
      "Kwun Tong  Area"
    ],
    "is_oversea": false,
    "map_coordinate": [
      {
        "coordinate_type": 3,
        "latitude": "22.315545",
        "longitude": "114.230876",
        "gcoord_type": "BD09"
      },
      {
        "coordinate_type": 2,
        "latitude": "22.31214127640784",
        "longitude": "114.2195864464785",
        "gcoord_type": "WGS84"
      },
      {
        "coordinate_type": 1,
        "latitude": "22.312137",
        "longitude": "114.219582",
        "gcoord_type": "WGS84"
      }
    ],
    "linear_dist": 5.7794409
  },
  "min_room_info": {
    "room_id": "1379077903",
    "room_name": "",
    "shadow_id": 0,
    "encrypted_room_id": 0
  },
  "tags": [
    {
      "name": "Great sea view|Easy to get around",
      "tag_title": "OneSentenceComment",
      "tag_id": 0,
      "tag_desc": "",
      "value": "",
      "sub_tag_id": 0,
      "tag_position": 0,
      "label_extensions": [],
      "tag_template_id": 0
    }
  ],
  "sale_room": {
    "person": 2,
    "meal_num": 0,
    "meal_type": 4
  },
  "promotion": [],
  "discount_labels": [],
  "special_price_labels": [],
  "member_grade": {},
  "trace": {
    "trace_log_id": "917a81bbe6b76",
    "timestamp": "1779507763170"
  },
  "query_type": "NORMAL",
  "is_combined_room": false,
  "combined_room_quality": null,
  "extras": {
    "c_o_m_p_e_n_s_a_t_e__f_i_l_t_e_r__i_t_e_m_s__i_n_d_e_x": null,
    "property_currency": "HKD",
    "property_currency_exchange": "0.86741",
    "price_calendar_recommend": null,
    "child_price_room": null
  },
  "hotel_name_tags": [],
  "room_tags": {
    "advantage_tags": [],
    "promotion_tags": [],
    "discount_percent_tags": [],
    "encourage_tags": [
      {
        "tag_title": "Only 1 left at this price",
        "tag_template_id": 10009,
        "tag_id": 12213,
        "tag_position": 288
      }
    ],
    "vrbo_tags": [],
    "no_standard_tags": []
  },
  "highlights_module": {},
  "special_hotel_unstaify_text": "",
  "unsatisfied_room_filters": null,
  "from_url": "https://www.trip.com/hotels/list?city=58&provinceId=0&countryId=1&checkIn=2026-05-23&checkOut=2026-05-24&lat=0&lon=0&districtId=0&barCurr=VND&searchType=CT&searchValue=undefined&crn=1&adult=2&children=0&searchBoxArg=t&ctm_ref=ix_sb_dl&travelPurpose=0&domestic=true"
}
```

Each hotel record contains the following data groups:

#### Hotel Identity & Display

| Field | Meaning |
|---|---|
| `Hotel Basic Info` | Core identifiers: hotel ID, name, address, star rating, property type |
| `Hotel Decorate Info` | Visual branding elements such as badge labels, highlight banners, and UI decoration metadata |
| `Hotel Name Tags` | Short tags displayed alongside the hotel name (e.g., "Newly opened", "Verified") |
| `Hotel Star Info` | Official star classification and any platform-specific quality tier |
| `Hotel Feature Tag Info` | Feature highlights surfaced in search (e.g., "Free breakfast", "Pool", "Airport shuttle") |

#### Pricing & Promotions

| Field | Meaning |
|---|---|
| `Min Room Info` | Lowest available room price for the search dates, used as the displayed starting price |
| `Sale Room` | The specific room type associated with the minimum/sale price |
| `Promotion` | Active promotional offers attached to the listing (e.g., flash sales, early bird) |
| `Discount Labels` | Labels indicating percentage or fixed discounts applied to the rate |
| `Special Price Labels` | UI labels for special pricing conditions (e.g., "Tonight only", "Limited rooms") |
| `Member Grade` | Member-exclusive pricing tier and any loyalty discount applied |

#### Reviews & Ratings

| Field | Meaning |
|---|---|
| `Comment Info` | Aggregated guest review score, review count, and sentiment summary |

#### Rooms & Availability

| Field | Meaning |
|---|---|
| `Room Info` | Available room types, bed configurations, and key amenities |
| `Room Tags` | Short descriptive tags per room (e.g., "Non-smoking", "City view") |
| `Is Combined Room` | Boolean flag — whether the listing combines multiple room types into one display unit |
| `Combined Room Quality` | Quality score or tier when combined room logic is applied |
| `Unsatisfied Room Filters` | Filters the user applied that this hotel does not fully match (transparency field) |

#### Location

| Field | Meaning |
|---|---|
| `Position Info` | Coordinates, district, and proximity metadata for map rendering |

#### Content & UX Modules

| Field | Meaning |
|---|---|
| `Highlights Module` | Curated highlight section shown in the card (e.g., top amenities, recent review snippet) |
| `Special Hotel Unstaify Text` | Platform-generated text for hotels that partially match search criteria |
| `Tags` | General-purpose tags associated with the hotel record |
| `Extras` | Additional metadata not covered by standard fields |

#### Analytics & Tracking

| Field | Meaning |
|---|---|
| `Trace` | Internal tracking metadata used for analytics and attribution |
| `Query Type` | Classification of the search query that returned this result |

***

### How to Use

1. **Build your search URL** — Go to Trip.com, set your destination, dates, and guest count, then copy the full URL from the browser address bar.
2. **Paste into `urls`** — Add one or more search URLs to the array.
3. **Set item limit** — Use `max_items_per_url: 200` for full-page extraction; lower values work for sampling.
4. **Run the scraper** — Start the actor and monitor progress in the run log.
5. **Export** — Download results as JSON, CSV, or Excel.

**Tips:**

- Always include both `checkIn` and `checkOut` in the URL — pricing data will not appear for dateless searches.
- Use `barCurr=USD` or your target currency to normalize pricing output.
- For multi-city studies, create one URL per city and add all to the `urls` array.
- Enable `ignore_url_failures: true` for any run with more than one URL.

***

### Use Cases & Business Value

- **Price monitoring:** Track nightly rate fluctuations across hotels in a destination over time
- **Competitive benchmarking:** Compare star ratings, review scores, and promotions across properties
- **Inventory analysis:** Identify availability patterns and peak pricing windows
- **Travel app development:** Feed structured hotel data into booking tools, dashboards, or recommendation engines

***

### Conclusion

The **Trip.com Hotels Search Scraper** delivers a complete snapshot of hotel search results — from base pricing and room availability to promotions and guest ratings — in a single structured dataset. It is a practical tool for anyone working with travel market data at scale. Configure your search URL, set your limits, and start extracting.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the hotels list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.trip.com/hotels/list?city=58&provinceId=0&countryId=1&checkIn=2026-05-23&checkOut=2026-05-24&lat=0&lon=0&districtId=0&barCurr=VND&searchType=CT&searchValue=undefined&crn=1&adult=2&children=0&searchBoxArg=t&ctm_ref=ix_sb_dl&travelPurpose=0&domestic=true"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.trip.com/hotels/list?city=58&provinceId=0&countryId=1&checkIn=2026-05-23&checkOut=2026-05-24&lat=0&lon=0&districtId=0&barCurr=VND&searchType=CT&searchValue=undefined&crn=1&adult=2&children=0&searchBoxArg=t&ctm_ref=ix_sb_dl&travelPurpose=0&domestic=true"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/trip-hotels-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://www.trip.com/hotels/list?city=58&provinceId=0&countryId=1&checkIn=2026-05-23&checkOut=2026-05-24&lat=0&lon=0&districtId=0&barCurr=VND&searchType=CT&searchValue=undefined&crn=1&adult=2&children=0&searchBoxArg=t&ctm_ref=ix_sb_dl&travelPurpose=0&domestic=true"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/trip-hotels-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.trip.com/hotels/list?city=58&provinceId=0&countryId=1&checkIn=2026-05-23&checkOut=2026-05-24&lat=0&lon=0&districtId=0&barCurr=VND&searchType=CT&searchValue=undefined&crn=1&adult=2&children=0&searchBoxArg=t&ctm_ref=ix_sb_dl&travelPurpose=0&domestic=true"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/trip-hotels-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=stealth_mode/trip-hotels-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Trip Hotels Search Scraper",
        "description": "Scrape hotel search results from Trip.com including pricing, ratings, room details, promotions, and location data. Ideal for travel analysts, OTA developers, and hospitality researchers needing structured hotel inventory data at scale.",
        "version": "0.0",
        "x-build-id": "5eEQJZb5onKmLspXq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~trip-hotels-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-trip-hotels-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/stealth_mode~trip-hotels-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-trip-hotels-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/stealth_mode~trip-hotels-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-trip-hotels-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "urls": {
                        "title": "URLs of the hotels list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the hotels list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
