Skip to main content

Official Python SDK for the Saturday Nutrition Intelligence API

Project description

Saturday Python SDK

PyPI License: MIT

Official Python SDK for the Saturday Nutrition Intelligence API.

Personalized fuel, hydration, and electrolyte prescriptions for endurance athletes.

Install

pip install saturday

Quick Start

from saturday import Saturday

client = Saturday(api_key="sk_live_...")

# Calculate a nutrition prescription
prescription = client.nutrition.calculate(
    activity_type="bike",
    duration_min=180,
    athlete_weight_kg=75,
    thermal_stress_level=7,
    is_race=True,
)

# Safety metadata is ALWAYS included — athlete safety is never paywalled
print(prescription["safety"]["warnings"])
print(f"Carbs: {prescription['carb_g_per_hr']} g/hr")
print(f"Sodium: {prescription['sodium_mg_per_hr']} mg/hr")
print(f"Fluid: {prescription['fluid_ml_per_hr']} mL/hr")

Features

  • Fully typed with py.typed marker (PEP 561)
  • Automatic retry with exponential backoff (429s and 5xx)
  • Typed errors (AuthenticationError, RateLimitError, ValidationError, NotFoundError)
  • API key and OAuth2 Bearer token authentication
  • Context manager support for clean connection handling
  • Safety types prominently surfaced (not_instructions documented)

Authentication

# API key (server-to-server)
client = Saturday(api_key="sk_live_...")

# OAuth2 Bearer token (athlete-delegated access)
client = Saturday(api_key="sk_live_...", bearer_token="eyJ...")

# Context manager for automatic cleanup
with Saturday(api_key="sk_live_...") as client:
    rx = client.nutrition.calculate(activity_type="run", duration_min=60)

Error Handling

from saturday import Saturday, RateLimitError, ValidationError, NotFoundError

client = Saturday(api_key="sk_live_...")

try:
    rx = client.nutrition.calculate(activity_type="swim", duration_min=60)
except ValidationError as e:
    print(f"Invalid request: {e} (param: {e.param})")
except RateLimitError as e:
    print(f"Rate limited. Retry after {e.retry_after}s")
except NotFoundError:
    print("Resource not found")

Resources

Resource Description
client.nutrition Calculate prescriptions, batch calculate
client.athletes Athlete CRUD, settings, batch create, GDPR export
client.activities Activity CRUD, prescription calculation, feedback
client.products Product search, barcode lookup, curated list
client.ai AI coaching conversations
client.webhooks Webhook registration and management
client.organizations Team/org management with members
client.gear Athlete gear inventory
client.knowledge Sports nutrition knowledge base search

Documentation

Full API documentation: docs.saturday.fit

Requirements

  • Python 3.9+
  • httpx 0.25+

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

saturday-0.2.0.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

saturday-0.2.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file saturday-0.2.0.tar.gz.

File metadata

  • Download URL: saturday-0.2.0.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for saturday-0.2.0.tar.gz
Algorithm Hash digest
SHA256 484e65403f6ec46443567e6d2af0b926eb01f146e49654fe981c3288264f3dd0
MD5 c95a13c58314fd3c1a11a21a265ad905
BLAKE2b-256 c463a77922de950b809862bb08861f5e61346edc57865d746c140547d6735689

See more details on using hashes here.

Provenance

The following attestation bundles were made for saturday-0.2.0.tar.gz:

Publisher: publish.yml on SaturdayInc/saturday-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file saturday-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: saturday-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for saturday-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 848a91816ac7a7b5108571de04238fde49d7b9a8b9902244ffbfb88dc6f777ed
MD5 c12f9feb75359e85f531f65d5e143b8a
BLAKE2b-256 834fe8b9d2aaaf8269292786b56ff2dbbdd37010f13a42fc0abcd5e1454e9b44

See more details on using hashes here.

Provenance

The following attestation bundles were made for saturday-0.2.0-py3-none-any.whl:

Publisher: publish.yml on SaturdayInc/saturday-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page