Install any skill in seconds. Free to start, no credit card required.
Get Started Free →ProphetX betting exchange — public tournaments, events, markets, and exchange odds. No API key, read-only. Covers soccer, tennis, basketball, baseball (MLB), NFL, NHL. IMPORTANT: odds are per-market optional — they appear only when a public order book exists (check `selections_available`); empty/suspended books return market structure and matched stake only. Full guaranteed odds coverage requires the authenticated ProphetX Affiliate API (separate Machina connector). Use when: user asks what mar
.claude/skills/machina-sports-prophetx/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | -22% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 44% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-13 | ✗→✓ | ▲ Improved | -25% | 0% |
Before writing queries, consult references/api-reference.md for sport codes and command parameters.
Read this first — what this skill can and cannot return:
total_stake), primary-line flag (favourite).selections_available per market; availability varies (pre-game core markets usually have books; in-play and low-activity markets often come back [null, null]).selections_available is False, only structure and matched stake exist — never invent odds. Complete odds coverage lives behind the authenticated ProphetX Affiliate API, a separate credentialed Machina connector — never wire tokens into this skill.Prefer the CLI — it avoids Python import path issues:
bashsports-skills prophetx get_sports_config sports-skills prophetx search_markets --sport=nfl --query="Eagles" sports-skills prophetx get_todays_events --sport=mlb sports-skills prophetx get_tournaments --sport=soccer sports-skills prophetx get_markets --event_id=19742 --api_version=v2
Python SDK (alternative):
pythonfrom sports_skills import prophetx prophetx.get_sports_config() prophetx.search_markets(sport="nfl", query="Eagles") prophetx.get_todays_events(sport="mlb") prophetx.get_events(109) # tournament_id prophetx.get_markets(19742, api_version="v2") # event_id prophetx.get_market(19742, 219) # market id or "19742:219"
id is the market-TYPE id (219 = Moneyline on ANY event) — the stable per-event key is market_key ("<event_id>:<market_id>").api_version="v2" adds category, subType, alt lines (market_lines) and player props; default v1 is the lean catalog. v2 automatically falls back to v1 on failure.selections_available before reading odds fields — odds exist only where a public order book does; never present total_stake (matched volume) as odds or liquidity.soccer, tennis, basketball, baseball, ice-hockey, american-football + aliases (nfl, nba, mlb, nhl, epl, mls, worldcup, ...).search_markets --sport=nfl --query="Eagles" — soonest matching events with their markets.selections_available: true, and say explicitly when a market's public book is empty.get_todays_events --sport=mlb — today's events (UTC) with home/away and schedule.get_markets --event_id=<id> --api_version=v2 for the full catalog (player props, alt lines).get_sports_config — sports and live tournaments.get_tournaments --sport=soccer → get_events --tournament_id=<id>.status values observed: not_started, live._raw preserves the full provider payload on every normalized record.sports-skills markets search_entity --query="Yankees" includes a prophetx section (top-of-book odds per outcome when a public book exists; events without any exposed book are flagged with a note).| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 15,260 | 8,553 | -44% | 1 | 1 | 0% | 2,235 | 1,652 | -26% | 0 | 0 | — |
case-02 | fail→fail | 19,192 | 6,342 | -67% | 1 | 1 | 0% | 2,829 | 1,247 | -56% | 0 | 0 | — |
case-03 | fail→fail | 17,642 | 7,662 | -57% | 1 | 1 | 0% | 2,629 | 1,317 | -50% | 0 | 0 | — |
case-04 | pass→pass | 12,223 | 8,287 | -32% | 1 | 1 | 0% | 2,009 | 2,342 | +17% | 0 | 0 | — |
case-05 | fail→pass | 20,797 | 10,050 | -52% | 1 | 1 | 0% | 3,472 | 2,695 | -22% | 0 | 0 | — |
case-06 | pass→pass | 14,424 | 8,378 | -42% | 1 | 1 | 0% | 2,263 | 2,347 | +4% | 0 | 0 | — |
case-07 | fail→pass | 17,146 | 16,700 | -3% | 1 | 1 | 0% | 2,634 | 3,801 | +44% | 0 | 0 | — |
case-08 | fail→pass | 16,304 | 8,105 | -50% | 1 | 1 | 0% | 2,553 | 2,391 | -6% | 0 | 0 | — |
case-09 | pass→pass | 13,766 | 3,856 | -72% | 1 | 1 | 0% | 1,886 | 1,578 | -16% | 0 | 0 | — |
case-10 | fail→pass | 12,919 | 3,544 | -73% | 1 | 1 | 0% | 1,809 | 1,578 | -13% | 0 | 0 | — |
case-11 | pass→pass | 15,658 | 2,715 | -83% | 1 | 1 | 0% | 2,291 | 1,341 | -41% | 0 | 0 | — |
case-12 | pass→pass | 11,985 | 2,350 | -80% | 1 | 1 | 0% | 1,837 | 1,237 | -33% | 0 | 0 | — |
case-13 | fail→pass | 13,902 | 5,054 | -64% | 1 | 1 | 0% | 2,324 | 1,741 | -25% | 0 | 0 | — |
case-14 | fail→pass | 10,965 | 4,834 | -56% | 1 | 1 | 0% | 1,635 | 1,698 | +4% | 0 | 0 | — |
case-15 | fail→pass | 6,990 | 5,242 | -25% | 1 | 1 | 0% | 1,168 | 1,842 | +58% | 0 | 0 | — |
case-16 | fail→pass | 9,678 | 15,184 | +57% | 1 | 1 | 0% | 1,522 | 1,878 | +23% | 0 | 0 | — |
case-17 | fail→pass | 10,131 | 4,828 | -52% | 1 | 1 | 0% | 1,739 | 1,816 | +4% | 0 | 0 | — |
case-18 | pass→pass | 16,927 | 8,698 | -49% | 1 | 1 | 0% | 2,555 | 2,198 | -14% | 0 | 0 | — |
case-19 | pass→pass | 11,878 | 4,395 | -63% | 1 | 1 | 0% | 1,709 | 1,588 | -7% | 0 | 0 | — |
case-20 | fail→pass | 11,755 | 4,843 | -59% | 1 | 1 | 0% | 1,701 | 1,550 | -9% | 0 | 0 | — |
case-21 | pass→pass | 19,754 | 8,200 | -58% | 1 | 1 | 0% | 2,561 | 1,941 | -24% | 0 | 0 | — |
case-22 | fail→pass | 9,899 | 8,808 | -11% | 1 | 1 | 0% | 1,736 | 2,470 | +42% | 0 | 0 | — |
case-23 | pass→pass | 10,234 | 4,682 | -54% | 1 | 1 | 0% | 1,160 | 1,567 | +35% | 0 | 0 | — |
case-24 | fail→pass | 9,943 | 8,160 | -18% | 1 | 1 | 0% | 1,240 | 2,033 | +64% | 0 | 0 | — |
case-25 | pass→pass | 5,743 | 15,632 | +172% | 1 | 1 | 0% | 641 | 2,437 | +280% | 0 | 0 | — |
case-26 | fail→pass | 6,425 | 5,261 | -18% | 1 | 1 | 0% | 760 | 1,736 | +128% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 26 cases were attempted, and 23 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +50 percentage points is the difference between those two pass rates over the 23 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.