Skip to content

Sonny's Data Client

A typed Python SDK for the Sonny's Carwash Controls Data API.

sonnys-data-client wraps the Sonny's Carwash Controls REST API with a resource-based interface. Every response is returned as a validated Pydantic v2 model, list calls auto-paginate transparently, and a built-in rate limiter keeps your application within the API's request window.

Features

  • 9 resource types -- Customers, Employees, Giftcards, Items, Recurring Accounts, Sites, Transactions, Washbooks, and the BackOffice scraper
  • Auto-pagination -- .list() calls transparently fetch all pages
  • Rate limiting -- Built-in rate limiter with exponential-backoff retry
  • Pydantic v2 models -- Fully typed responses with validation
  • Batch jobs -- Long-running export operations with polling support
  • BackOffice scraper -- client.backoffice.timeclock() pulls per-shift timeclock data directly from the manager portal, orders of magnitude faster than the Data API labor path

Installation

pip install git+https://github.com/christopher-nance/Sonnys-Data-API-V2.git

Quick Start

from sonnys_data_client import SonnysClient

with SonnysClient(api_id="your-api-id", api_key="your-api-key") as client:
    transactions = client.transactions.list(
        startDate="2024-01-01", endDate="2024-01-31"
    )
    for txn in transactions:
        print(txn.transaction_id, txn.total)

API Reference

  • Client -- SonnysClient constructor and configuration
  • Resources -- Resource classes for each API endpoint
  • Models -- Pydantic response models
  • Exceptions -- Error types and exception hierarchy