# Pickleball API (`apiguruu/pickleball-data-api`) Actor

An enterprise-grade Apify Actor that delivers unified, real-time pickleball data from across the official pickleball ecosystem — players, rankings, results, tournaments, leagues, and clubs — through a single, consistent interface. RESTAPI https://rapidapi.com/matepapava123/api/pickleball-live-api

- **URL**: https://apify.com/apiguruu/pickleball-data-api.md
- **Developed by:** [apiguru](https://apify.com/apiguruu) (community)
- **Categories:** AI, Agents, E-commerce
- **Stats:** 8 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.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.

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

## Pickleball Data API — Apify Actor

An enterprise-grade Apify Actor that delivers unified, real-time pickleball data from across the official pickleball ecosystem — players, rankings, results, tournaments, leagues, and clubs — through a single, consistent interface.

**Data sources:**

- [pickleball.com](https://pickleball.com) — rankings, players, results
- [pickleballtournaments.com](https://pickleballtournaments.com) — tournaments
- [pickleballleagues.com](https://pickleballleagues.com) — leagues & game days
- [pickleballclubs.com](https://pickleballclubs.com) — clubs & members

***

### Actions

Select an action from the `action` dropdown in the Actor input. Each action has its own set of required and optional parameters described below.

***

#### Rankings

##### `get_rankings`

Top-10 PPA Tour player standings for a given discipline.

| Parameter | Required | Default | Description |
|---|---|---|---|
| `discipline` | No | `WS` | `WS` · `MS` · `WD` · `MD` · `MX` · `WX` |

##### `get_rankings_full`

Full ~100-entry leaderboard for a given discipline.

| Parameter | Required | Default | Description |
|---|---|---|---|
| `discipline` | No | `WS` | Same codes as above |

***

#### Players

##### `search_players`

Search and filter 794,000+ registered pickleball players (20 per page).

| Parameter | Required | Default | Description |
|---|---|---|---|
| `search` | No | | Last name search term |
| `age` | No | | Age range: `0-17` · `18-29` · `30-39` · `40-49` · `50-59` · `60-69` · `70-79` · `80-100` |
| `gender` | No | | `M` or `F` |
| `doubles_skill` | No | | DUPR doubles range e.g. `4.0-5.0` (scale 0–8) |
| `singles_skill` | No | | DUPR singles range e.g. `4.0-5.0` (scale 0–8) |
| `wpr_badge` | No | | WPR tier: `TOUR PRO` · `LEGEND` · `ICON` · `TITAN` · `BALLER` · `CONTENDER` · `PLAYER` · `Top 1` · `Top 50` · `Top 100` · `Top 500` · `Top 1000` |
| `country_id` | No | | Country ID integer |
| `state_id` | No | | State ID integer |
| `city` | No | | City name |
| `page` | No | `1` | Page number |

##### `get_player_profile`

Complete player profile: ratings, PPA stats, WPR badge, sponsors, biography, and tournament match history.

| Parameter | Required | Default | Description |
|---|---|---|---|
| `slug` | Yes | | Player URL slug e.g. `aanik-lohani` |

##### `get_player_filters`

Returns all available filter options (age ranges, gender, WPR badge tiers, skill scale) for `search_players`. No parameters required.

***

#### Results

##### `get_results_on_date`

All completed tournament and MLP team league results for a given date.

| Parameter | Required | Default | Description |
|---|---|---|---|
| `date` | Yes | | Date in `YYYY-MM-DD` format |

##### `get_results_matchup`

Full matchup data: teams, game-by-game scores, player assignments, court info.

| Parameter | Required | Default | Description |
|---|---|---|---|
| `matchup_id` | Yes | | Matchup identifier (from `get_results_on_date`) |

##### `get_results_h2h`

Head-to-head historical stats between two teams.

| Parameter | Required | Default | Description |
|---|---|---|---|
| `team_ids` | Yes | | Two team UUIDs comma-separated e.g. `uuid1,uuid2` |

##### `get_results_tiebreaker`

Point-by-point tiebreaker sequence for a specific match game.

| Parameter | Required | Default | Description |
|---|---|---|---|
| `match_id` | Yes | | Match identifier |
| `game_number` | No | `1` | Game number within the match |

***

#### Tournaments

##### `search_tournaments`

Search tournaments on pickleballtournaments.com with filters.

| Parameter | Required | Default | Description |
|---|---|---|---|
| `keyword` | No | | Search keyword |
| `tournament_filter` | No | `featured` | `featured` · `upcoming` · `past` · `all` · `local` · `national_tours` · `sanctioned` · `moneyball` |
| `page` | No | `1` | Page number |
| `place_keyword` | No | `Anywhere` | `Anywhere` · `United States` · `Canada` · `Europe` · `Pacific` · `Mountain` · `Central` · `Eastern` |

##### `get_tournament_detail`

Full tournament detail by slug: name, venue, dates, entry fee, director, description.

| Parameter | Required | Default | Description |
|---|---|---|---|
| `slug` | Yes | | Tournament URL slug |

***

#### Leagues

##### `search_leagues`

Search leagues from pickleballleagues.com (20 per page).

| Parameter | Required | Default | Description |
|---|---|---|---|
| `keyword` | No | | Search keyword |
| `league_status` | No | `active` | `active` · `past` · `all` |
| `page` | No | `1` | Page number |

##### `get_league_game_days`

All scheduled game days for a league session.

| Parameter | Required | Default | Description |
|---|---|---|---|
| `session_id` | Yes | | League session ID (from `search_leagues`) |

##### `get_league_matches`

All matches for a specific game day.

| Parameter | Required | Default | Description |
|---|---|---|---|
| `match_date_id` | Yes | | Match date ID (from `get_league_game_days`) |

***

#### Clubs

##### `get_club_detail`

Club profile: uuid, name, logo URL, city, address, and counts of members, tournaments, and leagues.

| Parameter | Required | Default | Description |
|---|---|---|---|
| `slug` | Yes | | Club URL slug |

##### `get_club_members`

Paginated club member roster with full DUPR ratings and PPA stats (12 per page).

| Parameter | Required | Default | Description |
|---|---|---|---|
| `slug` | Yes | | Club URL slug |
| `member_search` | No | | Filter members by name |
| `page` | No | `1` | Page number |

##### `get_club_tournaments`

All tournaments affiliated with a club.

| Parameter | Required | Default | Description |
|---|---|---|---|
| `org_uuid` | Yes | | Organization UUID (from `get_club_detail`) |
| `keyword` | No | | Search keyword |

##### `get_club_leagues`

All leagues affiliated with a club.

| Parameter | Required | Default | Description |
|---|---|---|---|
| `org_uuid` | Yes | | Organization UUID (from `get_club_detail`) |
| `keyword` | No | | Search keyword |

***

### Output Format

Every action returns a dataset item in this envelope:

```json
{
  "action": "search_players",
  "success": true,
  "data": { ... },
  "error": null,
  "timestamp": "2026-06-24T10:30:00+00:00"
}
```

On failure, `success` is `false`, `data` is `null`, and `error` contains the message.

***

### Typical Workflow

```
1. search_players (search="johns")          → get slugs
2. get_player_profile (slug="ben-johns")    → full profile + match history

1. get_results_on_date (date="2026-01-15")  → get matchup IDs
2. get_results_matchup (matchup_id="...")   → full score breakdown

1. get_club_detail (slug="big-dill-pickle") → get org_uuid
2. get_club_members (slug="...")            → member roster with DUPR
3. get_club_tournaments (org_uuid="...")    → affiliated tournaments
```

# Actor input Schema

## `action` (type: `string`):

Select the action to perform.

## `discipline` (type: `string`):

REQUIRED for get\_rankings. Discipline code.

## `search` (type: `string`):

OPTIONAL for search\_players. Filter by player last name.

## `age` (type: `string`):

OPTIONAL for search\_players. Filter by age range.

## `gender` (type: `string`):

OPTIONAL for search\_players. Filter by gender.

## `doubles_skill` (type: `string`):

OPTIONAL for search\_players. Doubles skill range, e.g. '3.5-4.0'. Scale 0–8.

## `singles_skill` (type: `string`):

OPTIONAL for search\_players. Singles skill range, e.g. '4.0-4.5'. Scale 0–8.

## `wpr_badge` (type: `string`):

OPTIONAL for search\_players. Filter by World Pickleball Rating badge tier.

## `country_id` (type: `string`):

OPTIONAL for search\_players. Country ID to filter by location.

## `state_id` (type: `string`):

OPTIONAL for search\_players. State/province ID.

## `city` (type: `string`):

OPTIONAL for search\_players. City name.

## `slug` (type: `string`):

REQUIRED for get\_player\_profile, get\_tournament\_detail, get\_club\_detail, get\_club\_members, get\_club\_tournaments, get\_club\_leagues. URL slug identifier.

## `date` (type: `string`):

REQUIRED for get\_results\_on\_date. Date in YYYY-MM-DD format.

## `matchup_id` (type: `string`):

REQUIRED for get\_results\_matchup. Matchup identifier.

## `team_ids` (type: `string`):

REQUIRED for get\_results\_h2h. Two team IDs separated by a comma, e.g. '123,456'.

## `match_id` (type: `string`):

REQUIRED for get\_results\_tiebreaker. Match identifier.

## `game_number` (type: `integer`):

REQUIRED for get\_results\_tiebreaker. Game number within the match.

## `keyword` (type: `string`):

OPTIONAL for search\_tournaments, search\_leagues. Search keyword.

## `tournament_filter` (type: `string`):

OPTIONAL for search\_tournaments. Tournament status filter.

## `league_status` (type: `string`):

OPTIONAL for search\_leagues. League status filter.

## `session_id` (type: `string`):

REQUIRED for get\_league\_game\_days, get\_league\_matches. League session identifier.

## `match_date_id` (type: `string`):

REQUIRED for get\_league\_matches. Match date identifier.

## `org_uuid` (type: `string`):

REQUIRED for get\_club\_tournaments, get\_club\_leagues. Club organization UUID (from get\_club\_detail).

## `member_search` (type: `string`):

OPTIONAL for get\_club\_members. Filter club members by name.

## `page` (type: `integer`):

OPTIONAL. Page number for paginated results (default: 1).

## Actor input object example

```json
{
  "action": "search_players",
  "discipline": "WS",
  "game_number": 1,
  "tournament_filter": "featured",
  "league_status": "active",
  "page": 1
}
```

# Actor output Schema

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

Pickleball data stored in the default dataset

# 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 = {
    "action": "search_players",
    "discipline": "WS",
    "tournament_filter": "featured",
    "league_status": "active"
};

// Run the Actor and wait for it to finish
const run = await client.actor("apiguruu/pickleball-data-api").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 = {
    "action": "search_players",
    "discipline": "WS",
    "tournament_filter": "featured",
    "league_status": "active",
}

# Run the Actor and wait for it to finish
run = client.actor("apiguruu/pickleball-data-api").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 '{
  "action": "search_players",
  "discipline": "WS",
  "tournament_filter": "featured",
  "league_status": "active"
}' |
apify call apiguruu/pickleball-data-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,apiguruu/pickleball-data-api"
        }
    }
}
```

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/lHMeea5SMxg1jZJfa/builds/PTI6vm74YDgQ8EMbY/openapi.json
