Circuit (now Spoke Dispatch) is a last-mile delivery management platform that gives dispatchers route planning and optimization and gives drivers a mobile app for navigation, proof of delivery, and recipient notifications. An API lets you programmatically create and optimize delivery plans, import and manage stops, assign drivers and depots, retrieve optimized routes and ETAs, and subscribe to webhooks for live route and stop events.

Circuit (now branded Spoke Dispatch) is a last-mile delivery management platform that helps courier and delivery teams plan multi-stop routes, optimize them, and track drivers in real time. Dispatchers work in a browser-based planning interface to build and optimize routes, assign stops to drivers, and monitor live progress, while drivers use a mobile app for turn-by-turn navigation, proof of delivery, and status updates. Recipients receive text or email tracking links and dynamic delivery-window notifications, reducing "where is my order?" support calls.
Core capabilities include:
Common data entities:
Circuit publishes a public REST API, but building a resilient production integration on top of last-mile delivery workflows still involves real friction:
Supergood wraps Circuit's public API and authenticated app surfaces in a resilient, normalized integration layer so you can build delivery automation without managing the optimization lifecycle, rate-limit tiers, and live-day edge cases yourself.
Use Circuit with AI agents: Circuit MCP Server →
Book a 30-minute session to confirm your delivery workflows, plan volume, and proof-of-delivery requirements.
We deliver a production-ready Circuit adapter covering plans, stops, routes, drivers, and webhooks tuned to your account.
Go live with continuous monitoring and automatic adaptation as Circuit migrates to Spoke and the API evolves.
Authentication
/authenticateAuthenticate with a Circuit API key using Basic or Bearer auth and establish a session for downstream calls.
Plans
/plansList delivery plans with filters for date and status, including drivers and optimization state.
Plans
/create_planCreate a delivery plan for a specific day, then optimize and distribute it to assigned drivers.
Stops
/import_stopsBatch import stops into a plan with addresses, time windows, and delivery details (up to 1,000 stops per minute).
Routes
/routesRetrieve optimized routes for a plan with per-stop ETA, travel distance, travel duration, and stop order.
Drivers
/driversList drivers with depot assignments, route overrides, and availability for dispatch.
- Create daily delivery plans and batch-import stops from your OMS or WMS - Trigger optimization and distribution, then poll Operations or webhooks for completion - Pull back optimized routes with ETAs, stop order, and travel distance for downstream systems
- Stream stop completion, photos, signatures, and delivery notes into your records - Reconcile timestamped proof-of-delivery against orders for dispute resolution - Push exception and failed-delivery events to support and retention workflows
- Surface live driver location and dynamic delivery windows to customer-facing tracking pages - Trigger arrival and delay alerts from route progress - Reduce WISMO contacts by feeding real-time ETAs into your notification stack
- Provision and update driver records and depot assignments in bulk - Apply route overrides and rebalance stops across drivers on the day of delivery - Keep driver rosters in sync with your HR and scheduling systems
Authentication
Circuit API key via Basic auth (apiKey:empty, base64) or Bearer token, managed in a secure session
Connectivity
Circuit/Spoke public REST API (base https://api.getcircuit.com/public/v0.2b) plus authenticated app surfaces
Response format
Normalized JSON across Plans, Stops, Routes, Drivers, and Depots with Content-type application/json on writes
Rate limits
Adaptive throttling tuned to Circuit's tiers: 10 reads/sec, 5 writes/sec, 3 optimizations/min, batch imports per minute
Session management
Automatic API key handling, credential rotation, and retry of expired or throttled requests
Data freshness
Near real-time route, stop, and driver-location updates with optional scheduled batch syncs
Security
Encrypted credential vault, scoped access, SOC 2-aligned controls, and audit logging
Webhooks
Subscribe to Spoke webhook events for route, stop, and delivery status changes
Latency
Sub-second reads on cached entities; async optimization handled via Operations polling and callbacks
Throughput
Horizontally scaled workers sized to high-volume daily plans, stop imports, and driver rosters
Reliability
Exponential backoff on 429s, idempotent retries, and pagination via nextPageToken
Adaptation
Continuous monitoring of the Circuit-to-Spoke rebrand, API version changes, and endpoint drift
Yes. Circuit (now Spoke Dispatch) publishes a public REST API (v0.2b) for plans, stops, routes, drivers, depots, and webhooks. Supergood wraps it with normalization, async-optimization orchestration, and rate-limit handling so you integrate once against stable objects.
Stops only gain ETA, travel distance, duration, and stop order after a plan is optimized and becomes a Route. Supergood orchestrates the async optimize and distribute Operations and exposes completed routes so you do not have to poll the lifecycle yourself.
Circuit enforces tiered limits (10 reads/sec, 5 writes/sec, slower driver creation and optimization, and per-minute batch import caps). Supergood applies adaptive throttling, batching, and exponential backoff on 429 responses to stay within them.
Yes. Circuit exposes Live Plans and Live Stops for adding, updating, and deleting stops on an already-optimized, distributed plan. Supergood routes day-of changes through these surfaces with consistent semantics.
No. Supergood normalizes across the Circuit (getcircuit.com) and Spoke (spoke.com) surfaces and monitors base-URL, console, and docs changes, so your integration keeps working through the transition.