Agendar cita

POSThttps://api.bydomu.com/v1/booking/{slug}

This reference is generated from the API’s code, so descriptions are in Spanish. Names, parameters and examples are the same in every language.

Agenda una cita con el agente en un espacio libre (date + startTime en la zona horaria de la página). Queda CONFIRMED si la página confirma sola, si no SCHEDULED. Dispara el webhook BOOKING_CREATED. OJO: la respuesta viene doblemente envuelta, { data: { data: ... } }.

Permission
booking:write
Keys
Publishable or secret

Headers

X-API-Keystringrequired
Your publishable or secret key.
Idempotency-Keystring
Clave única de la operación (8-128 caracteres de [a-zA-Z0-9._:-]). Un reintento con la misma clave y el mismo cuerpo devuelve la respuesta original sin repetir la operación. Vive 24 horas. · 8–128 chars

Path parameters

slugstringrequired
Slug de la página de agendamiento del agente

Body (JSON)

firstNamestringrequired
2–100 chars
lastNamestring
≤ 100 chars
phonestringrequired
7–20 chars
emailstring
email
propertyIdstring
datestringrequired
startTimestringrequired
messagestring
≤ 500 chars
typestring
SHOWINGMEETINGCALLFOLLOW_UPSIGNINGOTHER · default="SHOWING"

Responses

201Cita agendada
400Datos inválidos: el cuerpo o la query no cumplen el esquema, o `Idempotency-Key` está mal formada.
401UNAUTHORIZED · Clave faltante, inválida, desactivada o vencida.
402PAYMENT_REQUIRED · Cuenta en modo solo lectura: se rechaza toda mutación.
403FORBIDDEN · La clave no puede usar esta operación: falta el scope, es una secreta en el navegador, el nivel de la cuenta no la permite, está suspendida o se alcanzó un tope del plan.
404NOT_FOUND · El recurso no existe en la organización.
409DUPLICATE · Choca con un dato existente o con el estado actual, o la `Idempotency-Key` ya se usó con otro cuerpo o sigue en curso.
429RATE_LIMITED · Límite de peticiones excedido: el de la clave (`RATE_LIMITED`), el de escrituras de la organización (`TENANT_RATE_LIMITED`) o bloqueo temporal de la IP por claves inválidas.
500INTERNAL_ERROR · Error interno del servidor.
cURL
curl -X POST "https://api.bydomu.com/v1/booking/carlos-rodriguez" \
  -H "X-API-Key: $BYDOMU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "firstName": "María",
  "lastName": "González",
  "phone": "+573001234567",
  "email": "[email protected]",
  "date": "2026-10-05",
  "startTime": "09:00",
  "type": "SHOWING",
  "propertyId": "clx1prop001"
}'
JavaScript
const res = await fetch("https://api.bydomu.com/v1/booking/carlos-rodriguez", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.BYDOMU_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "firstName": "María",
    "lastName": "González",
    "phone": "+573001234567",
    "email": "[email protected]",
    "date": "2026-10-05",
    "startTime": "09:00",
    "type": "SHOWING",
    "propertyId": "clx1prop001"
  }),
});
const data = await res.json();
Python
import os, requests

r = requests.post(
    "https://api.bydomu.com/v1/booking/carlos-rodriguez",
    headers={"X-API-Key": os.environ["BYDOMU_API_KEY"]},
    json={
        "firstName": "María",
        "lastName": "González",
        "phone": "+573001234567",
        "email": "[email protected]",
        "date": "2026-10-05",
        "startTime": "09:00",
        "type": "SHOWING",
        "propertyId": "clx1prop001"
    }
)
data = r.json()
Response · 201 · example
{
  "data": {
    "data": {
      "appointmentId": "clx1apt009",
      "status": "CONFIRMED",
      "ownerNotified": {
        "firstName": "Carlos",
        "lastName": "Rodríguez"
      }
    }
  }
}

The key goes in the BYDOMU_API_KEY variable. The example data belongs to no agency.