# Oyorooms Hotels Search Scraper (`stealth_mode/oyorooms-hotels-search-scraper`) Actor

Scrape OYO Rooms hotel listings by city or search page. Collect names, ratings, pricing, amenities, geo-locations, images, and 29+ fields per property — perfect for travel analysts, price comparison tools, and hospitality researchers.

- **URL**: https://apify.com/stealth_mode/oyorooms-hotels-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, Travel
- **Stats:** 6 total users, 0 monthly users, 100.0% runs succeeded, 0 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## OYO Rooms Hotel Search Scraper: Extract Hotel Listings & Pricing Data

***

### What Is OYO Rooms?

OYO Rooms is one of Asia's largest budget and mid-scale hotel aggregators, operating across India, Southeast Asia, and beyond. Its search pages list dozens of properties per city with real-time pricing, availability, and amenity data. The **OYO Rooms Hotel Search Scraper** automates extraction from these listing pages, turning paginated hotel results into clean, structured datasets without manual copy-paste.

***

### Overview

This scraper targets OYO's city-level hotel search pages (e.g., `/hotels-in-bangalore/`) and extracts rich property records per listing. Ideal for:

- **Travel aggregators** building hotel comparison databases
- **Price intelligence teams** tracking OYO's dynamic pricing
- **Hospitality researchers** analyzing inventory by city or category
- **Developers** feeding hotel data into booking or analytics platforms

Configurable item limits and fault-tolerant URL handling make it suitable for both small targeted pulls and large-scale city-wide crawls.

***

### Input Format

```json
{
  "ignore_url_failures": true,
  "max_items_per_url": 200,
  "urls": [
    "https://www.oyorooms.com/hotels-in-bangalore/?page=3"
  ]
}
```

| Field | Type | Description |
|---|---|---|
| `urls` | `array` | One or more OYO hotel search/listing page URLs. Supports city pages with pagination (e.g., `?page=3`). Add URLs one by one or via bulk edit. |
| `max_items_per_url` | `integer` | Maximum hotel records to collect per URL. Default: `20`. Set higher (e.g., `200`) for full-page sweeps. |
| `ignore_url_failures` | `boolean` | If `true`, the scraper skips failed URLs and continues running instead of stopping. Default: `true`. Recommended for multi-URL runs. |

> **Tip:** To scrape an entire city, collect all paginated URLs (e.g., `?page=1` through `?page=N`) and add them all to the `urls` array.

***

### Output Format

**Sample output**

