# Airbnb Shared Wishlist Scraper (`automation-lab/airbnb-shared-wishlist-scraper`) Actor

Export public Airbnb shared wishlists into structured stay records with collection context, availability, ratings, coordinates, badges, prices, and photos.

- **URL**: https://apify.com/automation-lab/airbnb-shared-wishlist-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Travel
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## Airbnb Shared Wishlist Scraper

Export a public **Airbnb shared wishlist** into clean, structured stay records.

Paste a read-only `airbnb.com/wishlists/v/...` link and receive one dataset row per saved stay, complete with wishlist context, availability, ratings, coordinates, badges, price details when supplied by Airbnb, and contextual photos.

No Airbnb login, private API key, browser, or manual copying is required.

- 🔗 Accept one or many public wishlist links
- 🏠 Preserve every saved stay as a separate record
- 👥 Keep collection owner, guest, and date context
- 📸 Export contextual photo IDs, URLs, and captions
- 🔄 Schedule repeat runs to refresh a shortlist

### What does Airbnb Shared Wishlist Scraper do?

Airbnb Shared Wishlist Scraper turns a travel shortlist that people can view in a browser into data that can be compared, filtered, archived, or sent to another system.

Unlike a general Airbnb search scraper, it does not generate a new location search.

It exports the exact curated collection behind a public shared link and preserves that collection's context on every listing row.

The Actor discovers Airbnb's current public data request automatically and uses a lightweight HTTP workflow.

That keeps runs fast and avoids browser overhead.

### Who is it for? Airbnb wishlist export users

**Group travel planners**

- Compare the same candidate stays in Google Sheets.
- Share a stable export with travelers who do not use Airbnb wishlists.
- Keep owner, guest count, and saved date context beside each option.

**Travel agencies and concierge teams**

- Export client shortlists into an internal CRM or trip brief.
- Refresh multiple public lists on a schedule.
- Trigger alerts when a previously saved stay becomes unavailable.

**Vacation-rental investors and operators**

- Monitor curated competitor sets instead of broad location searches.
- Track listing IDs, ratings, badges, coordinates, and visible price text.
- Archive snapshots for later market comparisons.

**Researchers and developers**

- Build reproducible collection-level datasets.
- Feed selected listings into enrichment or analytics pipelines.
- Access results through API, webhooks, CSV, JSON, Excel, or XML.

### Why use this Airbnb wishlist extractor?

- ✅ **Exact collection export** — records come from the shared wishlist, not an approximate search.
- ✅ **No login required** — public read-only links work anonymously.
- ✅ **Collection context retained** — each stay includes wishlist ID, name, owner, dates, and guests.
- ✅ **Useful listing cards** — IDs, URLs, titles, subtitles, availability, ratings, coordinates, beds, and badges.
- ✅ **Photo context** — parallel photo arrays export cleanly to JSON and tabular systems.
- ✅ **Current query discovery** — the Actor reads Airbnb's public client bundle instead of relying only on one hard-coded operation hash.
- ✅ **Apify integrations** — use schedules, webhooks, API clients, Make, Zapier, Google Sheets, and cloud storage.

### What Airbnb wishlist data can you extract?

| Category | Fields |
|---|---|
| Wishlist | `wishlistId`, `wishlistUrl`, `wishlistName`, `wishlistItemCount` |
| Owner | `wishlistOwner`, `wishlistOwnerPhotoUrl` |
| Trip context | `formattedDateRange`, `checkIn`, `checkOut`, `formattedGuestDetails` |
| Guest counts | `adults`, `children`, `infants`, `pets` |
| Listing identity | `listingId`, `listingUrl`, `title`, `subtitle` |
| Status | `available`, `badges`, `noteCount`, `voteCount` |
| Quality and location | `rating`, `ratingText`, `latitude`, `longitude`, `bedSummary` |
| Price | `price`, `priceQualifier`, `priceDetails` when Airbnb supplies a date-aware quote |
| Photos | `photoIds`, `photoUrls`, `photoCaptions` |
| Audit | `scrapedAt` |

