# info.description
Public estimates, reservation requests and status without an account, API key or manual enrollment. Omit Authorization for public access. Quote and booking IDs are confidential unguessable capabilities. Optional partner keys retain isolated access to existing partner resources. The API does not charge a card: it returns a hosted Stripe deposit checkout. A paid deposit does not establish driver availability. Check /agents.json for configuration readiness. No MCP endpoint is advertised by this specification.

# paths./api/agent/v1/quotes.post.summary
Calculate a server-owned estimate valid up to 15 minutes

# paths./api/agent/v1/quotes.post.description
Public operation; no API key or signup. Keep the returned quoteId private: it authorizes booking that quote. No reservation or payment. Use full addresses, actual vehicle state and a timezone-qualified future date. Destination required for towing and vehicle_delivery; batteryServiceType required for battery; tireDimensions required for flat_tire. Motorway incidents, heavy vehicles, blocked_vehicle and other require manual dispatch. No price is returned if address or route verification fails. No live driver availability is promised.

# paths./api/agent/v1/quotes.post.responses.404.description
Resource not found or belongs to another partner

# paths./api/agent/v1/quotes.post.responses.409.description
Idempotency conflict, quote already booked, or checkout recovery required

# paths./api/agent/v1/quotes.post.responses.422.description
Invalid fields or manual review required; do not retry unchanged

# paths./api/agent/v1/quotes.post.responses.429.description
Automatic quota exceeded; Retry-After: 60

# paths./api/agent/v1/quotes.post.responses.503.description
Not configured or temporarily unavailable

# paths./api/agent/v1/bookings.post.summary
Create a reservation request and a hosted deposit payment link

# paths./api/agent/v1/bookings.post.description
No API key or signup. Possession of a public quoteId permits booking that quote. Requires prior customer authorization and acceptance of terms. Submit only a quoteId and an option from that quote. Server prices are authoritative. Public idempotency is scoped to the quote; use a fresh random key for each new booking. Preserve the Idempotency-Key and the exact payload on retries, including after 503/timeouts or quote expiry. Each quote creates at most one booking. Do not create a new quote to work around a failed payment or an unknown booking outcome; contact dispatch. Success is awaiting_payment until a verified Stripe webhook arrives.

# paths./api/agent/v1/bookings.post.responses.404.description
Resource not found or belongs to another partner

# paths./api/agent/v1/bookings.post.responses.409.description
Idempotency conflict, quote already booked, or checkout recovery required

# paths./api/agent/v1/bookings.post.responses.422.description
Invalid fields or manual review required; do not retry unchanged

# paths./api/agent/v1/bookings.post.responses.429.description
Automatic quota exceeded; Retry-After: 60

# paths./api/agent/v1/bookings.post.responses.503.description
Not configured or temporarily unavailable

# paths./api/agent/v1/bookings/{id}.get.description
No API key for a public booking. Keep the bookingId private; possession grants access to its status and tracking link. Existing partner bookings still require their original partner key.

# paths./api/agent/v1/bookings/{id}.get.summary
Read booking and deposit status using its confidential bookingId

# paths./api/agent/v1/bookings/{id}.get.responses.200.description
Booking status (no customer identity returned)

# paths./api/agent/v1/bookings/{id}.get.responses.404.description
Resource not found or belongs to another partner

# paths./api/agent/v1/bookings/{id}.get.responses.409.description
Idempotency conflict, quote already booked, or checkout recovery required

# paths./api/agent/v1/bookings/{id}.get.responses.422.description
Invalid fields or manual review required; do not retry unchanged

# paths./api/agent/v1/bookings/{id}.get.responses.429.description
Automatic quota exceeded; Retry-After: 60

# paths./api/agent/v1/bookings/{id}.get.responses.503.description
Not configured or temporarily unavailable

# components.securitySchemes.partnerKey.description
Optional legacy partner secret. Omit this header for public access without enrollment. Server-side use only; never put it in browser code, URLs or prompts.

# components.schemas.QuoteInput.properties.interventionAt.description
ISO 8601 with timezone; future time, at most 180 days ahead. Europe/Paris pricing.

# components.schemas.QuoteInput.properties.onMotorway.description
True requires manual handling; no automated quote or booking.

# components.schemas.BookingInput.properties.authorization.properties.customerConsent.description
The customer authorized this agent to submit this request at the quoted price.

# components.schemas.BookingInput.properties.authorization.properties.termsAccepted.description
The customer accepted the booking and deposit terms.

# components.schemas.Quote.properties.quoteId.description
Confidential capability for this quote. Do not publish.

# components.schemas.Booking.properties.bookingId.description
Confidential capability for public booking status. Do not publish.

# components.schemas.Booking.properties.quoteId.description
Confidential capability for this quote. Do not publish.

# components.schemas.Booking.properties.trackingNumber.description
Confidential bearer tracking reference; do not publish or index it.