```json
{
  "name": "Super Hotel O Sajapur Formerly Blissful stays",
  "id": "243582",
  "address": "Bangalore east taluk, Bangalore",
  "rating": {
    "count": 2863,
    "value": 4.6,
    "agg_type": "decimal",
    "rating_level": "excellent",
    "subtext": "Excellent",
    "rating_breakup_details": [
      {
        "name": "Room Hygiene / Linen",
        "value": 100
      },
      {
        "name": "Washroom",
        "value": 100
      },
      {
        "name": "Hotel Staff",
        "value": 100
      }
    ],
    "social_rating": {},
    "ratings_breakup_count": {
      "1": 48,
      "2": 16,
      "3": 41,
      "4": 99,
      "5": 2659
    },
    "bucket_ratings": [
      {
        "rating": 4.5,
        "amenities": "Sanitisation"
      },
      {
        "rating": 4.5,
        "amenities": "Facilities"
      },
      {
        "rating": 4.6,
        "amenities": "Breakfast"
      },
      {
        "rating": 4.6,
        "amenities": "Location"
      },
      {
        "rating": 4.6,
        "amenities": "Hotel staff"
      },
      {
        "rating": 5,
        "amenities": "Check-in rating"
      }
    ],
    "check_in_rating": 5
  },
  "country_name": "India",
  "country_id": 1,
  "one_liner_text": null,
  "amenities": [
    {
      "id": "125",
      "display_name": "24x7 Facility Manager"
    },
    {
      "id": "53",
      "display_name": "Free Wifi",
      "icon": "FreeWifi"
    },
    {
      "id": "128",
      "display_name": "Power backup",
      "icon": "PowerBackUp"
    },
    {
      "id": "200222",
      "display_name": "Parking"
    },
    {
      "id": "200223",
      "display_name": "Late check-in"
    },
    {
      "id": "240",
      "display_name": "Work Space"
    },
    {
      "id": "101352",
      "display_name": "Dedicated workspace"
    },
    {
      "id": "13",
      "display_name": "AC",
      "icon": "AC"
    },
    {
      "id": "46",
      "display_name": "Elevator",
      "icon": "LiftElevator"
    },
    {
      "id": "36",
      "display_name": "Geyser",
      "icon": "Geyser"
    },
    {
      "id": "13",
      "display_name": "AC",
      "icon": "AC"
    },
    {
      "id": "13",
      "display_name": "AC",
      "icon": "AC"
    },
    {
      "id": "39",
      "display_name": "TV",
      "icon": "TV"
    },
    {
      "id": "39",
      "display_name": "TV",
      "icon": "TV"
    }
  ],
  "oyo_wizard": {
    "type": "partner",
    "name": "WIZARD MEMBER"
  },
  "category": "Flagship",
  "property_tag": {
    "1": [
      {
        "id": -1,
        "name": "OYO-Serviced",
        "badge_id": "operated_by_oyo",
        "icon_code_web": "3087",
        "icon_url": "https://assets.oyoroomscdn.com/icons/company_serviced.png",
        "icon_color": "#141414",
        "text_color": "#141414",
        "tag_format": {
          "bold_text_start_index": 0,
          "bold_text_end_index": 2
        }
      }
    ],
    "4": [
      {
        "id": -1,
        "name": "Couples are welcome",
        "badge_id": "couple_friendly",
        "icon_url": "https://d3pe7eoeuxf73d.cloudfront.net/icons/tag/listing/listing/couple.png",
        "icon_color": "#8900E5",
        "text_color": "#8900E5"
      },
      {
        "id": -1,
        "name": "Breakfast available",
        "badge_id": "breakfast_available",
        "icon_url": "https://assets.oyoroomscdn.com/cin/ic_checkbox_small.png",
        "icon_color": "#8900E5",
        "text_color": "#8900E5"
      }
    ]
  },
  "pricing": {
    "booking_price": "789",
    "slashed_price": "3121",
    "discount_percentage": 72,
    "wizard_discount_percentage": 0,
    "wizard_discount_amount": 0,
    "tax_info": {
      "total_tax": "85",
      "final_price_with_tax": "874"
    }
  },
  "hotel_images": [
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/mjpantmeersv.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/4a611a2f8e13cce0.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/ockveugjfehc.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/skyesxjrnoph.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/fqarpgnxupqd.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/ysuslcvvtdoq.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/xgdrhgirdwwa.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/qboyfwphkuqj.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/mhqnyayenvsq.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/xrfvqogjpdei.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/qelefugjgyvp.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/gnbuhqbynvxl.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/pfjuqloucowl.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/yladeopproox.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/faakdvoglnpq.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/lslaidkdrjoy.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/cnisyjmuxany.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/egyenyyqconl.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/ebaahwxuvyxn.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/dryatuxgyuor.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/yqpmgolotknw.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/nwpglssawsws.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/xhjiyrrdjjgq.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/gjbydntrtpnp.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/fipewmnmonih.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/hklyxtfbgciy.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/wepkrduphncd.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/esvnbdkpyptk.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/sulxulhhwvcq.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/tcimuhbfrsdn.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/93934c07b56977ce.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/7ed4ea0be0177be8.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/c9dbd29ddbffcefb.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/cc080610ebe424be.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/52482085998df43c.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/a2bebf8d3514f378.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/a821df3eeb49f822.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/940c9462b47d5d05.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/1775557133_landmark1.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/1775557145_landmark2.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/1775557150_landmark3.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/1775557154_nearby_landmark.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/kmbiyssyelkd.jpg",
    "https://images.oyoroomscdn.com/uploads/hotel_image/243582/vfeqkdmldylt.jpg"
  ],
  "is_sold_out": false,
  "geo_location": "12.89369,77.71778",
  "currency_symbol": "₹",
  "city": "Bangalore",
  "selected_rcid": 1,
  "pricing_details": {
    "services": {
      "meals": [
        {
          "category_code": "Breakfast",
          "amount": [
            165,
            330,
            495
          ]
        }
      ]
    }
  },
  "distance_unit": "km",
  "is_short_listed": false,
  "url": "/243582/",
  "mrc_data": [
    {
      "id": "1",
      "name": "Classic",
      "best_image": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/mjpantmeersv.jpg",
      "final_price": "789",
      "slasher_price": "3121",
      "is_sold_out": false
    }
  ],
  "total_hotel_categories": 1,
  "external_booking_url": "",
  "deals_info": "",
  "category_wise_media": [
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/mjpantmeersv.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/4a611a2f8e13cce0.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/ockveugjfehc.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/skyesxjrnoph.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/fqarpgnxupqd.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/ysuslcvvtdoq.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/xgdrhgirdwwa.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/qboyfwphkuqj.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/mhqnyayenvsq.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/xrfvqogjpdei.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/qelefugjgyvp.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/gnbuhqbynvxl.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/pfjuqloucowl.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/yladeopproox.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/faakdvoglnpq.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/lslaidkdrjoy.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/cnisyjmuxany.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/egyenyyqconl.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/ebaahwxuvyxn.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/dryatuxgyuor.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/yqpmgolotknw.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/nwpglssawsws.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/xhjiyrrdjjgq.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/gjbydntrtpnp.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/fipewmnmonih.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/hklyxtfbgciy.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/wepkrduphncd.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/esvnbdkpyptk.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/sulxulhhwvcq.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/tcimuhbfrsdn.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/93934c07b56977ce.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/7ed4ea0be0177be8.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/c9dbd29ddbffcefb.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/cc080610ebe424be.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/52482085998df43c.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/a2bebf8d3514f378.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/a821df3eeb49f822.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/940c9462b47d5d05.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/1775557133_landmark1.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/1775557145_landmark2.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/1775557150_landmark3.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/1775557154_nearby_landmark.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/kmbiyssyelkd.jpg",
      "type": "image"
    },
    {
      "url": "https://images.oyoroomscdn.com/uploads/hotel_image/243582/vfeqkdmldylt.jpg",
      "type": "image"
    }
  ],
  "status": "Live",
  "hide_prices": false,
  "from_url": "https://www.oyorooms.com/hotels-in-bangalore/?page=3"
}
```

