Prompts para agentes de código
Copie no Claude Code, Cursor, Codex ou Copilot. Cada um traz o contexto de que o agente precisa: a spec OpenAPI, a autenticação, os limites, os erros e a regra de nunca expor a chave secreta.
Como usar. Cole o prompt no seu agente dentro do repositório do seu site ou backend. Deixe a chave em uma variável de ambiente e não a cole no chat.
«Sincronize o inventário do ByDomu com meu site»
Lê os imóveis publicados, percorre as páginas e serve o site a partir de um cache.
GET /v1/propertiesGET /v1/properties/{id}portal:readTarefa: sincronize o inventário da minha imobiliária no ByDomu com meu site.
- No servidor, leia GET /v1/properties com uma chave publicável (basta portal:read) e percorra todas as páginas.
- Guarde o resultado em um cache (por exemplo, 15 minutos) e sirva o site a partir dele, sem chamar o ByDomu a cada visita.
- Para a ficha use GET /v1/properties/{id}.
- Só chegam imóveis ativos e publicados: se um sumir da lista, tire-o do site.
- Mostre preço, localização, quartos, banheiros, área, fotos e corretor com os nomes de campo da spec.
- Trate 429 com Retry-After e registre os erros sem imprimir a chave.
Antes de escrever código, diga quais arquivos vai criar ou alterar.
Contexto do ByDomu (não altere):
- API REST v1: https://api.bydomu.com/v1. Spec OpenAPI: https://api.bydomu.com/v1/openapi.json. Leia antes de escrever código e use só os endpoints, parâmetros e campos que aparecem nela.
- Autenticação: cabeçalho X-API-Key (Authorization: Bearer não é aceito).
· Chave publicável domu_pk_live_…: pode ficar no navegador; só serve para portal:read, leads:write, booking:write, finder:write, events:write.
· Chave secreta domu_sk_live_…: SÓ NO SERVIDOR, em uma variável de ambiente. Nunca a coloque no código do navegador, no repositório nem em logs: de um navegador a API responde 403 SECRET_KEY_IN_BROWSER.
- Limites: publicável 300 requisições/min (60 escritas); secreta 60/min (30 escritas). Leia X-RateLimit-Remaining e, com 429 RATE_LIMITED, espere os segundos de Retry-After.
- Erros: { "error": { "code", "message" } }. 401 chave inválida, 403 falta a permissão, 404 não existe, 429 limite.
- Listas: page e pageSize (respeite o máximo de cada endpoint) com meta.total / meta.totalPages.
- Nas escritas envie Idempotency-Key para que uma nova tentativa não duplique nada.«Crie um formulário de contato que gere o lead no ByDomu»
Com uma chave publicável: o lead chega ao ByDomu com o imóvel e os UTMs.
POST /v1/leadsleads:writeTarefa: crie um formulário de contato no meu site que gere o lead no ByDomu.
- Use POST /v1/leads com uma chave publicável (leads:write). Nunca use uma chave secreta no navegador.
- Campos: os do corpo de POST /v1/leads na spec. firstName e phone são obrigatórios; email, message, propertyId e interestedIn, opcionais. Na ficha de um imóvel, envie o propertyId.
- Passe os utm da URL para utmSource, utmMedium, utmCampaign e utmContent.
- Valide antes de enviar e mostre em palavras os erros 400 da API.
- Envie uma Idempotency-Key por envio para que um clique duplo não duplique o lead.
- Ao final, mostre uma mensagem de sucesso clara e deixe o formulário acessível pelo teclado.
Contexto do ByDomu (não altere):
- API REST v1: https://api.bydomu.com/v1. Spec OpenAPI: https://api.bydomu.com/v1/openapi.json. Leia antes de escrever código e use só os endpoints, parâmetros e campos que aparecem nela.
- Autenticação: cabeçalho X-API-Key (Authorization: Bearer não é aceito).
· Chave publicável domu_pk_live_…: pode ficar no navegador; só serve para portal:read, leads:write, booking:write, finder:write, events:write.
· Chave secreta domu_sk_live_…: SÓ NO SERVIDOR, em uma variável de ambiente. Nunca a coloque no código do navegador, no repositório nem em logs: de um navegador a API responde 403 SECRET_KEY_IN_BROWSER.
- Limites: publicável 300 requisições/min (60 escritas); secreta 60/min (30 escritas). Leia X-RateLimit-Remaining e, com 429 RATE_LIMITED, espere os segundos de Retry-After.
- Erros: { "error": { "code", "message" } }. 401 chave inválida, 403 falta a permissão, 404 não existe, 429 limite.
- Listas: page e pageSize (respeite o máximo de cada endpoint) com meta.total / meta.totalPages.
- Nas escritas envie Idempotency-Key para que uma nova tentativa não duplique nada.«Receba webhooks do ByDomu»
Endpoint que verifica a assinatura, responde a tempo e descarta repetidos.
GET /v1/eventsPOST /v1/webhookswebhooks:writeTarefa: receba no meu servidor os webhooks do ByDomu.
- Requisito: uma chave secreta com a permissão webhooks:write (o suporte do ByDomu aprova). Ela fica em uma variável de ambiente do servidor.
- Crie um endpoint HTTPS POST que leia o corpo CRU, antes de interpretar o JSON.
- Verifique X-Domu-Signature (t=<timestamp>,v1=<hmac>): HMAC-SHA256 de "<timestamp>.<corpo cru>" com o secret da assinatura. Compare em tempo constante e rejeite marcas com mais de 5 minutos.
- Responda 2xx em menos de 10 s e processe em segundo plano. O ByDomu tenta de novo até 5 vezes (0 s, 5 s, 30 s, 2 min e 10 min) em erro de rede, 429 ou 5xx.
- Use o campo id de cada entrega para descartar as repetidas; o que manda é o campo type.
- Escreva um script que consulte o catálogo com GET /v1/events e crie a assinatura com POST /v1/webhooks (url, eventTypes, description). Guarde o secret devolvido (aparece uma só vez) em uma variável de ambiente.
- Eventos: deal.won e contact.* (aceita tipos exatos, objeto.* ou *).
Contexto do ByDomu (não altere):
- API REST v1: https://api.bydomu.com/v1. Spec OpenAPI: https://api.bydomu.com/v1/openapi.json. Leia antes de escrever código e use só os endpoints, parâmetros e campos que aparecem nela.
- Autenticação: cabeçalho X-API-Key (Authorization: Bearer não é aceito).
· Chave publicável domu_pk_live_…: pode ficar no navegador; só serve para portal:read, leads:write, booking:write, finder:write, events:write.
· Chave secreta domu_sk_live_…: SÓ NO SERVIDOR, em uma variável de ambiente. Nunca a coloque no código do navegador, no repositório nem em logs: de um navegador a API responde 403 SECRET_KEY_IN_BROWSER.
- Limites: publicável 300 requisições/min (60 escritas); secreta 60/min (30 escritas). Leia X-RateLimit-Remaining e, com 429 RATE_LIMITED, espere os segundos de Retry-After.
- Erros: { "error": { "code", "message" } }. 401 chave inválida, 403 falta a permissão, 404 não existe, 429 limite.
- Listas: page e pageSize (respeite o máximo de cada endpoint) com meta.total / meta.totalPages.
- Nas escritas envie Idempotency-Key para que uma nova tentativa não duplique nada.«Conecte o ByDomu ao Claude por MCP»
Configure o servidor MCP somente leitura no seu cliente e teste.
mcp.bydomu.com/mcpportal:readcontacts:readdeals:readTarefa: conecte o ByDomu a este cliente por MCP.
- Servidor: https://mcp.bydomu.com/mcp (Streamable HTTP, só POST). É somente leitura.
- Autenticação: cabeçalho Authorization: Bearer <chave secreta domu_sk_live_…>. Uma chave publicável dá 403. Leia a chave da variável BYDOMU_API_KEY; não a escreva em arquivos do repositório.
- A chave só precisa de permissões de leitura: portal:read, contacts:read, appointments:read, deals:read e tasks:read (conversations:read só se eu quiser as mensagens de um contato).
- Configure conforme o cliente: Claude Code com "claude mcp add --transport http bydomu https://mcp.bydomu.com/mcp --header ..."; Cursor em .cursor/mcp.json com url e headers; VS Code em .vscode/mcp.json com "servers" e "type": "http".
- Teste a conexão chamando a ferramenta get_summary e diga qual plano e quais permissões ela informa.
- Ferramentas disponíveis: search_properties, get_property, search_contacts, get_contact, list_appointments, list_pipelines, list_deals, list_pending_tasks, get_summary.
Contexto do ByDomu (não altere):
- API REST v1: https://api.bydomu.com/v1. Spec OpenAPI: https://api.bydomu.com/v1/openapi.json. Leia antes de escrever código e use só os endpoints, parâmetros e campos que aparecem nela.
- Autenticação: cabeçalho X-API-Key (Authorization: Bearer não é aceito).
· Chave publicável domu_pk_live_…: pode ficar no navegador; só serve para portal:read, leads:write, booking:write, finder:write, events:write.
· Chave secreta domu_sk_live_…: SÓ NO SERVIDOR, em uma variável de ambiente. Nunca a coloque no código do navegador, no repositório nem em logs: de um navegador a API responde 403 SECRET_KEY_IN_BROWSER.
- Limites: publicável 300 requisições/min (60 escritas); secreta 60/min (30 escritas). Leia X-RateLimit-Remaining e, com 429 RATE_LIMITED, espere os segundos de Retry-After.
- Erros: { "error": { "code", "message" } }. 401 chave inválida, 403 falta a permissão, 404 não existe, 429 limite.
- Listas: page e pageSize (respeite o máximo de cada endpoint) com meta.total / meta.totalPages.
- Nas escritas envie Idempotency-Key para que uma nova tentativa não duplique nada.«Construa um relatório com os negócios do ByDomu»
Funis, etapas e negócios lidos no servidor com uma chave de leitura.
GET /v1/pipelinesGET /v1/dealsdeals:readTarefa: construa um relatório com os negócios da minha imobiliária no ByDomu.
- No servidor, com uma chave secreta somente leitura (deals:read), leia GET /v1/pipelines para os funis e suas etapas, e GET /v1/deals percorrendo todas as páginas. Use os filtros da spec (pipelineId, stageId, status, agentId, expectedCloseBefore…) em vez de trazer tudo.
- Calcule: quantidade e valor dos negócios por etapa, os abertos que deveriam fechar este mês e o resumo por corretor.
- Guarde uma foto diária para ver a tendência em vez de pedir tudo a cada vez.
- A chave não sai do servidor: o frontend pede ao meu backend os dados já agregados.
- Respeite o limite de 60 requisições por minuto de uma chave secreta.
Contexto do ByDomu (não altere):
- API REST v1: https://api.bydomu.com/v1. Spec OpenAPI: https://api.bydomu.com/v1/openapi.json. Leia antes de escrever código e use só os endpoints, parâmetros e campos que aparecem nela.
- Autenticação: cabeçalho X-API-Key (Authorization: Bearer não é aceito).
· Chave publicável domu_pk_live_…: pode ficar no navegador; só serve para portal:read, leads:write, booking:write, finder:write, events:write.
· Chave secreta domu_sk_live_…: SÓ NO SERVIDOR, em uma variável de ambiente. Nunca a coloque no código do navegador, no repositório nem em logs: de um navegador a API responde 403 SECRET_KEY_IN_BROWSER.
- Limites: publicável 300 requisições/min (60 escritas); secreta 60/min (30 escritas). Leia X-RateLimit-Remaining e, com 429 RATE_LIMITED, espere os segundos de Retry-After.
- Erros: { "error": { "code", "message" } }. 401 chave inválida, 403 falta a permissão, 404 não existe, 429 limite.
- Listas: page e pageSize (respeite o máximo de cada endpoint) com meta.total / meta.totalPages.
- Nas escritas envie Idempotency-Key para que uma nova tentativa não duplique nada.