API reference
Quickstart: Python
Use the jobbydev Python SDK to drive the API from a script, a Flask / FastAPI app, or a Jupyter notebook.
Last updated
The jobbydev Python package is a hand-written client over the v1 surface. One runtime dep (httpx), Python 3.10+. Works in scripts, Flask / FastAPI, Jupyter notebooks.
Install
pip install jobbydevNote: the SDK ships scaffold-only today (in this repo's sdks/python/directory). It's not yet on PyPI; publish gate is the post-Tier 8 audit.
Initialize
import os
from jobbydev import JobbydevClient
with JobbydevClient(api_token=os.environ["JOBBYDEV_API_TOKEN"]) as jobby:
events = jobby.list_live_events().data
print(f"{len(events)} events live")The context manager closes the underlying httpx connection pool cleanly. For long-lived processes (web servers), instantiate once at app startup and call close() at shutdown.
Join a queue
jobby.queue.join("evt_abc123")
status = jobby.queue.status().data
print(f"Position #{status['rank']}, ~{status['estimated_wait_seconds']}s wait")Errors
from jobbydev import JobbydevError
try:
result = jobby.matches.accept(match_id)
except JobbydevError as exc:
if exc.code == "OFF_SESSION_CONSENT_REQUIRED":
checkout_url = (exc.details or {}).get("checkout_url")
# surface to the user
if exc.status == 429:
print(f"Retry after {exc.retry_after_seconds}s")
raiseWebhooks
jobby.webhooks.create(
target_url="https://my-app.example.com/jobbydev",
events=["match.matched", "match.accepted", "match.declined"],
description="Slack bot for new matches",
)Auto-retry on 429
jobby = JobbydevClient(
api_token=os.environ["JOBBYDEV_API_TOKEN"],
retry_on_429=True,
)Async
v0 of the SDK is sync-only. Async support (using httpx.AsyncClient) is planned but not shipped — for now, run sync calls in a worker thread or use the REST API directly with your own httpx async client.
Pandas / Jupyter ergonomics
import pandas as pd
# Read recent matches into a DataFrame
matches = jobby.request("GET", "/matches?limit=100").data
df = pd.DataFrame(matches["data"])
df.head()