# Camarero Horse Racing Picks (`constructive_junk/camarero-horse-racing-picks`) Actor

Get automated daily horse racing picks for Hipódromo El Comandante (Camarero), Puerto Rico. Scrapes the official race program and generates scored picks, exactas, trifectas, and suggested wagers based on your bankroll. Runs on race days: Mon, Wed, Fri, Sat, Sun.

- **URL**: https://apify.com/constructive\_junk/camarero-horse-racing-picks.md
- **Developed by:** [Maria Correa-Resto](https://apify.com/constructive_junk) (community)
- **Categories:** Automation, Other, Travel
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 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

## 🐴 Camarero Horse Racing Picks

**Automated daily horse racing picks for Hipódromo El Comandante, Puerto Rico.**

Get AI-assisted betting picks, scores, and suggested wagers for every race at El Comandante — the only horse racing track in Puerto Rico — delivered automatically every race day.

---

### What does this Actor do?

The **Camarero Horse Racing Picks** Actor scrapes the official race program from Hipódromo El Comandante (Puerto Rico) and generates structured betting picks for each race, including:

- 🏆 **Top pick per race** (horse name, number, jockey, trainer)
- 📊 **Confidence score** (0–100) and confidence level (HIGH / MEDIUM / LOW)
- 💵 **Suggested bet amount** based on your bankroll
- 🎯 **Exacta and Trifecta combinations**
- 📍 **Race details** (distance, track condition, race number)
- 📅 **Race day validation** (only runs on race days: Mon, Wed, Fri, Sat, Sun)

---

### Why use this Actor?

- **Only actor on Apify** covering El Comandante horse racing in Puerto Rico
- **Fully automated** — schedule it daily and get picks every race morning
- **Structured JSON output** — easy to integrate with bots, spreadsheets, or dashboards
- **Bankroll management built-in** — configure your budget and get proportional wager sizes
- **Bilingual support** — output in Spanish (Puerto Rico market)

---

### Who is this for?

- 🎲 Horse racing fans and bettors in Puerto Rico
- 📱 Telegram/WhatsApp bot developers who want to send daily picks automatically
- 📊 Data analysts studying Puerto Rico racing patterns
- 🤖 Automation enthusiasts building betting tools for the Caribbean market
- 🌎 Puerto Rican diaspora (5.8M+ in the US) who follow El Comandante remotely

---

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `bankroll` | Number | `100` | Your total betting bankroll in USD. Used to calculate suggested bet sizes. |
| `raceDate` | String | Today's date | Target race date in `YYYY-MM-DD` format. Leave empty for today. |
| `maxRaces` | Number | `10` | Maximum number of races to process. |

#### Example Input

```json
{
  "bankroll": 200,
    "raceDate": "2026-06-21",
      "maxRaces": 10
      }
      ```

      ---

      ## Output

      Each run produces **one dataset item** per race day with all picks structured as JSON.

      ### Example Output

      ```json
      {
        "date": "2026-06-21",
          "track": "Hipódromo El Comandante, PR",
            "bankroll": 100,
              "unitBet": 2,
                "totalBet": 28,
                  "source": "camarero.com",
                    "picks": [
                        {
                              "race": 1,
                                    "distance": "1400m",
                                          "trackCondition": "Firme",
                                                "pick": "ESPERANZA REAL",
                                                      "horseNumber": 1,
                                                            "jockey": "J. Rivera",
                                                                  "trainer": "M. Torres",
                                                                        "score": 92,
                                                                              "confidence": "ALTA",
                                                                                    "suggestedBet": 4,
                                                                                          "exacta": "1-2",
                                                                                                "trifecta": "1-2-3",
                                                                                                      "secondPlace": "VIENTO DEL NORTE"
                                                                                                          }
                                                                                                            ]
                                                                                                            }
                                                                                                            ```

                                                                                                            ---

                                                                                                            ## Race Schedule

                                                                                                            El Comandante runs races on:

                                                                                                            | Day | Races |
                                                                                                            |-----|-------|
                                                                                                            | Monday | ✅ Yes |
                                                                                                            | Tuesday | ❌ No |
                                                                                                            | Wednesday | ✅ Yes |
                                                                                                            | Thursday | ❌ No |
                                                                                                            | Friday | ✅ Yes |
                                                                                                            | Saturday | ✅ Yes |
                                                                                                            | Sunday | ✅ Yes |

                                                                                                            If you run the Actor on a non-race day without specifying a `raceDate`, it will return a message indicating no races are scheduled.

                                                                                                            ---

                                                                                                            ## Recommended Setup — Daily Automation

                                                                                                            1. Go to **Schedules** in Apify Console
                                                                                                            2. Create a new schedule: `0 8 * * 1,3,5,6,0` (8:00 AM on race days)
                                                                                                            3. Select this Actor and configure your `bankroll`
                                                                                                            4. Connect the output to a Telegram bot, Google Sheets, or your own app via webhook

                                                                                                            ---

                                                                                                            ## Pricing

                                                                                                            This Actor uses the **pay-per-result** model.

                                                                                                            - Each run produces **1 dataset item** (the full picks object for the day)
                                                                                                            - Typical cost: **~$0.001–$0.002 per run**
                                                                                                            - Running daily = **less than $0.05/month** in compute costs

                                                                                                            ---

                                                                                                            ## Limitations & Notes

                                                                                                            > ⚠️ **Data Source:** This Actor scrapes publicly available race programs from the official Camarero / El Comandante website. Data accuracy depends on the availability and structure of the official program at run time.

                                                                                                            > ⚠️ **Disclaimer:** This tool is for informational and entertainment purposes. Horse racing involves risk. Always bet responsibly.

                                                                                                            ---

                                                                                                            ## Frequently Asked Questions

                                                                                                            **Q: Does this work every day?**
                                                                                                            A: It runs on race days only (Mon, Wed, Fri, Sat, Sun). On non-race days, it returns a "no races today" message.

                                                                                                            **Q: How do I get picks for a specific date?**
                                                                                                            A: Set the `raceDate` input parameter to any date in `YYYY-MM-DD` format.

                                                                                                            **Q: Can I change the bankroll?**
                                                                                                            A: Yes — set `bankroll` to any amount. Bet sizes are calculated proportionally (2% of bankroll per unit).

                                                                                                            **Q: Is the output in English or Spanish?**
                                                                                                            A: Horse names, jockeys, and trainers are in Spanish (as listed at El Comandante). The structure is in English for developer compatibility.

                                                                                                            **Q: How do I automate this?**
                                                                                                            A: Use Apify Schedules or the Apify API to trigger daily runs automatically.

                                                                                                            **Q: Is this affiliated with Hipódromo El Comandante or the Puerto Rico Racing Commission?**
                                                                                                            A: No. This is an independent data tool that reads publicly available race programs.

                                                                                                            ---

                                                                                                            ## About

                                                                                                            Built for the Puerto Rico horse racing community. El Comandante (Hipódromo Camarero) is the only thoroughbred horse racing track in Puerto Rico, located in Canóvanas, PR.

                                                                                                            **Keywords:** horse racing, Puerto Rico, El Comandante, Camarero, picks, betting, hipódromo, carreras de caballos, apostas, picks diarios, thoroughbred, Caribbean racing

# Actor input Schema

## `bankroll` (type: `integer`):

Capital disponible para apostar en dolares
## `raceDate` (type: `string`):

Fecha especifica. Dejar vacio para usar fecha actual de Puerto Rico.
## `maxRaces` (type: `integer`):

Maximo de carreras a analizar

## Actor input object example

```json
{
  "bankroll": 100,
  "maxRaces": 10
}
````

# Actor output Schema

## `results` (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 = {
    "bankroll": 100,
    "maxRaces": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("constructive_junk/camarero-horse-racing-picks").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 = {
    "bankroll": 100,
    "maxRaces": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("constructive_junk/camarero-horse-racing-picks").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 '{
  "bankroll": 100,
  "maxRaces": 10
}' |
apify call constructive_junk/camarero-horse-racing-picks --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=constructive_junk/camarero-horse-racing-picks",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Camarero Horse Racing Picks",
        "description": "Get automated daily horse racing picks for Hipódromo El Comandante (Camarero), Puerto Rico. Scrapes the official race program and generates scored picks, exactas, trifectas, and suggested wagers based on your bankroll. Runs on race days: Mon, Wed, Fri, Sat, Sun.",
        "version": "0.0",
        "x-build-id": "HWxHHpsff4pN7uUNq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/constructive_junk~camarero-horse-racing-picks/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-constructive_junk-camarero-horse-racing-picks",
                "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/constructive_junk~camarero-horse-racing-picks/runs": {
            "post": {
                "operationId": "runs-sync-constructive_junk-camarero-horse-racing-picks",
                "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/constructive_junk~camarero-horse-racing-picks/run-sync": {
            "post": {
                "operationId": "run-sync-constructive_junk-camarero-horse-racing-picks",
                "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",
                "properties": {
                    "bankroll": {
                        "title": "Bankroll ($)",
                        "minimum": 10,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Capital disponible para apostar en dolares"
                    },
                    "raceDate": {
                        "title": "Fecha de carreras (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Fecha especifica. Dejar vacio para usar fecha actual de Puerto Rico."
                    },
                    "maxRaces": {
                        "title": "Numero maximo de carreras",
                        "minimum": 1,
                        "maximum": 15,
                        "type": "integer",
                        "description": "Maximo de carreras a analizar"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