Fields that Airbnb does not expose for a particular list or stay are omitted rather than invented.

### How much does it cost to scrape an Airbnb wishlist?

This Actor uses **pay-per-event** pricing.

A run has a $0.005 start charge plus a charge for each saved stay exported.

| Apify plan | Price per saved stay |
|---|---:|
| Free | $0.000042338 |
| Starter / Bronze | $0.000036816 |
| Scale / Silver | $0.000028716 |
| Business / Gold | $0.000022089 |
| Platinum | $0.000014726 |
| Diamond | $0.000010308 |

A 37-stay wishlist costs about **$0.00657** on the Free tier, including the start charge.

A 100-stay export costs about **$0.00923** on the Free tier.

Your Apify Free plan includes monthly platform credits, so you can test small public lists before building a recurring workflow.

### How to export a public Airbnb shared wishlist

1. Open a public read-only Airbnb wishlist link.
2. Copy the URL containing `/wishlists/v/` or `/wishlists/` and a numeric ID.
3. Open Airbnb Shared Wishlist Scraper on Apify.
4. Paste the link into **Wishlist URLs**.
5. Keep the prefilled limit small for your first run.
6. Click **Start**.
7. Preview the saved stays in the Dataset tab.
8. Download JSON, CSV, Excel, XML, or RSS, or consume the dataset through the API.

Minimal input:

```json
{
  "wishlistUrls": [
    {
      "url": "https://www.airbnb.com/wishlists/v/1276806850?s=67&unique_share_id=ed9772cd-7a8f-4b0e-b93a-a3acbe443fb6"
    }
  ],
  "maxListingsPerWishlist": 5
}
````

Export the complete list:

```json
{
  "wishlistUrls": [
    {
      "url": "https://www.airbnb.com/wishlists/v/1276806850?s=67&unique_share_id=ed9772cd-7a8f-4b0e-b93a-a3acbe443fb6"
    }
  ],
  "maxListingsPerWishlist": 0,
  "includePhotos": true,
  "locale": "en-US",
  "currency": "USD"
}
```

### Input parameters

| Parameter | Type | Default | Description |
|---|---|---:|---|
| `wishlistUrls` | array | required | Public Airbnb read-only wishlist links; up to 20 per run |
| `maxListingsPerWishlist` | integer | `50` | Maximum stays per list; use `0` for all |
| `includePhotos` | boolean | `true` | Include contextual photo arrays |
| `locale` | string | `en-US` | Airbnb response language |
| `currency` | string | `USD` | Three-letter currency for visible quotes |
| `debug` | boolean | `false` | Save the first raw response to the key-value store |

The Actor processes wishlist URLs sequentially to be considerate of Airbnb's public service.

One bad link is logged and skipped so another valid input can still finish.

If every input fails, the run fails explicitly instead of returning a misleading empty success.

### Airbnb wishlist output example

```json
{
  "wishlistId": "1276806850",
  "wishlistName": "Arrived Vacation Rentals",
  "wishlistOwner": "Bret",
  "wishlistItemCount": 37,
  "formattedGuestDetails": "1 guest",
  "adults": 1,
  "listingId": "1648629443313957775",
  "listingUrl": "https://www.airbnb.com/rooms/1648629443313957775",
  "available": true,
  "title": "Home in Broken Bow",
  "subtitle": "Luxury Lodge|Mini Pickleball, Playground, Hot Tub",
  "rating": 5,
  "latitude": 34.13893,
  "longitude": -94.75978,
  "bedSummary": "9 beds",
  "badges": ["Guest favorite"],
  "photoIds": ["2563260400", "2563260422"],
  "photoUrls": [
    "https://a0.muscache.com/im/pictures/...jpeg?im_w=720"
  ],
  "photoCaptions": ["", "9 beds · 6 bedrooms"],
  "scrapedAt": "2026-07-15T00:00:00.000Z"
}
```

Photo arrays use matching positions: `photoIds[0]`, `photoUrls[0]`, and `photoCaptions[0]` describe the same image.

This shape stays practical in JSON while remaining exportable to CSV and Excel.

### Tips for reliable wishlist exports

- 🧪 Start with `maxListingsPerWishlist: 5` to validate your workflow cheaply.
- 🔓 Confirm the list opens in a private browser window without an Airbnb login.
- 🔗 Keep the complete shared URL, including its query parameters.
- 📉 Disable `includePhotos` when you only need IDs, ratings, or availability comparisons.
- 🌐 Set `locale` and `currency` consistently across scheduled snapshots.
- 🗓️ Remember that prices may be absent when the wishlist has no saved trip dates.
- 🔄 Use Apify schedules for daily or weekly monitoring instead of repeatedly starting runs by hand.
- 🧾 Keep dataset IDs or export snapshots if you need historical comparisons.

### Integrations and monitoring workflows

**Airbnb wishlist → Google Sheets**

Export a client or group shortlist to a shared comparison sheet, then add internal scores and comments without changing the source list.

**Airbnb wishlist → Slack or Discord**

Schedule a refresh and use a webhook automation to notify the group when saved options become unavailable.

**Airbnb wishlist → Make or Zapier**

Create one CRM, Notion, or Airtable record per saved stay and update it by `listingId` on later runs.

**Airbnb wishlist → data warehouse**

Send dataset items to BigQuery, Snowflake, S3, or another store for longitudinal price and availability analysis.

**Airbnb wishlist → another Actor**

Feed `listingUrl` values into a listing-detail, reviews, or calendar Actor when your workflow needs deeper per-property data.

### API usage for Airbnb Shared Wishlist Scraper

**Node.js**

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/airbnb-shared-wishlist-scraper').call({
  wishlistUrls: [{ url: 'https://www.airbnb.com/wishlists/v/1276806850' }],
  maxListingsPerWishlist: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

**Python**

```python
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/airbnb-shared-wishlist-scraper').call(run_input={
    'wishlistUrls': [{'url': 'https://www.airbnb.com/wishlists/v/1276806850'}],
    'maxListingsPerWishlist': 10,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

