Prompts para agentes de código

Cópialos en Claude Code, Cursor, Codex o Copilot. Cada uno trae el contexto que el agente necesita: la spec OpenAPI, la autenticación, los límites, los errores y la regla de no exponer la clave secreta.

GuíaAgentes de códigoSolo endpoints reales
Cómo usarlos. Pega el prompt en tu agente dentro del repositorio de tu web o tu backend. Deja la clave en una variable de entorno y no la pegues en el chat.

«Sincroniza el inventario de ByDomu con mi web»

Lee las propiedades publicadas, recorre las páginas y sirve la web desde una caché.

GET /v1/propertiesGET /v1/properties/{id}portal:read
Prompt
Tarea: sincroniza el inventario de mi inmobiliaria en ByDomu con mi sitio web.
- Desde el servidor, lee GET /v1/properties con una clave publicable (basta portal:read) y recorre todas las páginas.
- Guarda el resultado en una caché (por ejemplo, 15 minutos) y sirve la web desde ahí, sin llamar a ByDomu en cada visita.
- Para la ficha usa GET /v1/properties/{id}.
- Solo llegan propiedades activas y publicadas: si una desaparece del listado, quítala de la web.
- Muestra precio, ubicación, alcobas, baños, área, fotos y asesor con los nombres de campo de la spec.
- Maneja 429 con Retry-After y registra los errores sin imprimir la clave.
Antes de escribir código, dime qué archivos vas a crear o cambiar.

Contexto de ByDomu (no lo cambies):
- API REST v1: https://api.bydomu.com/v1. Spec OpenAPI: https://api.bydomu.com/v1/openapi.json. Léela antes de escribir código y usa solo los endpoints, parámetros y campos que aparecen ahí.
- Autenticación: encabezado X-API-Key (no se acepta Authorization: Bearer).
  · Clave publicable domu_pk_live_…: puede ir en el navegador; solo sirve para portal:read, leads:write, booking:write, finder:write, events:write.
  · Clave secreta domu_sk_live_…: SOLO en el servidor, en una variable de entorno. Nunca la pongas en el código del navegador, en el repositorio ni en logs: desde un navegador la API responde 403 SECRET_KEY_IN_BROWSER.
- Límites: publicable 300 peticiones/min (60 escrituras); secreta 60/min (30 escrituras). Lee X-RateLimit-Remaining y, ante 429 RATE_LIMITED, espera los segundos de Retry-After.
- Errores: { "error": { "code", "message" } }. 401 clave inválida, 403 falta el permiso, 404 no existe, 429 límite.
- Listados: page y pageSize (respeta el máximo de cada endpoint) con meta.total / meta.totalPages.
- En escrituras manda Idempotency-Key para que un reintento no duplique nada.

«Crea un formulario de contacto que cree el lead en ByDomu»

Con una clave publicable: el lead llega a ByDomu con su propiedad y sus UTM.

POST /v1/leadsleads:write
Prompt
Tarea: crea un formulario de contacto en mi web que cree el lead en ByDomu.
- Usa POST /v1/leads con una clave publicable (leads:write). Nunca uses una clave secreta en el navegador.
- Campos: los del cuerpo de POST /v1/leads en la spec. firstName y phone son obligatorios; email, message, propertyId e interestedIn, opcionales. En la ficha de una propiedad, manda su propertyId.
- Pasa los utm de la URL a utmSource, utmMedium, utmCampaign y utmContent.
- Valida antes de enviar y muestra en palabras los errores 400 de la API.
- Manda una Idempotency-Key por envío para que un doble clic no duplique el lead.
- Al terminar, muestra un mensaje de éxito claro y deja el formulario accesible con teclado.

Contexto de ByDomu (no lo cambies):
- API REST v1: https://api.bydomu.com/v1. Spec OpenAPI: https://api.bydomu.com/v1/openapi.json. Léela antes de escribir código y usa solo los endpoints, parámetros y campos que aparecen ahí.
- Autenticación: encabezado X-API-Key (no se acepta Authorization: Bearer).
  · Clave publicable domu_pk_live_…: puede ir en el navegador; solo sirve para portal:read, leads:write, booking:write, finder:write, events:write.
  · Clave secreta domu_sk_live_…: SOLO en el servidor, en una variable de entorno. Nunca la pongas en el código del navegador, en el repositorio ni en logs: desde un navegador la API responde 403 SECRET_KEY_IN_BROWSER.
