# DP World Tour Schedule Scraper (`parseforge/european-tour-stats-scraper`) Actor

Scrapes the DP World Tour tournament schedule by tour ID and returns each event as a flat row with dates, course, prize fund, and defending champion.

- **URL**: https://apify.com/parseforge/european-tour-stats-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Sports, News, Travel
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $19.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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner-v4.webp)](https://apify.com/parseforge?fpr=vmoqkp)

### DP World Tour Schedule Scraper

**Scrape the DP World Tour schedule for any season, up to a million tournaments per run.** Every event comes with its dates, course, prize fund, and winner. Export to CSV, JSON, Excel, or XML.

The DP World Tour publishes its full tournament schedule online, but copying it by hand is slow and error-prone. This Actor reads the public schedule feed directly, filters by tour ID, and returns each event in one fixed schema. No API key or registration needed.

| Who uses it | What they scrape DP World Tour for |
|---|---|
| Golf data analysts | Build a historical dataset of tournament results and prize funds. |
| Sports journalists | Pull the latest schedule for a season preview article. |
| Fantasy golf developers | Populate a fantasy game with real upcoming events and courses. |
| Travel and hospitality firms | Plan packages around tournament dates and locations. |

### What it does

This Actor collects DP World Tour tournament listings by tour ID and returns each one as a flat row.

- 📅 **Full schedule extraction:** get every tournament in a season, from the first event to the Tour Championship.
- 🔢 **Tour ID filter:** target the main DP World Tour schedule or other affiliated tours by numeric ID.
- 📊 **Structured output:** each row holds the event name, start date, end date, course, location, prize fund, and defending champion.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with DP World Tour data

**📈 Build a tournament database.**

A data analyst runs the Actor once per season to collect every DP World Tour event, then joins it with player performance data for trend analysis.

**📰 Populate a golf news site.**

A sports editor schedules a weekly scrape to keep the upcoming tournaments page current with dates, courses, and prize funds.

**🎮 Seed a fantasy golf app.**

A developer pulls the full schedule before the season starts and uses the course and date fields to set up fantasy contest weeks.

**✈️ Plan golf travel packages.**

A travel company extracts tournament locations and dates to build holiday packages around the biggest events.

### Why choose this scraper

| | What you get |
|---|---|
| **No API key** | Reads the public schedule page, so you skip OAuth and rate limits. |
| **Fixed schema** | Every run returns the same columns, ready for a database or spreadsheet. |
| **Bulk runs** | Pull a full season or a decade of history in one go. |
| **Flexible export** | Save as CSV, JSON, Excel, or XML to fit your existing workflow. |

### How it compares

No other Store actor targets DP World Tour the same way, so the honest comparison is with the alternatives teams actually weigh.

| | DP World Tour Schedule Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When DP World Tour changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Drive the Actor with a tour ID and a maximum record count, and it returns only the matching tournaments. The Input tab lists every parameter.

A first run with the defaults:

```json
{
 "maxItems": 10
}
```

A larger pull:

```json
{
 "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.021 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $2.10 |
| 1,000 results | $21.00 |
| 10,000 results | $210.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [DP World Tour Schedule Scraper](https://apify.com/parseforge/european-tour-stats-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to DP World Tour through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/european-tour-stats-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check that the tour ID is correct. The main DP World Tour schedule is ID 1. Also confirm that maxItems is set to at least 1 and that the schedule page is currently reachable.

**The dataset has fewer rows than I expected.**

The DP World Tour feed may only include a limited number of seasons. Try increasing maxItems, but if the feed itself has fewer tournaments, the Actor cannot return more.

**Some fields are empty in the output.**

The DP World Tour may not publish every detail for every tournament. Empty fields mean the information was not present on the source page.

**The run timed out.**

Large requests can take time. Increase the run timeout in your Apify actor settings, or reduce maxItems and run multiple smaller batches.

### FAQ

| Question | Answer |
|---|---|
| What is the DP World Tour ID? | The main DP World Tour schedule uses tour ID 1. Other affiliated tours may use different numeric IDs visible in the schedule URL. |
| Can I scrape more than one season? | Yes. Set maxItems high enough to cover multiple seasons, and the Actor will return every tournament the feed provides. |
| Does this include player scores or hole-by-hole data? | No. This Actor returns the tournament schedule only: event name, dates, course, location, prize fund, and defending champion. For detailed scoring you need a different scraper. |
| What format does the data come in? | You can export the dataset as CSV, JSON, Excel, or XML from the Apify run console. |
| Do I need a DP World Tour account or API key? | No. The Actor reads the public schedule page, so no login or key is required. |
| How often is the schedule updated? | The DP World Tour updates its schedule as events are confirmed. Run the Actor on a schedule to keep your copy current. |
| Can I filter by country or course? | The Actor does not filter by country or course during the scrape, but you can apply those filters to the exported dataset in your own tools. |
| Is there a limit on how many tournaments I can scrape? | Free Apify users are limited to 10 records. Paid users can scrape up to 1,000,000 tournaments per run. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by DP World Tour. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `tourId` (type: `integer`):

Numeric DP World Tour ID (1 = DP World Tour main schedule).

## Actor input object example

```json
{
  "maxItems": 10,
  "tourId": 1
}
```

# Actor output Schema

## `results` (type: `string`):

Scraped records.

# 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 = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/european-tour-stats-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 = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/european-tour-stats-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 '{
  "maxItems": 10
}' |
apify call parseforge/european-tour-stats-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/european-tour-stats-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/o2atfEvFH2nuUlqiQ/builds/6wintViD5JegdRcPb/openapi.json
