> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bookliftagent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tu primera llamada

> De cero a una conversación real en dos minutos.

## 1. Comprueba tu clave

Empieza por aquí: confirma que la clave funciona antes de escribir código.
Esta llamada **no consume créditos**.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.bookliftagent.com/v1/yo \
    -H "Authorization: Bearer $BOOKLIFT_API_KEY"
  ```

  ```javascript Node.js theme={null}
  const res = await fetch("https://api.bookliftagent.com/v1/yo", {
    headers: { Authorization: `Bearer ${process.env.BOOKLIFT_API_KEY}` },
  });
  console.log(await res.json());
  ```

  ```python Python theme={null}
  import os, requests

  r = requests.get(
      "https://api.bookliftagent.com/v1/yo",
      headers={"Authorization": f"Bearer {os.environ['BOOKLIFT_API_KEY']}"},
  )
  print(r.json())
  ```
</CodeGroup>

```json Respuesta theme={null}
{
  "organizacion": "agencia-lopez",
  "entorno": "live",
  "creditos": { "limite_mes": 25000, "usados": 0, "restantes": 25000, "periodo": "2026-08-01" }
}
```

## 2. Mira qué negocios gestionas

```bash theme={null}
curl https://api.bookliftagent.com/v1/negocios \
  -H "Authorization: Bearer $BOOKLIFT_API_KEY"
```

Solo aparecen los de tu organización. Quédate con el `id` de uno que esté
`activo`: los que están en `pendiente` todavía no tienen agente en marcha.

## 3. Habla con el agente

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.bookliftagent.com/v1/negocios/peluqueria-sol/chat \
    -H "Authorization: Bearer $BOOKLIFT_API_KEY" \
    -H "Content-Type: application/json" \
    -H "Idempotency-Key: $(uuidgen)" \
    -d '{
      "sesion": "cliente-34600111222",
      "mensajes": [
        { "rol": "cliente", "contenido": "Hola, quiero cita para un corte esta semana" }
      ]
    }'
  ```

  ```javascript Node.js theme={null}
  import { randomUUID } from "node:crypto";

  const res = await fetch(
    "https://api.bookliftagent.com/v1/negocios/peluqueria-sol/chat",
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${process.env.BOOKLIFT_API_KEY}`,
        "Content-Type": "application/json",
        "Idempotency-Key": randomUUID(),
      },
      body: JSON.stringify({
        sesion: "cliente-34600111222",
        mensajes: [{ rol: "cliente", contenido: "Hola, quiero cita para un corte esta semana" }],
      }),
    },
  );

  const { respuesta } = await res.json();
  console.log(respuesta);
  ```

  ```python Python theme={null}
  import os, uuid, requests

  r = requests.post(
      "https://api.bookliftagent.com/v1/negocios/peluqueria-sol/chat",
      headers={
          "Authorization": f"Bearer {os.environ['BOOKLIFT_API_KEY']}",
          "Idempotency-Key": str(uuid.uuid4()),
      },
      json={
          "sesion": "cliente-34600111222",
          "mensajes": [{"rol": "cliente", "contenido": "Hola, quiero cita para un corte esta semana"}],
      },
  )
  print(r.json()["respuesta"])
  ```
</CodeGroup>

```json Respuesta theme={null}
{
  "respuesta": "¡Hola! Tengo hueco el jueves a las 16:00 o el viernes a las 11:30. ¿Cuál te viene mejor?",
  "calendario_url": null,
  "negocio_id": "peluqueria-sol"
}
```

Envía `respuesta` al cliente tal cual. Ya viene con el tono del negocio.

<Tip>
  Usa el mismo valor de `sesion` (por ejemplo, el teléfono del cliente) en todas
  las llamadas de esa persona. Con eso el agente recuerda el hilo y sus datos
  entre llamadas **y entre días**, sin que tengas que guardar nada.
</Tip>

## Siguiente paso

<CardGroup cols={2}>
  <Card title="Conversaciones" icon="messages" href="/guias/conversaciones">
    Cómo mantener el hilo y cerrar reservas.
  </Card>

  <Card title="A producción" icon="shield-check" href="/guias/produccion">
    Reintentos, errores y lo que no debes hacer.
  </Card>
</CardGroup>