Each hotel listing returns up to 29 fields:

#### Identity & Location

| Field | Meaning |
|---|---|
| `Name` | Hotel display name as shown on OYO |
| `ID` | OYO's internal property identifier |
| `Address` | Full street address of the property |
| `City` | City where the hotel is located |
| `Country Name` | Country name (e.g., India) |
| `Country ID` | Internal country code used by OYO |
| `Geo Location` | Latitude/longitude coordinates for mapping |
| `Distance Unit` | Unit used for distance display (km/miles) |

#### Ratings & Classification

| Field | Meaning |
|---|---|
| `Rating` | Guest rating score |
| `Category` | Property tier or classification (e.g., OYO, Collection O, Townhouse) |
| `Total Hotel Categories` | Number of room/rate categories available |
| `Property Tag` | Promotional or descriptive tags (e.g., "Couple Friendly") |
| `One Liner Text` | Short marketing tagline for the property |
| `Oyo Wizard` | Whether the property participates in OYO Wizard loyalty program |

#### Pricing & Availability

| Field | Meaning |
|---|---|
| `Pricing` | Base or displayed room price |
| `Pricing Details` | Breakdown of pricing tiers or room types |
| `Currency Symbol` | Currency used for displayed prices (e.g., ₹) |
| `Deals Info` | Active deals or discounts on the listing |
| `Hide Prices` | Flag indicating whether pricing is hidden (e.g., sold-out or restricted) |
| `Is Sold Out` | Boolean — whether the property has no available rooms |
| `MRC Data` | Minimum rate configuration metadata |

#### Media & Content

| Field | Meaning |
|---|---|
| `Hotel Images` | Array of property photo URLs |
| `Category Wise Media` | Images grouped by room/property category |
| `Amenities` | List of available amenities (e.g., WiFi, AC, parking) |

#### Booking & Status

| Field | Meaning |
|---|---|
| `URL` | Direct OYO listing URL for the property |
| `External Booking URL` | Third-party or partner booking link, if applicable |
| `Application Method` | How bookings are processed |
| `Selected RCID` | Rate/category ID currently selected for pricing |
| `Is Short Listed` | Whether the property is in a user shortlist |
| `Status` | Listing status (active, inactive, etc.) |

***

### How to Use

1. **Find search pages** — Go to `oyorooms.com`, search for a city, and copy the results page URL including any pagination parameters.
2. **Build your input** — Paste URLs into the `urls` array. For full city coverage, include multiple paginated URLs.
3. **Set item limit** — Use `max_items_per_url: 200` for large pages; lower values work for sampling.
4. **Enable fault tolerance** — Keep `ignore_url_failures: true` to prevent single broken URLs from halting the run.
5. **Run and export** — Download results as JSON, CSV, or Excel.

**Common issues:**

- Only use OYO *search/listing* pages, not individual hotel detail pages.
- Paginated URLs must be added separately (e.g., `?page=1`, `?page=2`).
- Prices may show as `null` if `Hide Prices` is `true` for that property.

***

### Use Cases & Business Value

- **Price monitoring:** Track how OYO adjusts rates across cities over time
- **Inventory analysis:** Understand property density and category distribution by market
- **Competitor benchmarking:** Compare amenities and pricing across budget hotel segments
- **Travel app development:** Populate hotel databases for search or recommendation features

***

### Conclusion

The **OYO Rooms Hotel Search Scraper** delivers structured, actionable hotel data from one of Asia's largest budget accommodation platforms. With 29+ fields per listing — including real-time pricing, availability, geo-coordinates, and images — it eliminates manual data collection and scales to entire cities in a single run.

# 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.oyorooms.com/hotels-in-bangalore/?page=3"
  ],
  "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.oyorooms.com/hotels-in-bangalore/?page=3"
    ],
    "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/oyorooms-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.oyorooms.com/hotels-in-bangalore/?page=3"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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.oyorooms.com/hotels-in-bangalore/?page=3"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/oyorooms-hotels-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,stealth_mode/oyorooms-hotels-search-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/XfV8TCApL0f7dSewE/builds/tx2RaXVXFAV9z0kBa/openapi.json