- Límites: publicable 300 peticiones/min (60 escrituras); secreta 60/min (30 escrituras). Lee X-RateLimit-Remaining y, ante 429 RATE_LIMITED, espera los segundos de Retry-After.
- Errores: { "error": { "code", "message" } }. 401 clave inválida, 403 falta el permiso, 404 no existe, 429 límite.
- Listados: page y pageSize (respeta el máximo de cada endpoint) con meta.total / meta.totalPages.
- En escrituras manda Idempotency-Key para que un reintento no duplique nada.

«Recibe webhooks de ByDomu»

Endpoint que verifica la firma, responde a tiempo y descarta repetidos.

GET /v1/eventsPOST /v1/webhookswebhooks:write
Prompt
Tarea: recibe en mi servidor los webhooks de ByDomu.
- Requisito: una clave secreta con el permiso webhooks:write (lo aprueba el soporte de ByDomu). Va en una variable de entorno del servidor.
- Crea un endpoint HTTPS POST que lea el cuerpo CRUDO, antes de parsear el JSON.
- Verifica X-Domu-Signature (t=<timestamp>,v1=<hmac>): HMAC-SHA256 de "<timestamp>.<cuerpo crudo>" con el secret de la suscripción. Compara en tiempo constante y rechaza marcas de más de 5 minutos.
- Responde 2xx en menos de 10 s y procesa en segundo plano. ByDomu reintenta hasta 5 veces (0 s, 5 s, 30 s, 2 min y 10 min) ante error de red, 429 o 5xx.
- Usa el campo id de cada entrega para descartar las repetidas; lo que manda es el campo type.
- Escribe un script que consulte el catálogo con GET /v1/events y cree la suscripción con POST /v1/webhooks (url, eventTypes, description). Guarda el secret que devuelve (se muestra una sola vez) en una variable de entorno.
- Eventos: deal.won y contact.* (acepta tipos exactos, objeto.* o *).

Contexto de ByDomu (no lo cambies):
- API REST v1: https://api.bydomu.com/v1. Spec OpenAPI: https://api.bydomu.com/v1/openapi.json. Léela antes de escribir código y usa solo los endpoints, parámetros y campos que aparecen ahí.
- Autenticación: encabezado X-API-Key (no se acepta Authorization: Bearer).
  · Clave publicable domu_pk_live_…: puede ir en el navegador; solo sirve para portal:read, leads:write, booking:write, finder:write, events:write.
  · Clave secreta domu_sk_live_…: SOLO en el servidor, en una variable de entorno. Nunca la pongas en el código del navegador, en el repositorio ni en logs: desde un navegador la API responde 403 SECRET_KEY_IN_BROWSER.
- Límites: publicable 300 peticiones/min (60 escrituras); secreta 60/min (30 escrituras). Lee X-RateLimit-Remaining y, ante 429 RATE_LIMITED, espera los segundos de Retry-After.
- Errores: { "error": { "code", "message" } }. 401 clave inválida, 403 falta el permiso, 404 no existe, 429 límite.
- Listados: page y pageSize (respeta el máximo de cada endpoint) con meta.total / meta.totalPages.
- En escrituras manda Idempotency-Key para que un reintento no duplique nada.

«Conecta ByDomu a Claude por MCP»

Configura el servidor MCP de solo lectura en tu cliente y pruébalo.

