fbq

Carsan for AI agents

Carsan rents cars in Los Angeles and Miami. An agent can search cars, check dates, and get prices without an account.

With an API key that the customer creates, the agent works on that customer's account. Payment, card addition, extension, and identity verification always stay with the customer.

What an agent can do

Without a key

  • Search cars by city (la, miami) and dates.
  • Read car details.
  • Get a price quote for dates and options.

With the customer's API key

  • Read the profile, verification status, trips, trip costs, invoices, and the saved card's brand and last four digits.
  • Get customer links for payment, card addition, and extension.
  • Create and cancel reservations under the normal rules (booking_write keys only).

Customer only

  • Sign up, start and complete identity verification (KYC).
  • Pay, add a card, and confirm an extension in the Carsan app.
  • Create and revoke API keys.

Car photos

The API returns car photos as direct image URLs. To show a car in a chat, use these URLs as they are.

  • In search results (GET /cars), use preview_urls: every 620x372 preview, in display order. Show the first URL as the main picture.
  • In car details (GET /cars/{alias}), use gallery: every photo, in display order. Each item has preview_url (620x372) and full_url (full size). Use full_url to show a large picture.
  • A trip (GET /my/reservation/{uuid} and GET /my/trips) has the same gallery in car.
  • An empty array means the car has no photos.
  • Do not build URLs from photos or previews. These fields contain stored file names, not URLs.

Car details photos (sample)

{
  "data": {
    "car_alias": "Los_Angeles_Toyota_Camry_2023_SAMPLE",
    "gallery": [
      {
        "preview_url": "https://crsns.sfo3.cdn.digitaloceanspaces.com/_cars/101/sample_photo_1_620x372_TN.jpeg",
        "full_url": "https://crsns.sfo3.cdn.digitaloceanspaces.com/_cars/101/sample_photo_1.jpeg"
      },
      {
        "preview_url": "https://crsns.sfo3.cdn.digitaloceanspaces.com/_cars/101/sample_photo_2_620x372_TN.jpeg",
        "full_url": "https://crsns.sfo3.cdn.digitaloceanspaces.com/_cars/101/sample_photo_2.jpeg"
      }
    ]
  }
}

Continue with the customer's account

  1. The customer signs up at app.carsan.com.
  2. The customer opens Settings → API Keys and creates a key. read_only reads the account; booking_write also creates and cancels reservations.
  3. The customer gives the key to the agent. It is shown once.
  4. The agent sends it as Authorization: Bearer carsan_YOUR_API_KEY or X-API-Key: carsan_YOUR_API_KEY.

An API key is not driver approval. The customer starts and completes verification personally.

Connect from ChatGPT or Claude

Chat assistants that support MCP connectors can use Carsan without an API key. Add a custom connector with the URL https://api.carsan.com/mcp.

  • search_cars: finds available cars for a city and dates. Results include photo URLs.
  • get_car: returns the details and full photo gallery of one car.
  • quote_trip: returns the price of a trip. A quote does not hold the car.
  • get_profile: returns the customer's profile and verification status.
  • list_my_trips: returns the customer's trips.
  • get_my_trip: returns one trip.
  • list_trip_invoices: returns the invoices of one trip.

The first three tools work without an account. The other tools require the customer to connect the assistant. The customer logs in and approves the connection on a Carsan page; the assistant never receives the Carsan password. A connection is read-only.

To disconnect an assistant, the customer opens Settings → API Keys and removes it under Connected assistants.

Customer actions

For payment, card addition, or extension the API returns a Carsan link. The link executes nothing and carries no key.

Payment link response (sample)

{
  "data": {
    "action": "pay_reservation",
    "status": "requires_user_action",
    "url": "https://app.carsan.com/trips/00000000-0000-4000-8000-000000000001?intent=pay&payment_type=reservation"
  }
}
  1. Give the url to the customer.
  2. The customer opens it, logs in if needed, reviews current details, and confirms.
  3. Read GET /my/reservation/00000000-0000-4000-8000-000000000001 again to report the actual result. A generated or visited link is not completion.