/carsSearch cars. With dates, each car gets trip totals for those dates.
Capability: none
rent_trip_total_centsis rent only.display_trip_total_centsis rent plus trip fee. The quote adds the selected options.
cURL
Result (sample data)
Customer and agent API. Quickstart: https://app.carsan.com/agents. Schema: OpenAPI.
The older /api/public/v1 routes are being replaced by these routes.
https://api.carsan.com/v1. Responses use the {"data": ...} envelope unless noted. No key routes are anonymous. Send no credentials on them. API key routes take Authorization: Bearer carsan_YOUR_API_KEY or X-API-Key: carsan_YOUR_API_KEY. Do not send both. _cents suffix. Fields ending in _usd are whole dollars. YYYY-MM-DDTHH:MM, not UTC. Search needs both date_from and date_to. Retry-After seconds. No key can pay, charge, refund, add or remove a card, execute an extension, or start verification. Existing keys are read_only; create and cancel return 403 api_key_write_upgrade_required with a link to key settings.
Create and cancel require an Idempotency-Key header: a UUID v4 generated once per new command.
Reuse the same value unchanged for every retry of that command. Never use values like booking-1, and never generate a new key after a timeout.
A retry with the same key and the same command returns the original result. The same key with a different command returns 409 idempotency_mismatch.
/carsSearch cars. With dates, each car gets trip totals for those dates.
Capability: none
rent_trip_total_cents is rent only. display_trip_total_cents is rent plus trip fee. The quote adds the selected options.cURL
Result (sample data)
/cars/{alias}Car details, including blocked date ranges.
Capability: none
cURL
Result (sample data)
/reservation/quotePrice for dates and options. No reservation, no hold, no payment.
Capability: none
final_total excludes the deposit. deposit_cents is the refundable deposit, shown separately.cURL
Result (sample data)
Every response belongs to the customer who owns the key. Nothing here changes data.
/my/profileThe customer's profile.
Capability: read_only or booking_write
cURL
Result (sample data)
/my/verificationCompact verification status. Read-only: it never starts or submits verification.
Capability: read_only or booking_write
cURL
Result (sample data)
/my/billing/cardsThe saved card: brand, last four digits, expiry. Zero or one card.
Capability: read_only or booking_write
cURL
Result (sample data)
/my/tripsAll the customer's trips: active (upcoming and in progress) and history (completed and cancelled), each with a financial_summary.
Capability: read_only or booking_write
trip_total_cents is the current trip cost after discounts, extensions and fees, excluding the deposit. It can be null for old trips that cannot be classified. It does not say whether anything was paid.cURL
Result (sample data)
/my/reservation/{uuid}One trip: dates, status, payment status, financial_summary, and cancellation_outcome. Read this to confirm any result.
Capability: read_only or booking_write
cancellation_outcome.hold_release and cancellation_outcome.refunds[] for that.payment_status.invoice_id then points to it.cURL
Result (sample data)
/my/reservation/{uuid}/invoicesEvery invoice of one trip, in all states, with line items. Raw array, no data envelope.
Capability: read_only or booking_write
billing_status for the actual billing state. An empty array is a valid result.cURL
Result (sample data)
/my/billing/invoice/{uuid}One invoice, with the same fields as the trip invoice list.
Capability: read_only or booking_write
cURL
Result (sample data)
Create and cancel run the same rules as the app. They need a booking_write key and an Idempotency-Key.
/my/reservationCreate an unpaid reservation. Returns the new reservation UUID.
Capability: booking_write
cURL
Result (sample data)
/my/reservation/{uuid}Cancel the customer's reservation under the normal rules.
Capability: booking_write
cURL
Result (sample data)
These return a link for the customer. Nothing is paid, added, or extended. The customer confirms in the app; then read the reservation again. Action names: pay_reservation, add_payment_card, extend_reservation.
/my/reservation/{uuid}/payment-linkLink for the customer to pay rent or deposit.
Capability: read_only or booking_write
The response is a link for the customer. Nothing is executed.
cURL
Result (sample data)
/my/billing/cards/add-linkLink for the customer to add or replace a card.
Capability: read_only or booking_write
The response is a link for the customer. Nothing is executed.
cURL
Result (sample data)
/my/billing/reservation/{uuid}/extension/pricePrice preview for a new checkout time. Dates do not change.
Capability: read_only or booking_write
cURL
Result (sample data)
/my/reservation/{uuid}/extension-linkLink for the customer to review and confirm an extension, including a zero-cost one.
Capability: read_only or booking_write
The response is a link for the customer. Nothing is executed.
cURL
Result (sample data)
These private reads need the customer's key. Car search does not. Sample data only.