One protocol. Three phases.
San FranciscoSame ADEV loop as the India network — Discover find, Decide estimate, Dock transact — but a different world underneath. The consumer is a robotaxi fleet rather than a driver, so a reservation holds a bay for a named vehicle, prices are USD on time-of-use bands, and depots are operator-exclusive: a Waymo cannot dock at a Tesla depot, and the API says so.
Discover: what does the SF network look like right now?
/api/v1/us/sitesNeighborhood clusters with tower, bay and availability rollups.curl -s https://os.autodockai.com/api/v1/us/sites/api/v1/us/towers?kind=Sites with live draw, grid headroom and $/kWh; filter by tower, depot or partner-depot.curl -s 'https://os.autodockai.com/api/v1/us/towers?kind=depot'/api/v1/us/towers/:idOne site: every bay, live kW against the grid limit, TOU band.curl -s https://os.autodockai.com/api/v1/us/towers/ADK-SFO-EMB-T1/api/v1/us/availabilityThe core query: free bays near a point. Depots are operator-exclusive, so pass operator.curl -s 'https://os.autodockai.com/api/v1/us/availability?lat=37.7905&lng=-122.395&radiusKm=5&connector=NACS&minKw=350&operator=waymo'/api/v1/us/pricing?towerId=Live tariff in USD: fleet-contract vs retail rate, TOU band, no-show fee.curl -s 'https://os.autodockai.com/api/v1/us/pricing?towerId=ADK-SFO-EMB-T1&tier=fleet'/api/v1/us/fleet?operator=The robotaxi roster: SoC, state, position and spend today, per vehicle.curl -s 'https://os.autodockai.com/api/v1/us/fleet?operator=waymo'/api/v1/us/fleet/:idOne vehicle: platform, live SoC, what it is doing and where.curl -s https://os.autodockai.com/api/v1/us/fleet/waymo-W-041/api/v1/us/stats/networkFleet KPIs: vehicles on trip, charging and planning, avg SoC, kWh and revenue today.curl -s https://os.autodockai.com/api/v1/us/stats/networkDecide: which vehicle goes where, and what does it cost?
/api/v1/us/sessions?limit=Completed charging sessions, newest first (CDR-shaped).curl -s 'https://os.autodockai.com/api/v1/us/sessions?limit=20'Execute: hold a bay for a named vehicle, then release it.
/api/v1/us/bookingsHold a bay for a fleet vehicle: 12-min hold, $2 credited on arrival, $5 no-show. Resolve a free bay first — on a live network any given bay is usually mid-session.BAY=$(curl -s 'https://os.autodockai.com/api/v1/us/availability?lat=37.7905&lng=-122.395&radiusKm=5&operator=waymo' \
| jq -r '.[0].freeBayIds[0]')
curl -s -X POST https://os.autodockai.com/api/v1/us/bookings \
-H 'content-type: application/json' \
-d "{\"bayId\":\"$BAY\",\"vehicleId\":\"waymo-W-041\"}"/api/v1/us/bookings?bayId=Release a held bay back to Available.curl -s -X DELETE "https://os.autodockai.com/api/v1/us/bookings?bayId=$BAY"/api/v1/us/x402/tools/:toolThe same tools, metered. Answers 402 with a USD quote before running.curl -s -i -X POST https://os.autodockai.com/api/v1/us/x402/tools/book_charging_slot \
-H 'content-type: application/json' \
-d "{\"bayId\":\"$BAY\",\"vehicleId\":\"waymo-W-041\"}"Connect an agent over MCP
Streamable HTTPThe SF network runs its own MCP server, separate from India’s. An agent connected here can only ever act on San Francisco, so “find me a bay” can never be answered with a Bengaluru tower. Point Claude at the endpoint and ask it to dispatch a robotaxi.
Endpoint
https://os.autodockai.com/api/us/mcpClaude config · .mcp.json or claude_desktop_config.json
{
"mcpServers": {
"autodock-us": {
"type": "http",
"url": "https://os.autodockai.com/api/us/mcp"
}
}
}| Tool | Phase | Purpose |
|---|---|---|
| find_available_bays | Discover | Free bays near a point, by connector, minimum kW and operator. |
| get_site_status | Discover | One site: bay states, live draw against the grid limit, headroom. |
| get_pricing | Discover | Effective $/kWh now, fleet or retail, with the live TOU band. |
| get_fleet_stats | Discover | Fleet KPIs: on trip, charging, planning, avg SoC, kWh today. |
| list_fleet_vehicles | Discover | The robotaxi roster, so an agent can pick a vehicle to dispatch. |
| estimate_charge_time | Decide | Taper-aware minutes, kWh and USD to a target SoC for one vehicle. |
| book_charging_slot | Dock | Hold a bay for a named vehicle; returns the 12-min hold window. |
| cancel_booking | Dock | Release a held bay back to Available. |
x402 · autonomous settlement
Live on Solana devnetEvery tool above is also available metered. POST /api/v1/us/x402/tools/:tool answers 402 Payment Required with an exact-scheme quote in USD; the agent signs a USDC TransferChecked, retries with the PAYMENT-SIGNATURE header, and the bay is held only once settlement confirms. Both networks settle in the same USDC — only the quoting currency differs. The unpaid /api/v1/us/bookings route stays open alongside it.
Wallets, the simulation/real toggle and the receipt ledger live on the x402 console.