Skip to main content

vibe-trading-livetennis

A custom Vibe-Trading data loader for tennis event-market price series, with optional live match-state enrichment. Observe-only, MIT-licensed.

Disclosure: this package is maintained by the Live Tennis API team (https://livetennisapi.com). It is vendor-authored — judge accordingly. The price series it loads comes from Polymarket's own public, keyless API; the optional enrichment uses our free tier.

Why this is a separate package (not a PR into Vibe-Trading)

We first proposed a live-tennis tool for the Vibe-Trading repo in HKUDS/Vibe-Trading#1133. The maintainer declined bundling it — correctly, because a tool bundled into the package must run on free public sources, and a keyed API is a dependency the project can't own for its users. In the same breath they pointed at the honest path:

"a skill plus a custom loader. The project supports registering your own data source and writing a skill that documents its interface, so anyone who wants live tennis state alongside event contracts can wire yours up without it being part of the package."

This repo is exactly that: a standalone loader + SKILL.md you register into your own install. Nothing is added to the Vibe-Trading tree.

What it does

  • Registers one data source, polymarket_tennis, implementing Vibe-Trading's DataLoaderProtocol. fetch(...) returns {symbol: DataFrame(trade_date index; open/high/low/close/volume)}.
  • The OHLC series is built from Polymarket's public keyless CLOB price history — the recorded implied-probability series for a tennis event-market outcome (each share settles $1/$0, so the price is the market's implied probability). This mirrors Vibe-Trading's own prediction_market tool, exposed through the loader interface.
  • Optional live match-state enrichment from the Live Tennis API free tier — live score, which player is serving, and a derived break-point flag — gated on LIVETENNIS_API_KEY. No key → enrichment off, loader still works.
  • A conservative market↔match player-name matcher (reusing the ideas in livetennisapi/polymarket-tennis) that returns None rather than guessing when names are ambiguous.

Quickstart

pip install vibe-trading-livetennis
import vibe_trading_livetennis
from vibe_trading_livetennis import DataLoader

vibe_trading_livetennis.register()   # wire `polymarket_tennis` into your install

loader = DataLoader()
frames = loader.fetch(
    ["will-jannik-sinner-win-the-2026-mens-us-open#Yes"],
    "2026-02-01", "2026-02-13", interval="1D",
)
print(frames["will-jannik-sinner-win-the-2026-mens-us-open#Yes"].tail())

A symbol is a Polymarket market slug, numeric market id, 0x condition id, or raw CLOB token id, optionally suffixed #<outcome> (default: first outcome). See SKILL.md for the full interface and registration notes.

Honest coverage (read before backtesting)

  • The series is a genuine recorded history of implied probability from CLOB /prices-history — not fabricated, not a live snapshot relabelled as history.
  • It is implied probability in [0, 1], not a conventional asset price.
  • CLOB history has no per-bar volume, so volume is 0.0 on every bar.
  • Coverage is only as deep as the market's own lifetime (a tennis market lives days to weeks). There is no multi-year OHLC; deep historical backtests need your own recorded series. The loader serves the market's real recorded window, live/recent included.
  • A market must exist on Polymarket and resolve to one outcome token; otherwise that symbol is omitted (one bad symbol never aborts the batch).

Tiers (enrichment only)

The price loader needs no key. The optional live-state enrichment uses the Live Tennis API free keyed tier: 30 req/min, 100 req/day — live scores (score / server / break-point), players (including current ranking), fixtures, usage. 100/day is a develop-and-test or ~15-minute-cadence budget, not continuous fast polling. Completed-match history and point-by-point are Basic; the market-prices feed is Pro; model win-probability and in-play stats are Ultra. This package requires none of them — market prices come from Polymarket's public API and enrichment uses only free-tier endpoints. Free keys: https://livetennisapi.com/subscribe/free

Observe-only

Every request this package makes is a GET to a public data endpoint. It has no order, position, wallet or account surface, and it computes no trading signal — it is a data source, not a strategy or an executor.

Development

pip install -e ".[dev]"
ruff check .
pytest

License

MIT — see LICENSE.

Metadata

Release files for vibe-trading-livetennis 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vibe-trading-livetennis 0.1.0
File Size Uploaded Provenance
vibe_trading_livetennis-0.1.0.tar.gz 21.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for vibe-trading-livetennis 0.1.0
File Interpreter ABI Platform
vibe_trading_livetennis-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 40.2 kB

Release files / vibe_trading_livetennis-0.1.0.tar.gz

Download URL vibe_trading_livetennis-0.1.0.tar.gz
Size 21.7 kB
Tags Source
SHA-256 checksum
How to use checksums
cdf00e043398b79610f9f4847a33296fb4f1a313bf7b3bcf4792b0c6c17f7f61
BLAKE2b-256 checksum
How to use checksums
595749c6030fc07f7c5d63f38e8f0252e141a64260a73fa87587f712b3233ad5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / vibe_trading_livetennis-0.1.0-py3-none-any.whl

Download URL vibe_trading_livetennis-0.1.0-py3-none-any.whl
Size 18.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
582351e7d582af1785198168a6efa5f1f3022b06b15a998d2e94ab45baec5e80
BLAKE2b-256 checksum
How to use checksums
6c787a46066b7902c31d42d1f1944f8d48f944e43f767e2340f226613007de74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Security for vibe-trading-livetennis 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for vibe_trading_livetennis-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page