Catalog PyPI
Back to packageRELEASE DETAILS

0.1.0

PyPI

55tech

Python client for the 55Tech REST and WebSocket APIs

55techapibettingbookmakeroddssdk
Published10 Oct 2026
Direct dependencies3
Transitive dependenciesNot calculated

README

Version 0.1.0 documentation

55tech

A Python client for the 55Tech REST and WebSocket APIs.

Unofficial: not affiliated with or endorsed by 55Tech.

pip install 55tech

REST

from fiftyfivetech import FiftyFiveTechClient

client = FiftyFiveTechClient(api_key)

markets = client.get_markets(sport_id=10).markets
fixtures = client.get_fixtures(sport_id=10).fixtures
odds = client.get_fixture_odds(fixtures[0].fixture_id, bookmakers=["pinnacle"]).odds

Errors derive from FiftyFiveTechError.

Streaming

import threading
from fiftyfivetech.streaming import FixtureBook, Reconnect, SnapshotRequired, StreamListener

listener = StreamListener()
stream = client.create_stream(listener, channels=["odds", "bookmakers"],
                              bookmakers=["pinnacle"], sport_ids=[10])
threading.Thread(target=stream.start, daemon=True).start()

# Seed each fixture you follow, after the stream is connected
listener.apply_snapshot(client.get_fixture_odds(fixture_id, bookmakers=["pinnacle"]), ["pinnacle"])

while True:
    update = listener.output_queue.get()
    if isinstance(update, FixtureBook):
        if update.is_tradeable("pinnacle"):          # has odds, not stale, not suspended
            record = update.get("pinnacle", outcome_id)
            ...
    elif isinstance(update, SnapshotRequired):
        ...    # updates were missed: call apply_snapshot again for each fixture you follow
    elif isinstance(update, Reconnect):
        stream.stop()    # the gateway is about to close: start() again

The listener merges stream updates and snapshots into one FixtureBook per fixture, keeping the later changed_at per record. remove_fixture frees a finished one.

start() raises FiftyFiveTechSocketError when the connection drops; call it again to reconnect and resume.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 3

Native requirements
3 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
requests
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
requests>=2.28runtime
websocket-client
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
websocket-client>=1.6runtime
zstandard
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
zstandard>=0.22runtime

Distribution files

2 collected
55tech-0.1.0-py3-none-any.whl

bdist_wheel · 30.49 KB · Python py3

Source file
55tech-0.1.0.tar.gz

sdist · 21.01 KB · Python source

Source file

Repository

PENDING
brandon-betdex/55tech-sdk-python

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 16:03 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:dd2e5ffc0fa013fc0d52f3e8ddb71202fbf1ae14c91c97a95ab88e13da859d22

Other collected versions

View all collected versions →