# Enhanced Intelligence Mobile Detailing

People can book on the [Enhanced Intelligence Mobile Detailing booking page](https://book.enhancedint.com/ei-demo). An AI agent can book here directly, with no key and no account: ask for the open times, then book one.

A booking made this way is sent to the business as a request. The business confirms it, and the agent should tell the customer so.

## About

- Business: Detailing.
- Time zone: `America/Los_Angeles`.

## Services

- Quick Clean (package). $100. 50 min. Slug: `quick-clean`.
- Bronze Detail (package). Essential exterior & interior clean — perfect for regular maintenance. $149. 1 h 30 min. Slug: `bronze-detail`.
- Silver Detail (package). Everything in Bronze plus interior deep clean + leather conditioning. $249. 3 h. Slug: `silver-detail`.
- Gold Detail (package). Our showroom-grade package. Paint decontamination, full interior shampoo. $449. 5 h. Slug: `gold-detail`.
- Ceramic Coating (add-on). Professional-grade 2-year ceramic protection on exterior paint. $599. 3 h. Slug: `ceramic-coating`.
- Paint Protection Film (add-on). Clear urethane film on high-impact panels. Self-healing, optically clear. $1,299. 4 h. Slug: `paint-protection-film`.
- Deep Interior Clean (add-on). Deep-clean your interior with hot extraction on all fabric surfaces. $149. 2 h. Slug: `deep-interior-clean`.

## Where the work happens

- The business comes to the customer.
- Service area: San Diego County.

## Hours

- Monday: 8:00 AM to 6:00 PM
- Tuesday: 8:00 AM to 6:00 PM
- Wednesday: 8:00 AM to 6:00 PM
- Thursday: 8:00 AM to 6:00 PM
- Friday: 8:00 AM to 6:00 PM
- Saturday: 8:00 AM to 6:00 PM
- Sunday: 9:00 AM to 5:00 PM

## What a booking needs

A booking is sent to Enhanced Intelligence Mobile Detailing as a request. The owner approves it or suggests another time, and the customer is emailed either way.

Nothing is paid when booking.

- What to book: items: a list of {slug, quantity?, label}, each slug from \`services\`. \`label\` names the car the service is for (for example "2023 Porsche 911") and is required on every item. Give each car exactly one package, and any add-ons for it, as separate items that share that car's label. A second car is a second package with its own label. Start from a package, never an add-on. quantity is a whole number, 1 when left out.
- The service address: Check the service address before booking: POST urls.address (the MCP tool check\_address) with it as one line, as fields, or as a place\_id saved from an earlier check. Send the \`address\` it answers as answers.address, and book only when it says \`bookable\`. Save the address and its place\_id for this customer: next time, send the place\_id (with the apartment or unit as extended\_address, if there is one). Book checks the address again. When Google cannot confirm an address, or corrects it, and the customer says theirs is right as they gave it, book with theirs and answers.address\_confirmed: true: the business checks it.
- The customer, `name`: required: the customer's full name, at most 200 characters
- The customer, `email`: required: an email address, at most 320 characters; the confirmation is sent to it
- The customer, `phone`: optional: a phone number, at most 50 characters
- The customer, `time_zone`: optional: an IANA zone such as "Europe/London"
- Service address: required, text. Text on one line, at most 500 characters. Answer id: `address`. Example: `"123 Main St, Poway, CA 92064"`.

## Limits

- Reading the card and times: 60 a minute from one network address.
- Bookings: 10 an hour from one network address.
- Bookings by agents: 30 a day for this business in all.
- Address checks: 30 an hour from one network address.
- One request for times may span at most 14 days.
- A time can be booked at most 60 days ahead.

A request over a limit is answered 429 with a Retry-After header.

## Cancelling

Cancel with the booking's manage token. A request still waiting is withdrawn; a booking the business has approved or taken in hand must be changed with the business, and the answer says how to reach it.

## Endpoints

- `GET https://book.enhancedint.com/ei-demo/agent`: the business card, as JSON
- `POST https://book.enhancedint.com/ei-demo/agent/times`: the open times that fit what is being booked
- `POST https://book.enhancedint.com/ei-demo/agent/address`: check the service address: Google's check, and the business's area
- `POST https://book.enhancedint.com/ei-demo/agent/book`: book one of them
- `GET https://book.enhancedint.com/ei-demo/agent/bookings/{reference}`: check a booking, with the token the booking returned
- `POST https://book.enhancedint.com/ei-demo/agent/bookings/{reference}/cancel`: cancel it, with the same token
- `GET https://book.enhancedint.com/ei-demo/agent/openapi.json`: the OpenAPI description of all of the above
- `POST https://book.enhancedint.com/ei-demo/mcp`: the same, as an MCP server
- `GET https://book.enhancedint.com/ei-demo/agents.md`: this page, as Markdown
- `GET https://book.enhancedint.com/ei-demo/llms.txt`: llms.txt for this business

## Example

Ask for the open times, then book one of them. These bodies are built from this business's own services and show the exact shape; their values are examples, so use the customer's own. The OpenAPI description is the authority.

```
curl -s -X POST 'https://book.enhancedint.com/ei-demo/agent/times' \
  -H 'Content-Type: application/json' \
  -d '{
  "items": [
    {
      "slug": "quick-clean",
      "label": "2023 Porsche 911"
    },
    {
      "slug": "ceramic-coating",
      "label": "2023 Porsche 911"
    },
    {
      "slug": "bronze-detail",
      "label": "2021 Honda Civic"
    }
  ],
  "from": "2026-10-15",
  "to": "2026-10-21",
  "windows": [
    {
      "start": "2026-10-15T08:00:00-07:00",
      "end": "2026-10-15T18:00:00-07:00"
    }
  ]
}'
```

Then book one of the times it returned. Send your own `idempotency_key`: a fresh random string for each booking, 32 to 255 letters, digits, dashes or underscores (a UUID without hyphens is right), never a counter or a word. The example's is a placeholder the door refuses.

```
curl -s -X POST 'https://book.enhancedint.com/ei-demo/agent/book' \
  -H 'Content-Type: application/json' \
  -d '{
  "items": [
    {
      "slug": "quick-clean",
      "label": "2023 Porsche 911"
    },
    {
      "slug": "ceramic-coating",
      "label": "2023 Porsche 911"
    },
    {
      "slug": "bronze-detail",
      "label": "2021 Honda Civic"
    }
  ],
  "start": "2026-10-15T08:00:00-07:00",
  "customer": {
    "name": "Ada Lovelace",
    "email": "ada@example.com",
    "phone": "(619) 555-0123"
  },
  "answers": {
    "address": "123 Main St, Poway, CA 92064"
  },
  "agent": {
    "name": "Your agent name"
  },
  "idempotency_key": "replace-this-with-a-fresh-random-key-0000"
}'
```

As an MCP server (no key, JSON over POST): `https://book.enhancedint.com/ei-demo/mcp`. Tools: `get_business`, `find_times`, `book`, `get_booking`, `cancel_booking`.