**cURL**

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/automation-lab~airbnb-shared-wishlist-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"wishlistUrls":[{"url":"https://www.airbnb.com/wishlists/v/1276806850"}],"maxListingsPerWishlist":10}'
```

Use `waitForFinish` on the API request or poll the returned run ID before reading the default dataset.

### Use Airbnb wishlist data with AI agents via MCP

The Actor can be called by AI assistants through Apify's hosted [Model Context Protocol integration](https://docs.apify.com/platform/integrations/mcp).

**Claude Code**

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/airbnb-shared-wishlist-scraper"
```

**Claude Desktop, Cursor, or VS Code**

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=automation-lab/airbnb-shared-wishlist-scraper"
    }
  }
}
```

Authenticate with your Apify account when prompted.

Example prompts:

- "Use `automation-lab/airbnb-shared-wishlist-scraper` to export the first 20 options from this public wishlist and rank available stays by rating."
- "Refresh these three public Airbnb wishlists and give me a CSV-ready table of listing IDs, titles, coordinates, badges, and availability."
- "Compare today's wishlist export with yesterday's dataset and list stays whose availability changed."

### Legality: is it legal to scrape a public Airbnb wishlist?

This Actor accesses data that an Airbnb user has deliberately shared through a public read-only link.

Scraping public data is generally lawful, but the context and your use of the data matter.

You are responsible for complying with Airbnb's terms, applicable privacy and database laws, intellectual-property rights, and any contractual obligations.

Do not use this Actor to access private lists, bypass authentication, profile individuals, or collect personal data without a lawful purpose.

Use reasonable run frequency and retain only the data needed for your legitimate workflow.

This information is not legal advice.

### Limitations

- Only public read-only Airbnb wishlists are supported.
- Private, deleted, expired, or login-only lists cannot be exported.
- V1 outputs saved stays; experience or service item types may be skipped.
- Airbnb decides which fields are visible and may omit prices without saved dates.
- Availability and prices are snapshots that can change after extraction.
- Airbnb can change its public client bundle or rate-limit repeated requests.
- The Actor does not book stays, modify lists, vote, comment, or invite collaborators.
- `maxListingsPerWishlist` limits the records already returned by the public list endpoint; it does not discover hidden private items.

### Troubleshooting

**Why did the run say the wishlist is not public?**

Open the URL in a private browser window. If Airbnb asks for login or permission, create or request a public read-only share link.

**Why are price fields missing?**

Airbnb often returns no quote when the wishlist has no saved check-in/check-out dates. The Actor leaves absent values unset rather than fabricating a price.

**Why are fewer records exported than the wishlist count?**

Check `maxListingsPerWishlist`. A positive value caps each list, while `0` exports all stay records returned by Airbnb. Non-stay item types may also be skipped in V1.

**What should I send when requesting support?**

Include the run URL and public wishlist URL. You can rerun once with `debug: true` to save `DEBUG-WISHLIST-RESPONSE` in the run's key-value store.

### FAQ: frequently asked questions

**How fast is the Airbnb wishlist scraper?**

A small list usually finishes in seconds because the Actor uses direct HTTP requests rather than a browser. Runtime depends on list size, network conditions, and Airbnb rate limits.

**Do I need an Airbnb API key or account?**

No. The Actor supports the anonymous public surface used by read-only shared wishlist pages.

**Does this replace a general Airbnb search scraper?**

No. Use this Actor when you already have a curated public wishlist. Use an Airbnb search Actor when you need to discover listings by destination, map, dates, or filters.

**Can I process more than one wishlist?**

Yes. Add up to 20 public links in one input. Each output row includes its source wishlist ID and URL.

**Can I schedule availability monitoring?**

Yes. Create an Apify schedule, store or compare prior datasets by `wishlistId` plus `listingId`, and send changes through webhooks or an automation platform.

**Are all photos downloaded?**

No. The Actor exports the public contextual photo URLs and captions. It does not download binary image files into storage.

### Other Airbnb and travel scrapers

Expand the wishlist workflow with related Automation Lab tools:

- [Airbnb Scraper](https://apify.com/automation-lab/airbnb-listing) — discover and extract Airbnb listings by search or listing URL.
- [Airbnb Reviews Scraper](https://apify.com/automation-lab/airbnb-reviews) — enrich selected stays with public guest reviews.
- [Airbnb Host Portfolio Scraper](https://apify.com/automation-lab/airbnb-host-portfolio-scraper) — inspect other listings associated with a host.
- [Booking Scraper](https://apify.com/automation-lab/booking-scraper) — compare hotel and accommodation inventory.
- [Google Hotels Scraper](https://apify.com/automation-lab/google-hotels-scraper) — collect hotel search and price data.
- [Tripadvisor Reviews Scraper](https://apify.com/automation-lab/tripadvisor-reviews-scraper) — add traveler review intelligence.

Use wishlist export for the curated candidate set, then call deeper tools only for the shortlisted properties that matter.

### Support and responsible use

For a reproducible support request, share the Apify run URL, the public wishlist link, expected item count, and one example listing that is missing or malformed.

Never include account passwords, session cookies, private invite links, or personal access tokens.

The Actor logs operation discovery, wishlist-level counts, skipped item types, and explicit failures so problems can be diagnosed without guessing.

Start with a small cap, verify the dataset, and increase the limit only after the output matches your workflow.

# Actor input Schema

## `wishlistUrls` (type: `array`):

Add public Airbnb shared wishlist URLs. Private or login-only lists cannot be exported.

## `maxListingsPerWishlist` (type: `integer`):

Limit saved stays exported from each wishlist. Set 0 to export every stay returned by Airbnb.

## `includePhotos` (type: `boolean`):

Include parallel arrays of photo IDs, URLs, and captions for every saved stay.

## `locale` (type: `string`):

Choose the Airbnb response language, for example en-US, de-DE, or fr-FR.

## `currency` (type: `string`):

Choose the three-letter currency used for prices when the wishlist has saved dates.

## `debug` (type: `boolean`):

Save the first Airbnb GraphQL response in the default key-value store as DEBUG-WISHLIST-RESPONSE.

## Actor input object example

```json
{
  "wishlistUrls": [
    {
      "url": "https://www.airbnb.com/wishlists/v/1276806850?s=67&unique_share_id=ed9772cd-7a8f-4b0e-b93a-a3acbe443fb6"
    }
  ],
  "maxListingsPerWishlist": 5,
  "includePhotos": true,
  "locale": "en-US",
  "currency": "USD",
  "debug": false
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "wishlistUrls": [
        {
            "url": "https://www.airbnb.com/wishlists/v/1276806850?s=67&unique_share_id=ed9772cd-7a8f-4b0e-b93a-a3acbe443fb6"
        }
    ],
    "maxListingsPerWishlist": 5,
    "includePhotos": true,
    "locale": "en-US",
    "currency": "USD",
    "debug": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/airbnb-shared-wishlist-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 = {
    "wishlistUrls": [{ "url": "https://www.airbnb.com/wishlists/v/1276806850?s=67&unique_share_id=ed9772cd-7a8f-4b0e-b93a-a3acbe443fb6" }],
    "maxListingsPerWishlist": 5,
    "includePhotos": True,
    "locale": "en-US",
    "currency": "USD",
    "debug": False,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/airbnb-shared-wishlist-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 '{
  "wishlistUrls": [
    {
      "url": "https://www.airbnb.com/wishlists/v/1276806850?s=67&unique_share_id=ed9772cd-7a8f-4b0e-b93a-a3acbe443fb6"
    }
  ],
  "maxListingsPerWishlist": 5,
  "includePhotos": true,
  "locale": "en-US",
  "currency": "USD",
  "debug": false
}' |
apify call automation-lab/airbnb-shared-wishlist-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=automation-lab/airbnb-shared-wishlist-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Airbnb Shared Wishlist Scraper",
        "description": "Export public Airbnb shared wishlists into structured stay records with collection context, availability, ratings, coordinates, badges, prices, and photos.",
        "version": "0.1",
        "x-build-id": "UaZJ2aWYXApGCFU6h"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~airbnb-shared-wishlist-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-airbnb-shared-wishlist-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/automation-lab~airbnb-shared-wishlist-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-airbnb-shared-wishlist-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/automation-lab~airbnb-shared-wishlist-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-airbnb-shared-wishlist-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",
                "required": [
                    "wishlistUrls"
                ],
                "properties": {
                    "wishlistUrls": {
                        "title": "Wishlist URLs",
                        "minItems": 1,
                        "maxItems": 20,
                        "type": "array",
                        "description": "Add public Airbnb shared wishlist URLs. Private or login-only lists cannot be exported.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL",
                                    "description": "Public Airbnb shared wishlist URL."
                                }
                            }
                        }
                    },
                    "maxListingsPerWishlist": {
                        "title": "Maximum stays per wishlist",
                        "minimum": 0,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Limit saved stays exported from each wishlist. Set 0 to export every stay returned by Airbnb.",
                        "default": 50
                    },
                    "includePhotos": {
                        "title": "Include contextual photos",
                        "type": "boolean",
                        "description": "Include parallel arrays of photo IDs, URLs, and captions for every saved stay.",
                        "default": true
                    },
                    "locale": {
                        "title": "Locale",
                        "type": "string",
                        "description": "Choose the Airbnb response language, for example en-US, de-DE, or fr-FR.",
                        "default": "en-US"
                    },
                    "currency": {
                        "title": "Currency",
                        "minLength": 3,
                        "maxLength": 3,
                        "type": "string",
                        "description": "Choose the three-letter currency used for prices when the wishlist has saved dates.",
                        "default": "USD"
                    },
                    "debug": {
                        "title": "Save raw response for debugging",
                        "type": "boolean",
                        "description": "Save the first Airbnb GraphQL response in the default key-value store as DEBUG-WISHLIST-RESPONSE.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
