RentADriver
Get API key
For AI agents

Hire drivers for real-world deliveries, from any agent

One MCP server, 36 tools, one REST API. Your agent can price a job, book it, follow the driver, read the proof and pay — without a human in the loop except to top up the wallet (and not even that, with USDC).

1. Paste this into your agent

Set up RentADriver so this agent can book real-world package deliveries.
1. Run: npx -y rentadriver-mcp setup   (or add the MCP config from rentadriver.ai/for-agents)
2. If there is no API key yet, call the signup tool with my name and email — it returns a key once and a $20 welcome credit.
3. Test with check_coverage and get_quote (both free). Before booking, always call create_delivery with dryRun=true and show me the price.
4. Book with create_delivery, then track_delivery until delivered, then get_proof_of_delivery and confirm_delivery.

2. Or add the MCP config yourself

{
  "mcpServers": {
    "rentadriver": {
      "command": "npx",
      "args": ["-y", "rentadriver-mcp"],
      "env": { "RENTADRIVER_API_KEY": "rd_live_YOUR_KEY" }
    }
  }
}

Any MCP-compatible client works: Claude Desktop, Claude Code, Cursor, Windsurf, Cline, custom agents. Test with get_quote first — it needs no key.

3. Not on MCP? Use the REST API

# import the spec as tools
spec = requests.get("https://api.rentadriver.ai/.well-known/openapi.json").json()
# or hand-write the three that matter:
tools = [
  {"type": "function", "function": {"name": "get_quote", "description": "Price a delivery", "parameters": spec["components"]["schemas"]["QuoteRequest"]}},
  {"type": "function", "function": {"name": "create_delivery", "description": "Book a delivery (needs x-api-key)", "parameters": spec["components"]["schemas"]["CreateDeliveryRequest"]}},
  {"type": "function", "function": {"name": "track_delivery", "parameters": {"type": "object", "properties": {"delivery_id": {"type": "string"}}}}},
]
Discovery
  • check_coverageTells you whether an address or a lat/lng pair is inside a RentADriver service area, which city it maps to, and the nearest area with distance if it isn't covered..
  • list_service_areasLaunch cities with country, currency, timezone, centre, radius, launch phase and the minimum price.
  • get_quotePrices a delivery from one pickup to one or more drop-offs.
  • list_intercity_lanesLists the city-to-city lanes between launch cities (Melbourne → Sydney, London → Birmingham, Chicago → New York and more) with road distance, transit time including rest breaks, sample prices for the express, standard and shared speed tiers, and the next fixed shared departures in the origin timezone..
  • get_intercity_quotePrices a city-to-city delivery with a dedicated driver or a shared lane run.
  • get_platform_statsLive counts: drivers signed up, on shift now, service areas, deliveries, agents connected, founding-driver signups.
Account
  • signupCreates an organisation for an agent, app or business and returns an API key exactly once, plus a $20 welcome credit.
  • check_account_statusConfirms the configured key works and returns the account name, plan, wallet balance, spending caps and which capabilities are enabled (card deposits, x402).
  • get_wallet_balanceCurrent balance in cents with the last 50 ledger entries (deposits, holds, releases, captures, tips, refunds)..
  • create_wallet_depositCreates a Stripe Checkout session for a card deposit and returns the URL a human must open to pay.
  • create_x402_depositAgent-native funding without a card.
  • set_spending_controlsCaps what the account can spend per delivery and per rolling 24 hours.
  • list_api_keysLists the account's keys with prefix, name, last use and revocation state.
  • create_api_keyIssues an additional key (max 10 active) for another agent or environment.
  • revoke_api_keyPermanently deactivates a key.
Deliveries
  • create_deliveryBooks a delivery from a quote_id or directly from pickup and drop-offs.
  • create_store_pickupShortcut for the most common agent job: a driver collects a prepaid order from a store using the order reference and delivers it with a photo and the recipient's name.
  • create_batchSubmits up to 25 create_delivery payloads in one call and returns a per-item result, so one bad address does not fail the batch..
  • fund_deliveryHolds the price from the wallet for a delivery created with fund=false, or retries funding after a deposit.
  • get_deliveryFull delivery record by id or short code: status, next_action, stops with statuses, driver summary and live position while active, ETAs, proof summary, timestamps..
  • list_deliveriesPages through the account's deliveries, newest first.
  • track_deliveryCompact live view for polling: status, next_action, ETAs, driver first name and position, per-stop progress, last event and the SSE stream URL.
  • get_delivery_eventsEvery event on the delivery in order: created, funded, dispatching, offers_sent, assigned, each driver step, delivered, confirmed, paid, plus messages and location pings..
  • update_deliveryChanges instructions, contingency rules, the drop-off contact or the window while the job is in progress.
  • cancel_deliveryCancels and releases the hold.
  • create_returnBooks the reverse trip of a completed delivery: the driver collects from the last drop-off and brings the item back to the original pickup, with proof at both ends..
Driver communication
  • send_message_to_driverSends a message to the assigned driver as a push notification and in-app thread.
  • get_delivery_messagesThe full message thread between your account and the driver for one delivery, oldest first..
Proof and settlement
  • get_proof_of_deliverySigned photo URLs (valid one hour), signature image, recipient name, OTP result, coordinates and timestamps for the delivery and each stop..
  • confirm_deliveryConfirms a delivered job, captures the held funds and releases the driver's pay.
  • open_disputeFreezes the funds and asks a human to review the proof.
  • tip_driverAdds a tip from the wallet after delivery.
  • rate_driver1–5 stars with an optional comment.
Webhooks
  • register_webhookRegisters a URL for delivery.* events (or a subset).
  • list_webhooksActive webhooks on the account..
  • delete_webhookDeactivates a webhook.

Resources: delivery://{id}, coverage://{area}, openapi://spec. Prompt: plan_delivery. Full REST reference in the docs.

Design rules your agent can rely on

Price before money

get_quote is free and returns the full breakdown. create_delivery supports dryRun. Nothing moves until fund.

next_action everywhere

Every delivery response says what to do next: fund, wait, track, confirm, dispute, retry.

Idempotent creates

Send idempotency_key and a crashed retry returns the same delivery, not a second one.

Spending controls

Cap per-delivery and daily spend from the account; the API refuses anything above it.

Funds only move on outcomes

Held on create, released on cancel or no driver, captured on confirm, frozen on failure until a human reviews.

Proof is structured

Photos, signature, recipient name, OTP, geo and time — not a free-text claim.