mcp.bydomu.com/mcpportal:readcontacts:readdeals:read
Prompt
Tarea: conecta ByDomu a este cliente por MCP.
- Servidor: https://mcp.bydomu.com/mcp (Streamable HTTP, solo POST). Es de solo lectura.
- Autenticación: encabezado Authorization: Bearer <clave secreta domu_sk_live_…>. Una clave publicable da 403. Lee la clave de la variable BYDOMU_API_KEY; no la escribas en archivos del repositorio.
- La clave solo necesita permisos de lectura: portal:read, contacts:read, appointments:read, deals:read y tasks:read (conversations:read solo si quiero los mensajes de un contacto).
- Configúralo según el cliente: Claude Code con "claude mcp add --transport http bydomu https://mcp.bydomu.com/mcp --header ..."; Cursor en .cursor/mcp.json con url y headers; VS Code en .vscode/mcp.json con "servers" y "type": "http".
- Prueba la conexión llamando la herramienta get_summary y dime qué plan y qué permisos reporta.
- Herramientas disponibles: search_properties, get_property, search_contacts, get_contact, list_appointments, list_pipelines, list_deals, list_pending_tasks, get_summary.

Contexto de ByDomu (no lo cambies):
- API REST v1: https://api.bydomu.com/v1. Spec OpenAPI: https://api.bydomu.com/v1/openapi.json. Léela antes de escribir código y usa solo los endpoints, parámetros y campos que aparecen ahí.
- Autenticación: encabezado X-API-Key (no se acepta Authorization: Bearer).
  · Clave publicable domu_pk_live_…: puede ir en el navegador; solo sirve para portal:read, leads:write, booking:write, finder:write, events:write.
  · Clave secreta domu_sk_live_…: SOLO en el servidor, en una variable de entorno. Nunca la pongas en el código del navegador, en el repositorio ni en logs: desde un navegador la API responde 403 SECRET_KEY_IN_BROWSER.
- Límites: publicable 300 peticiones/min (60 escrituras); secreta 60/min (30 escrituras). Lee X-RateLimit-Remaining y, ante 429 RATE_LIMITED, espera los segundos de Retry-After.
- Errores: { "error": { "code", "message" } }. 401 clave inválida, 403 falta el permiso, 404 no existe, 429 límite.
- Listados: page y pageSize (respeta el máximo de cada endpoint) con meta.total / meta.totalPages.
- En escrituras manda Idempotency-Key para que un reintento no duplique nada.

«Construye un reporte con los negocios de ByDomu»

Embudos, etapas y negocios leídos desde el servidor con una clave de lectura.

GET /v1/pipelinesGET /v1/dealsdeals:read
Prompt
Tarea: construye un reporte con los negocios de mi inmobiliaria en ByDomu.
- Desde el servidor, con una clave secreta de solo lectura (deals:read), lee GET /v1/pipelines para los embudos y sus etapas, y GET /v1/deals recorriendo todas las páginas. Usa los filtros de la spec (pipelineId, stageId, status, agentId, expectedCloseBefore…) en vez de traer todo.
- Calcula: cantidad y valor de negocios por etapa, los abiertos que deberían cerrar este mes y el resumen por asesor.
- Guarda una foto diaria para ver la tendencia en lugar de pedir todo cada vez.
- La clave no sale del servidor: el frontend le pide a mi backend los datos ya agregados.
- Respeta el límite de 60 peticiones por minuto de una clave secreta.

Contexto de ByDomu (no lo cambies):
- API REST v1: https://api.bydomu.com/v1. Spec OpenAPI: https://api.bydomu.com/v1/openapi.json. Léela antes de escribir código y usa solo los endpoints, parámetros y campos que aparecen ahí.
- Autenticación: encabezado X-API-Key (no se acepta Authorization: Bearer).
  · Clave publicable domu_pk_live_…: puede ir en el navegador; solo sirve para portal:read, leads:write, booking:write, finder:write, events:write.
  · Clave secreta domu_sk_live_…: SOLO en el servidor, en una variable de entorno. Nunca la pongas en el código del navegador, en el repositorio ni en logs: desde un navegador la API responde 403 SECRET_KEY_IN_BROWSER.
- Límites: publicable 300 peticiones/min (60 escrituras); secreta 60/min (30 escrituras). Lee X-RateLimit-Remaining y, ante 429 RATE_LIMITED, espera los segundos de Retry-After.
- Errores: { "error": { "code", "message" } }. 401 clave inválida, 403 falta el permiso, 404 no existe, 429 límite.
- Listados: page y pageSize (respeta el máximo de cada endpoint) con meta.total / meta.totalPages.
- En escrituras manda Idempotency-Key para que un reintento no duplique nada.