Betwatch Python SDK
The Betwatch Python SDK allows you to interact with the Betwatch.com API to integrate up to date racing price data into your Python applications.
Disclaimer
This library is provided on a best-effort basis in order to lower the barrier of entry for accessing the Betwatch API. No guarantees are made for the reliability of this library and development will be ongoing.
Installation
pip install betwatch
Usage
See examples
A Betwatch API key is required. Please contact api@betwatch.com for more information.
Development
Setup
Install dependencies using uv:
uv sync
Install pre-commit hooks:
pre-commit install --hook-type commit-msg
Commit Convention
This project follows Conventional Commits for automatic changelog generation. All commit messages must follow this format:
<type>(<scope>): <subject>
[optional body]
[optional footer]
Types:
feat: A new feature (triggers minor version bump)fix: A bug fix (triggers patch version bump)docs: Documentation only changesstyle: Changes that don't affect code meaning (white-space, formatting)refactor: Code change that neither fixes a bug nor adds a featureperf: Performance improvementtest: Adding missing testschore: Changes to build process or auxiliary tools
Breaking Changes:
Add ! after the type or BREAKING CHANGE: in the footer to trigger a major version bump.
Examples:
feat: add support for new market types
fix: resolve race condition in async client
docs: update API examples
feat!: change API endpoint structure
The pre-commit hook will validate your commit messages automatically.
Running Tests
uv run pytest
Linting and Type Checking
uv run ruff check .
uv run basedpyright
Generating Changelog Locally
To see what the changelog would look like:
git-cliff --unreleased
Releasing
This project uses GitHub Actions for automated releases and publishing to PyPI.
Release Process
- Go to the Actions tab in GitHub
- Click "Run workflow"
- Enter the new version number (e.g.,
1.8.0) - Select the release type (
major,minor, orpatch) - Click "Run workflow"
This will:
- Create a release branch with the version bump
- Generate a changelog from recent commits
- Create a Pull Request for the release
- Auto-merge the PR (if CI passes)
- Create a GitHub release with the changelog
- Trigger the publish workflow to upload to PyPI
Manual Release
If you need to create a release manually:
- Update the version in
pyproject.toml - Commit the change:
git commit -am "chore: bump version to X.Y.Z" - Create a tag:
git tag vX.Y.Z - Push the tag:
git push origin vX.Y.Z - Create a GitHub release from the tag
The publish workflow will automatically upload to PyPI when a GitHub release is published.
Metadata
Release files for betwatch 1.7.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| betwatch-1.7.4.tar.gz | 8.8 MB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| betwatch-1.7.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.8 MB
Release files / betwatch-1.7.4.tar.gz
| Download URL | betwatch-1.7.4.tar.gz |
|---|---|
| Size | 8.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
996817f9c33879d96ed7ecb35ca6dc7ad46db5a9c2fd5c5ad779416ef8038255
|
|
BLAKE2b-256 checksum How to use checksums |
c7edf8469e71acf2d443c0293909eb7728fcd874ff3354154a6af4ccbc4dd5ed
|
| 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 14, 2026.
Transparency logRelease files / betwatch-1.7.4-py3-none-any.whl
| Download URL | betwatch-1.7.4-py3-none-any.whl |
|---|---|
| Size | 25.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cbc44ee4db3e3e498a525950bd02ce5ee73e8bdf58d13a0517303af27a11dcb2
|
|
BLAKE2b-256 checksum How to use checksums |
6b7be246e003e57be37ca58bd05da89b60ae345a3e2545fb78809f0835169378
|
| 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 14, 2026.
Transparency logSecurity for betwatch 1.7.4
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.
Attestation for betwatch-1.7.4.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 14, 2026.
Transparency logA 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.