# Wishlist Raffle (`apifyatevents/wishlist-raffle`) Actor

If you see us at an event you may notice our 'choose-what-you-want raffle'. This is the actor to use to participate.

- **URL**: https://apify.com/apifyatevents/wishlist-raffle.md
- **Developed by:** [Apify at Events](https://apify.com/apifyatevents) (Apify)
- **Categories:** Other
- **Stats:** 107 total users, 10 monthly users, 31.2% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

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

### What does Wishlist Raffle Submission do?

**Wishlist Raffle Submission** lets booth attendees enter a raffle by submitting a product they want as a gift. You paste a product URL from a supported online store, the Actor fetches the product details automatically, and your entry goes on the wishlist leaderboard displayed on the event TV screen. At the end of the event, a winner is drawn from all valid entries.

This Actor runs on the [Apify platform](https://apify.com), which means it handles all the heavy lifting — product detail retrieval, price validation, duplicate checking, and raffle record keeping — so you can focus on picking the perfect wish.

### Why use Wishlist Raffle Submission?

- **No account setup required beyond logging in.** If you have an Apify account, you are ready to go.
- **Automatic product details.** You only paste the URL; the Actor fetches the product name, image, and price for you.
- **Fair entry rules.** The Actor enforces the event budget cap and prevents duplicate submissions, so every participant competes on equal terms.
- **Instant leaderboard update.** Your wish appears on the event TV screen moments after a successful submission.
- **Raffle-ready records.** All entries are stored securely and used for the live raffle draw at the end of the event.

### How to use Wishlist Raffle Submission

Follow these steps at the booth:

1. **Scan the QR code** displayed on the event poster or TV screen. This opens the submission form directly in your browser.
2. **Log in to Apify** (or create a free account in under a minute) if you are not already signed in.
3. **Paste your product URL** into the "Product URL" field. Copy the full URL from your browser address bar on the product page of a supported store.
4. **Enter the event passcode** shown on the TV screen. The passcode changes per event, so use exactly what is displayed.
5. **Optionally enter a display handle** — a name or username shown on the leaderboard. If you leave it blank, your Apify username is used.
6. **Check the "Accept Terms and Conditions" box.** Submissions without accepted terms are not recorded.
7. **Click Run** (or Submit). In a few seconds you will see a confirmation and your product will appear on the leaderboard.

### Input

All input fields are available in the **Input** tab when you open the Actor.

| Field           | Required | Description                                                                                                                          |
| --------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `eventPasscode` | Yes      | The passcode shown on the event TV screen. Enter it exactly as displayed.                                                            |
| `productUrl`    | Yes      | Full URL of the product page you want to submit (e.g. `https://www.amazon.com/dp/B0XXXXX`). Must start with `http://` or `https://`. |
| `handle`        | No       | Your display name for the leaderboard. Defaults to your Apify username.                                                              |
| `acceptTerms`   | Yes      | You must tick this checkbox to confirm you accept the event terms and conditions.                                                    |

Example input:

```json
{
    "eventPasscode": "wish2025",
    "productUrl": "https://www.amazon.com/dp/B0XXXXX",
    "handle": "Ada",
    "acceptTerms": true
}
````

### Output

If your submission is accepted, your entry is saved to the event dataset and your product appears on the leaderboard. The Actor logs a confirmation message with your handle, the product name, and the scraped price.

A successful entry looks like this:

```json
{
    "type": "submission",
    "eventId": "apify-wishlist-2025",
    "eventPasscode": "wish2025",
    "userId": "abc123",
    "handle": "Ada",
    "product": {
        "name": "Wireless Noise-Cancelling Headphones",
        "url": "https://www.amazon.com/dp/B0XXXXX",
        "image": "https://m.media-amazon.com/images/I/...",
        "price": 79.99,
        "currency": "USD",
        "source": "amazon.com"
    },
    "submittedAt": "2025-11-15T14:32:01.000Z"
}
```

You can view all submitted entries in the event dataset on the Apify platform. The data is also available for download in JSON, CSV, HTML, or Excel format.

### Supported stores

The accepted stores are set by the event organiser and shown in the event configuration. Common supported stores include:

- **Amazon** (`amazon.com`) — paste the product detail page URL
- **Best Buy** (`bestbuy.com`) — paste the product page URL

Only the bare domain listed by the organiser is accepted. Subdomains other than `www.` (for example `m.amazon.com` or `smile.amazon.com`) and regional variants (for example `amazon.co.uk`) are rejected unless specifically allowed.

If your store is not supported, try finding the same product on a supported store.

### FAQ, disclaimers, and support

**Can I change my submission?**
Each attendee may submit one product per event. Duplicate submissions are automatically rejected.

**What if my product URL is rejected?**
Make sure the URL points to a supported store and the product page loads correctly in your browser. Copy the URL directly from the address bar — avoid shortened or affiliate links.

**What if the price is wrong or the product can't be found?**
The Actor fetches product details automatically. If the scraper cannot find the product or the price is over the event budget, your entry is rejected with a clear message. Try a different product or URL.

**Is my data safe?**
Your submission is stored in a private Apify dataset owned by the event organiser. Only your Apify user ID, display handle, and the product details you chose to submit are recorded.

**Legality and terms of service**
This Actor retrieves publicly available product information from supported stores for the sole purpose of raffle entry processing at a private event. Use of this Actor for any other purpose is not permitted.

**Need help?**
Speak to a booth team member or open an issue in the Actor's Issues tab on the Apify platform.

# Actor input Schema

## `eventPasscode` (type: `string`):

The passcode displayed on the event TV screen. You can find this at the Apify booth.

## `productUrl` (type: `string`):

Full URL of the product you want to add to your wishlist. Try Amazon, Alibaba, Best Buy, Bol, eBay, Target, and others.

## `handle` (type: `string`):

Your display name or social handle for the raffle leaderboard. Defaults to your Apify username if omitted.

## `acceptTerms` (type: `boolean`):

I have read and agree to the Wish List Raffle Terms & Conditions. Read the full terms at https://apify.it/wishlist-terms

## `marketingConsent` (type: `boolean`):

I agree to receive marketing communications related to Apify products, events, and special offers.

## Actor input object example

```json
{
  "marketingConsent": true
}
```

# 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 = {
    "acceptTerms": false,
    "marketingConsent": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("apifyatevents/wishlist-raffle").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 = {
    "acceptTerms": False,
    "marketingConsent": True,
}

# Run the Actor and wait for it to finish
run = client.actor("apifyatevents/wishlist-raffle").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 '{
  "acceptTerms": false,
  "marketingConsent": true
}' |
apify call apifyatevents/wishlist-raffle --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Wishlist Raffle",
        "description": "If you see us at an event you may notice our 'choose-what-you-want raffle'. This is the actor to use to participate.",
        "version": "0.0",
        "x-build-id": "cYxfsFX6VINiX3M1S"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/apifyatevents~wishlist-raffle/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-apifyatevents-wishlist-raffle",
                "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/apifyatevents~wishlist-raffle/runs": {
            "post": {
                "operationId": "runs-sync-apifyatevents-wishlist-raffle",
                "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/apifyatevents~wishlist-raffle/run-sync": {
            "post": {
                "operationId": "run-sync-apifyatevents-wishlist-raffle",
                "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": [
                    "eventPasscode",
                    "productUrl",
                    "acceptTerms",
                    "marketingConsent"
                ],
                "properties": {
                    "eventPasscode": {
                        "title": "Event Passcode",
                        "type": "string",
                        "description": "The passcode displayed on the event TV screen. You can find this at the Apify booth."
                    },
                    "productUrl": {
                        "title": "Product URL",
                        "type": "string",
                        "description": "Full URL of the product you want to add to your wishlist. Try Amazon, Alibaba, Best Buy, Bol, eBay, Target, and others."
                    },
                    "handle": {
                        "title": "Display name - if blank will show your Apify username",
                        "type": "string",
                        "description": "Your display name or social handle for the raffle leaderboard. Defaults to your Apify username if omitted."
                    },
                    "acceptTerms": {
                        "title": "I have read and agree to the Wish List Raffle Terms & Conditions. Read the full terms at https://apify.it/wishlist-terms",
                        "type": "boolean",
                        "description": "I have read and agree to the Wish List Raffle Terms & Conditions. Read the full terms at https://apify.it/wishlist-terms"
                    },
                    "marketingConsent": {
                        "title": "I agree to receive marketing communications related to Apify products, events, and special offers.",
                        "type": "boolean",
                        "description": "I agree to receive marketing communications related to Apify products, events, and special offers.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
