Observed since 20 Oct, 16:03 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
55tech
Python client for the 55Tech REST and WebSocket APIs
A Python client for the 55Tech REST and WebSocket APIs.
Unofficial: not affiliated with or endorsed by 55Tech.
pip install 55tech
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.
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.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
requestsEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | requests>=2.28 | runtime |
websocket-clientEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | websocket-client>=1.6 | runtime |
zstandardEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | zstandard>=0.22 | runtime |
bdist_wheel · 30.49 KB · Python py3
sdist · 21.01 KB · Python source
Shared repository data · GitHub
Observed since 20 Oct, 16:03 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:dd2e5ffc0fa013fc0d52f3e8ddb71202fbf1ae14c91c97a95ab88e13da859d22