# ByDomu Developers > API REST, webhooks y servidor MCP de ByDomu, el CRM para inmobiliarias: propiedades, contactos, negocios, citas, tareas, comisiones, contabilidad, arriendos y eventos de la cuenta. - Base de la API: https://api.bydomu.com/v1. Cada petición lleva la clave en el encabezado `X-API-Key` (no `Authorization: Bearer`). - Las claves secretas (`domu_sk_…`) van solo en un servidor; en el navegador, las publicables (`domu_pk_…`). - Todo el portal en un solo archivo: https://developers.bydomu.com/llms-full.txt - Cada página también está en markdown: agrega `.md` a su URL o pide `Accept: text/markdown`. En inglés y portugués, bajo `/en` y `/pt`. ## Guías - [Inicio del portal](https://developers.bydomu.com/index.md): Empieza en modo de prueba en 3 pasos y qué hay en el portal: guías, referencia, conexiones con IA y eventos. - [Claves y niveles de acceso](https://developers.bydomu.com/claves.md): Claves publicables, secretas y de prueba, niveles, límites y errores. - [Inicio rápido](https://developers.bydomu.com/guias/inicio-rapido.md): Crea una clave, haz tu primera petición y lee un listado paginado. - [Modo de prueba](https://developers.bydomu.com/guias/modo-de-prueba.md): Claves de prueba con datos de ejemplo: integra sin tocar tus datos reales ni esperar aprobación. - [Tu página web con clave publicable](https://developers.bydomu.com/guias/web-clave-publicable.md): Lista propiedades con filtros, recibe formularios y visitas, agenda citas y arma un buscador guiado. - [Recibe eventos por webhook](https://developers.bydomu.com/guias/webhooks.md): Suscríbete a eventos del catálogo, mira sus payloads, verifica la firma y responde a tiempo. - [Verifica la firma de los webhooks](https://developers.bydomu.com/guias/firma-webhooks.md): X-Domu-Signature en Node, Python, PHP y Go, con un vector de prueba para comprobar tu código. - [Paginación, idempotencia y límites](https://developers.bydomu.com/guias/paginacion-limites.md): Recorre listados por página o por cursor, reintenta sin duplicar y maneja el 429. - [Zapier, Make y n8n](https://developers.bydomu.com/guias/zapier-make-n8n.md): Usa los eventos de ByDomu como disparador y la API como acción, con una clave secreta. - [Tickets: webhook y Linear](https://developers.bydomu.com/guias/tickets.md): Lleva los tickets a tu sistema con su webhook propio o conéctalos con Linear. - [Widget de chat](https://developers.bydomu.com/guias/widget.md): Instálalo en tu web, firma la identidad de tus usuarios y contrólalo con window.Domu. - [Identidad verificada del widget](https://developers.bydomu.com/guias/widget-identidad.md): Firma en tu servidor quién está chateando: cómo se calcula, qué cambia y cómo probarlo. - [Conecta ByDomu a Claude (MCP)](https://developers.bydomu.com/guias/mcp.md): Deja que Claude u otro cliente MCP consulte tu inmobiliaria, en solo lectura. - [Privacidad y soporte del conector de IA](https://developers.bydomu.com/guias/mcp-privacidad.md): Qué datos lee el conector MCP de ByDomu, qué no hace, dónde viven los datos, cómo quitar el acceso y a quién escribir. - [Claude: claude.ai, Desktop y Code](https://developers.bydomu.com/guias/ia-claude.md): Conector personalizado con inicio de sesión (sin pegar claves) y Claude Code desde la terminal. - [ChatGPT](https://developers.bydomu.com/guias/ia-chatgpt.md): Crea una app con el servidor MCP en modo desarrollador e inicia sesión con ByDomu. - [Cursor, VS Code y otros clientes](https://developers.bydomu.com/guias/ia-editores.md): La configuración de cada editor, con la clave en una variable o con inicio de sesión. - [API de OpenAI y API de Anthropic](https://developers.bydomu.com/guias/ia-apis.md): Usa el MCP como herramienta remota desde tu código: Responses de OpenAI y Messages de Anthropic. - [Agentes en n8n y LangChain](https://developers.bydomu.com/guias/ia-agentes.md): Dale a un agente las herramientas de ByDomu por MCP, o la API como herramienta propia. - [Conecta tu IA a ByDomu](https://developers.bydomu.com/ia.md): claude.ai, ChatGPT, Claude, Cursor, VS Code y las API de OpenAI y Anthropic con el servidor MCP. - [SDK y herramientas](https://developers.bydomu.com/herramientas.md): SDK de TypeScript, colecciones de Postman y Bruno, llms.txt. ## Referencia de la API - [Referencia de la API: introducción](https://developers.bydomu.com/referencia.md): Autenticación, paginación, errores y límites. - [Información de la API key](https://developers.bydomu.com/referencia/get-me.md): GET /me - [Configuración del portal](https://developers.bydomu.com/referencia/get-portal.md): GET /portal - [Listar propiedades publicadas](https://developers.bydomu.com/referencia/list-properties.md): GET /properties - [Crear propiedad](https://developers.bydomu.com/referencia/create-property.md): POST /properties - [Propiedades destacadas](https://developers.bydomu.com/referencia/get-featured-properties.md): GET /properties/featured - [Detalle de propiedad publicada](https://developers.bydomu.com/referencia/get-property.md): GET /properties/{id} - [Actualizar propiedad](https://developers.bydomu.com/referencia/update-property.md): PATCH /properties/{id} - [Opciones de filtros](https://developers.bydomu.com/referencia/get-filters.md): GET /filters - [Listar agentes](https://developers.bydomu.com/referencia/list-agents.md): GET /agents - [Perfil de agente](https://developers.bydomu.com/referencia/get-agent.md): GET /agents/{id} - [Enviar formulario de contacto](https://developers.bydomu.com/referencia/submit-lead.md): POST /leads - [Solicitar visita](https://developers.bydomu.com/referencia/schedule-visit.md): POST /leads/schedule - [Enviar preferencias del buscador](https://developers.bydomu.com/referencia/submit-finder.md): POST /finder - [Agentes con agendamiento activo](https://developers.bydomu.com/referencia/list-booking-agents.md): GET /booking/agents - [Página de agendamiento de un agente](https://developers.bydomu.com/referencia/get-booking-page.md): GET /booking/{slug}/page - [Disponibilidad del agente](https://developers.bydomu.com/referencia/get-availability.md): GET /booking/{slug}/availability - [Agendar cita](https://developers.bydomu.com/referencia/submit-booking.md): POST /booking/{slug} - [Listar contactos](https://developers.bydomu.com/referencia/list-contacts.md): GET /contacts - [Crear contacto](https://developers.bydomu.com/referencia/create-contact.md): POST /contacts - [Detalle de contacto](https://developers.bydomu.com/referencia/get-contact.md): GET /contacts/{id} - [Actualizar contacto](https://developers.bydomu.com/referencia/update-contact.md): PATCH /contacts/{id} - [Listar pipelines](https://developers.bydomu.com/referencia/list-pipelines.md): GET /pipelines - [Tablero de un pipeline](https://developers.bydomu.com/referencia/get-pipeline.md): GET /pipelines/{id} - [Listar negocios](https://developers.bydomu.com/referencia/list-deals.md): GET /deals - [Crear negocio](https://developers.bydomu.com/referencia/create-deal.md): POST /deals - [Detalle de negocio](https://developers.bydomu.com/referencia/get-deal.md): GET /deals/{id} - [Actualizar negocio](https://developers.bydomu.com/referencia/update-deal.md): PATCH /deals/{id} - [Mover negocio de etapa](https://developers.bydomu.com/referencia/move-deal-stage.md): POST /deals/{id}/move - [Listar tareas](https://developers.bydomu.com/referencia/list-tasks.md): GET /tasks - [Crear tarea](https://developers.bydomu.com/referencia/create-task.md): POST /tasks - [Detalle de tarea](https://developers.bydomu.com/referencia/get-task.md): GET /tasks/{id} - [Actualizar tarea](https://developers.bydomu.com/referencia/update-task.md): PATCH /tasks/{id} - [Listar documentos](https://developers.bydomu.com/referencia/list-documents.md): GET /documents - [Detalle de documento](https://developers.bydomu.com/referencia/get-document.md): GET /documents/{id} - [Listar sobres de firma](https://developers.bydomu.com/referencia/list-envelopes.md): GET /envelopes - [Detalle de sobre de firma](https://developers.bydomu.com/referencia/get-envelope.md): GET /envelopes/{id} - [Listar conversaciones](https://developers.bydomu.com/referencia/list-conversations.md): GET /conversations - [Contacto de una conversación](https://developers.bydomu.com/referencia/get-conversation.md): GET /conversations/{contactId} - [Mensajes de una conversación](https://developers.bydomu.com/referencia/list-messages.md): GET /conversations/{contactId}/messages - [Enviar mensaje de WhatsApp](https://developers.bydomu.com/referencia/send-message.md): POST /conversations/{contactId}/messages - [Listar citas](https://developers.bydomu.com/referencia/list-appointments.md): GET /appointments - [Crear cita](https://developers.bydomu.com/referencia/create-appointment.md): POST /appointments - [Detalle de cita](https://developers.bydomu.com/referencia/get-appointment.md): GET /appointments/{id} - [Actualizar cita](https://developers.bydomu.com/referencia/update-appointment.md): PATCH /appointments/{id} - [Cancelar cita](https://developers.bydomu.com/referencia/cancel-appointment.md): POST /appointments/{id}/cancel - [Listar miembros del equipo](https://developers.bydomu.com/referencia/list-team-members.md): GET /team - [Detalle de miembro del equipo](https://developers.bydomu.com/referencia/get-team-member.md): GET /team/{id} - [Listar etiquetas](https://developers.bydomu.com/referencia/list-tags.md): GET /tags - [Listar campos personalizados de contactos](https://developers.bydomu.com/referencia/list-custom-fields.md): GET /custom-fields - [Listar comisiones](https://developers.bydomu.com/referencia/list-commissions.md): GET /commissions - [Detalle de comisión](https://developers.bydomu.com/referencia/get-commission.md): GET /commissions/{id} - [Listar registros contables](https://developers.bydomu.com/referencia/list-accounting-entries.md): GET /accounting - [Detalle de registro contable](https://developers.bydomu.com/referencia/get-accounting-entry.md): GET /accounting/{id} - [Listar contratos de arriendo](https://developers.bydomu.com/referencia/list-leases.md): GET /leases - [Detalle de contrato de arriendo](https://developers.bydomu.com/referencia/get-lease.md): GET /leases/{id} - [Crear nota](https://developers.bydomu.com/referencia/create-note.md): POST /notes - [Catálogo de eventos de dominio](https://developers.bydomu.com/referencia/list-event-types.md): GET /events - [Registrar evento de analítica del portal](https://developers.bydomu.com/referencia/track-event.md): POST /events - [Últimos eventos de la organización](https://developers.bydomu.com/referencia/list-recent-events.md): GET /events/recent - [Registrar uso del producto](https://developers.bydomu.com/referencia/track-usage-event.md): POST /usage/events - [Listar webhooks](https://developers.bydomu.com/referencia/list-webhooks.md): GET /webhooks - [Crear webhook](https://developers.bydomu.com/referencia/create-webhook.md): POST /webhooks - [Payload de ejemplo de un evento](https://developers.bydomu.com/referencia/get-webhook-sample.md): GET /webhooks/sample/{type} - [Eliminar webhook](https://developers.bydomu.com/referencia/delete-webhook.md): DELETE /webhooks/{id} - [Reiniciar los datos de prueba](https://developers.bydomu.com/referencia/reset-test-data.md): POST /test/reset - [Disparar un evento de prueba](https://developers.bydomu.com/referencia/trigger-test-event.md): POST /test/events ## Eventos - [Catálogo de eventos](https://developers.bydomu.com/eventos.md): Todos los eventos objeto.verbo de los webhooks y las automatizaciones. - [contact.created](https://developers.bydomu.com/eventos/contact.created.md): Contacto nuevo - [contact.updated](https://developers.bydomu.com/eventos/contact.updated.md): Contacto actualizado - [contact.assigned](https://developers.bydomu.com/eventos/contact.assigned.md): Contacto asignado - [contact.deleted](https://developers.bydomu.com/eventos/contact.deleted.md): Contacto eliminado - [contact.screening_completed](https://developers.bydomu.com/eventos/contact.screening_completed.md): Estudio del contacto terminado - [lead.submitted](https://developers.bydomu.com/eventos/lead.submitted.md): Lead recibido - [customer.at_risk](https://developers.bydomu.com/eventos/customer.at_risk.md): Cliente en riesgo de cancelar - [deal.created](https://developers.bydomu.com/eventos/deal.created.md): Oportunidad creada - [deal.stage_changed](https://developers.bydomu.com/eventos/deal.stage_changed.md): Oportunidad cambió de etapa - [deal.won](https://developers.bydomu.com/eventos/deal.won.md): Oportunidad ganada - [deal.lost](https://developers.bydomu.com/eventos/deal.lost.md): Oportunidad perdida - [deal.assigned](https://developers.bydomu.com/eventos/deal.assigned.md): Oportunidad asignada - [deal.offer_registered](https://developers.bydomu.com/eventos/deal.offer_registered.md): Oferta registrada - [deal.deleted](https://developers.bydomu.com/eventos/deal.deleted.md): Oportunidad eliminada - [trial.started](https://developers.bydomu.com/eventos/trial.started.md): trial.started - [trial.ending](https://developers.bydomu.com/eventos/trial.ending.md): trial.ending - [trial.ended](https://developers.bydomu.com/eventos/trial.ended.md): trial.ended - [appointment.created](https://developers.bydomu.com/eventos/appointment.created.md): Cita agendada - [appointment.confirmed](https://developers.bydomu.com/eventos/appointment.confirmed.md): Cita confirmada - [appointment.rescheduled](https://developers.bydomu.com/eventos/appointment.rescheduled.md): Cita reprogramada - [appointment.cancelled](https://developers.bydomu.com/eventos/appointment.cancelled.md): Cita cancelada - [appointment.completed](https://developers.bydomu.com/eventos/appointment.completed.md): Visita realizada - [appointment.no_show](https://developers.bydomu.com/eventos/appointment.no_show.md): El cliente no llegó - [appointment.outcome_recorded](https://developers.bydomu.com/eventos/appointment.outcome_recorded.md): Resultado de la visita registrado - [message.received](https://developers.bydomu.com/eventos/message.received.md): Mensaje del cliente - [message.sent](https://developers.bydomu.com/eventos/message.sent.md): Mensaje enviado - [conversation.created](https://developers.bydomu.com/eventos/conversation.created.md): Conversación nueva - [conversation.handoff_requested](https://developers.bydomu.com/eventos/conversation.handoff_requested.md): El cliente pidió hablar con una persona - [conversation.assigned](https://developers.bydomu.com/eventos/conversation.assigned.md): Conversación asignada - [conversation.closed](https://developers.bydomu.com/eventos/conversation.closed.md): Conversación cerrada - [property.created](https://developers.bydomu.com/eventos/property.created.md): Inmueble creado - [property.updated](https://developers.bydomu.com/eventos/property.updated.md): Inmueble actualizado - [property.published](https://developers.bydomu.com/eventos/property.published.md): Inmueble publicado - [property.unpublished](https://developers.bydomu.com/eventos/property.unpublished.md): Inmueble despublicado - [property.published_social](https://developers.bydomu.com/eventos/property.published_social.md): Inmueble publicado en redes - [property.price_changed](https://developers.bydomu.com/eventos/property.price_changed.md): Cambió el precio - [property.status_changed](https://developers.bydomu.com/eventos/property.status_changed.md): Cambió el estado del inmueble - [property.deleted](https://developers.bydomu.com/eventos/property.deleted.md): Inmueble eliminado - [task.created](https://developers.bydomu.com/eventos/task.created.md): Tarea creada - [task.completed](https://developers.bydomu.com/eventos/task.completed.md): Tarea completada - [task.overdue](https://developers.bydomu.com/eventos/task.overdue.md): Tarea vencida - [note.created](https://developers.bydomu.com/eventos/note.created.md): Nota nueva - [lease.created](https://developers.bydomu.com/eventos/lease.created.md): Contrato de arriendo creado - [lease.expiring](https://developers.bydomu.com/eventos/lease.expiring.md): Contrato por vencer - [lease.expired](https://developers.bydomu.com/eventos/lease.expired.md): Contrato vencido - [lease.renewed](https://developers.bydomu.com/eventos/lease.renewed.md): Contrato renovado - [lease.terminated](https://developers.bydomu.com/eventos/lease.terminated.md): Contrato terminado - [rent_payment.recorded](https://developers.bydomu.com/eventos/rent_payment.recorded.md): Pago de arriendo registrado - [rent_payment.due](https://developers.bydomu.com/eventos/rent_payment.due.md): Cuota próxima a vencer - [rent_payment.overdue](https://developers.bydomu.com/eventos/rent_payment.overdue.md): Cuota en mora - [envelope.sent](https://developers.bydomu.com/eventos/envelope.sent.md): Documento enviado a firma - [envelope.signed](https://developers.bydomu.com/eventos/envelope.signed.md): Documento firmado - [envelope.completed](https://developers.bydomu.com/eventos/envelope.completed.md): Firmas completas - [envelope.declined](https://developers.bydomu.com/eventos/envelope.declined.md): Firma rechazada - [envelope.expired](https://developers.bydomu.com/eventos/envelope.expired.md): Documento venció sin firmar - [invoice.created](https://developers.bydomu.com/eventos/invoice.created.md): Factura creada - [invoice.paid](https://developers.bydomu.com/eventos/invoice.paid.md): Factura pagada - [invoice.overdue](https://developers.bydomu.com/eventos/invoice.overdue.md): Factura vencida - [invoice.voided](https://developers.bydomu.com/eventos/invoice.voided.md): Factura anulada - [payment.approved](https://developers.bydomu.com/eventos/payment.approved.md): Pago en línea aprobado - [payment.declined](https://developers.bydomu.com/eventos/payment.declined.md): Pago en línea rechazado - [commission.created](https://developers.bydomu.com/eventos/commission.created.md): Comisión generada - [commission.paid](https://developers.bydomu.com/eventos/commission.paid.md): Comisión pagada - [referral.created](https://developers.bydomu.com/eventos/referral.created.md): Referido nuevo - [referral.converted](https://developers.bydomu.com/eventos/referral.converted.md): Referido convertido - [review.received](https://developers.bydomu.com/eventos/review.received.md): Reseña recibida en Google - [booking.created](https://developers.bydomu.com/eventos/booking.created.md): Cita agendada desde la web - [finder.submitted](https://developers.bydomu.com/eventos/finder.submitted.md): Búsqueda enviada desde la web - [ticket.created](https://developers.bydomu.com/eventos/ticket.created.md): Ticket creado - [ticket.updated](https://developers.bydomu.com/eventos/ticket.updated.md): Ticket actualizado - [ticket.status_changed](https://developers.bydomu.com/eventos/ticket.status_changed.md): Ticket cambió de estado - [ticket.note_added](https://developers.bydomu.com/eventos/ticket.note_added.md): Nota interna en un ticket - [ticket.resolved](https://developers.bydomu.com/eventos/ticket.resolved.md): Ticket resuelto - [ticket.suggested](https://developers.bydomu.com/eventos/ticket.suggested.md): Noa sugirió crear un ticket - [ticket.suggestion_dismissed](https://developers.bydomu.com/eventos/ticket.suggestion_dismissed.md): Se descartó la sugerencia de ticket - [noa_api_action.executed](https://developers.bydomu.com/eventos/noa_api_action.executed.md): Noa ejecutó una acción de tu API - [noa_api_action.failed](https://developers.bydomu.com/eventos/noa_api_action.failed.md): Falló una acción de Noa en tu API - [knowledge.suggested](https://developers.bydomu.com/eventos/knowledge.suggested.md): Noa propuso guardar una respuesta como documento - [webhook.received](https://developers.bydomu.com/eventos/webhook.received.md): Llamada recibida de otra herramienta ## Herramientas - [OpenAPI 3 de la API v1](https://api.bydomu.com/v1/openapi.json): la spec completa, generada desde el código. - [Colección de Postman](https://developers.bydomu.com/bydomu-api.postman_collection.json): con las variables `baseUrl` y `apiKey`. - [Colección de Bruno](https://developers.bydomu.com/bydomu-api.bruno_collection.json): con las variables `baseUrl` y `apiKey`. - [Servidor MCP de solo lectura](https://mcp.bydomu.com/mcp): ver la guía de MCP. ## Optional - [Prompts para agentes de código](https://developers.bydomu.com/prompts.md): Prompts listos para Claude Code, Cursor, Codex o Copilot. - [Changelog](https://developers.bydomu.com/changelog.md): Lo que cambia en la API, los webhooks y el MCP.