Documentação da API

Tudo que um sistema de fora consegue fazer no seu CRM com uma chave de API: consultar sua base e criar registros. Para o caminho contrário — o CRM avisando o outro sistema —, veja a documentação de webhooks.

Nesta página

Começar#

Três passos: gere uma chave, copie o comando abaixo trocando SUA_CHAVE, e rode. Ele cria um lead de verdade no seu funil.

Primeiro comando

curl -X POST "https://api.dommu.app/v1/leads" \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido-4f2a9c" \
  -d '{
    "nome": "Maria Silva",
    "celular": "11999998888",
    "email": "maria@exemplo.com",
    "mensagem": "Tenho interesse no apartamento do centro"
  }'
  • · O endereço é sempre o do Dommu (https://api.dommu.app) — a sua conta é identificada pela chave, então você nunca envia o id da organização.
  • · Toda resposta é JSON, com Content-Type: application/json.
  • · Leitura e escrita são permissões separadas: a chave só faz o que você marcou.

Autenticação#

Toda chamada leva a chave no cabeçalho. Guarde-a num cofre de segredos: quem tem a chave age no seu CRM.

Authorization: Bearer SUA_CHAVE

O cabeçalho X-Api-Key: SUA_CHAVE também é aceito, para ferramentas que não deixam escrever Authorization.

  • · A chave pode ter data de expiração: depois dela, toda chamada volta 401 chave_expirada.
  • · A chave pode aceitar só certos IPs: origem fora da lista recebe 403 ip_nao_autorizado. Peça ao time que vai integrar o IP de saída do servidor deles.
  • · Revogar é imediato e não tem volta — a chave revogada passa a responder 401 na hora seguinte.

Leads e atendimento#

5 endpoints nesta área.

GET/v1/leadsListar leadsver detalhes
exige ler leads

Devolve os leads da imobiliária, do mais recente para o mais antigo, com paginação por cursor. A resposta traz `dados` e `proximoCursor` (null na última página).

Parâmetros

  • limiteQuantos registros por página (1 a 100; padrão 50).
  • cursorContinua da página seguinte — use o `proximoCursor` da resposta anterior.
  • desdeSó registros criados a partir desta data (ISO 8601) — sincronização incremental.
  • statusFiltra pela chave da coluna do funil.
  • celularFiltra por celular (só dígitos, casamento parcial).
  • emailFiltra por e-mail exato.
  • arquivados`excluir` (padrão), `incluir` ou `apenas`.

Requisição

curl -X GET "https://api.dommu.app/v1/leads?limite=50&status=NOVO" \
  -H "Authorization: Bearer SUA_CHAVE"

Resposta

200 {
  "dados": [
    {
      "id": "cmd9x2v4k0001",
      "nome": "Maria Silva",
      "email": "maria@exemplo.com",
      "celular": "11999998888",
      "status": "NOVO",
      "origem": "SITE",
      "responsavel": {
        "id": "cmd6u1p2z0003",
        "nome": "João Corretor"
      },
      "criadoEm": "2026-07-25T13:40:02.118Z"
    }
  ],
  "proximoCursor": null
}
POST/v1/leadsCriar leadver detalhes
exige criar leads
aceita Idempotency-Key

Cria um lead pelo mesmo caminho de um lead do site: deduplicação, distribuição para o corretor, notificação e disparo dos webhooks de saída.

Corpo

  • nomeobrigatórioNome do contato.
  • celularobrigatórioDDD + número, só dígitos.
  • emailE-mail do contato.
  • mensagemTexto que o contato enviou — vira a primeira atividade do lead.
  • imovelIdVincula o lead a um imóvel do seu cadastro.
  • empreendimentoIdVincula o lead a um empreendimento.

Requisição

curl -X POST "https://api.dommu.app/v1/leads" \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido-4f2a9c" \
  -d '{
    "nome": "Maria Silva",
    "celular": "11999998888",
    "email": "maria@exemplo.com",
    "mensagem": "Tenho interesse no apartamento do centro"
  }'

Corpo enviado

{
  "nome": "Maria Silva",
  "celular": "11999998888",
  "email": "maria@exemplo.com",
  "mensagem": "Tenho interesse no apartamento do centro"
}

Resposta

201 {
  "success": true,
  "leadId": "cmd9x2v4k0001"
}
POST/v1/leads/{id}/atividadesRegistrar nota em um leadver detalhes
exige registrar atividades
aceita Idempotency-Key

Anexa uma nota à linha do tempo de um lead existente.

Corpo

  • descricaoobrigatórioTexto da nota.

Parâmetros

  • idId do lead (o `leadId` devolvido na criação).

Requisição

curl -X POST "https://api.dommu.app/v1/leads/LEAD_ID/atividades" \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido-4f2a9c" \
  -d '{
    "descricao": "Cliente respondeu o e-mail e pediu para ligar à tarde"
  }'

Corpo enviado

{
  "descricao": "Cliente respondeu o e-mail e pediu para ligar à tarde"
}

Resposta

201 {
  "success": true,
  "leadId": "cmd9x2v4k0001"
}
POST/v1/leads/{id}/statusMudar a etapa de um leadver detalhes
exige alterar etapa de leads
aceita Idempotency-Key

Move o lead para outra coluna do seu funil e registra a mudança na linha do tempo.

Não altera o responsável do lead — mantém quem já estava. O status precisa ser a chave de uma coluna existente no seu funil.

Corpo

  • statusobrigatórioChave da coluna do funil.
  • noteMotivo da mudança.

Parâmetros

  • idId do lead.

Requisição

curl -X POST "https://api.dommu.app/v1/leads/LEAD_ID/status" \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido-4f2a9c" \
  -d '{
    "status": "EM_ATENDIMENTO",
    "note": "Retornou o contato"
  }'

Corpo enviado

{
  "status": "EM_ATENDIMENTO",
  "note": "Retornou o contato"
}

Resposta

200 {
  "success": true,
  "leadId": "cmd9x2v4k0001",
  "status": "EM_ATENDIMENTO"
}
GET/v1/atividadesListar atividadesver detalhes
exige ler atividades

Linha do tempo da imobiliária: notas, mudanças de etapa, visitas e o que mais o CRM registra. Filtre por `leadId` para a timeline de um lead.

Parâmetros

  • limiteQuantos registros por página (1 a 100; padrão 50).
  • cursorContinua da página seguinte — use o `proximoCursor` da resposta anterior.
  • desdeSó registros criados a partir desta data (ISO 8601) — sincronização incremental.
  • leadIdSó as atividades deste lead.
  • tipoTipo da atividade (ex.: NOTA, LIGACAO, VISITA).

Requisição

curl -X GET "https://api.dommu.app/v1/atividades?limite=50&tipo=NOTA" \
  -H "Authorization: Bearer SUA_CHAVE"

Resposta

200 {
  "dados": [
    {
      "id": "cmda1b2c3",
      "tipo": "NOTA",
      "descricao": "Cliente pediu para ligar à tarde",
      "leadId": "cmd9x2v4k0001",
      "autor": null,
      "criadoEm": "2026-07-25T14:02:11.482Z"
    }
  ],
  "proximoCursor": null
}

Portfólio#

5 endpoints nesta área.

GET/v1/imoveisListar imóveisver detalhes
exige ler imóveis

Devolve o cadastro de imóveis da imobiliária com preços, características e endereço. Inclui imóvel oculto do site e status não-disponível — é a sua base, não a vitrine pública.

Parâmetros

  • limiteQuantos registros por página (1 a 100; padrão 50).
  • cursorContinua da página seguinte — use o `proximoCursor` da resposta anterior.
  • desdeSó registros criados a partir desta data (ISO 8601) — sincronização incremental.
  • codigoFiltra pelo código do imóvel.
  • tipoCASA, APARTAMENTO, TERRENO, COMERCIAL ou RURAL.
  • finalidadeVENDA, LOCACAO ou AMBOS.
  • statusDISPONIVEL, RESERVADO, VENDIDO, ALUGADO ou INATIVO.
  • cidadeFiltra pela cidade (exato, sem diferenciar maiúsculas).

Requisição

curl -X GET "https://api.dommu.app/v1/imoveis?limite=50&tipo=APARTAMENTO" \
  -H "Authorization: Bearer SUA_CHAVE"

Resposta

200 {
  "dados": [
    {
      "id": "cmd7a1b2c0004",
      "codigo": "AP-1042",
      "titulo": "Apartamento 2 quartos no Centro",
      "tipo": "APARTAMENTO",
      "finalidade": "VENDA",
      "status": "DISPONIVEL",
      "precoVenda": 450000,
      "quartos": 2,
      "endereco": {
        "cidade": "Porto Alegre",
        "estado": "RS",
        "bairro": "Centro"
      }
    }
  ],
  "proximoCursor": "cmd7a1b2c0004"
}
GET/v1/empreendimentosListar empreendimentosver detalhes
exige ler empreendimentos

Empreendimentos com construtora, andamento de obra, faixa de preço e quantas unidades já estão cadastradas. Rascunho não aparece.

Parâmetros

  • limiteQuantos registros por página (1 a 100; padrão 50).
  • cursorContinua da página seguinte — use o `proximoCursor` da resposta anterior.
  • desdeSó registros criados a partir desta data (ISO 8601) — sincronização incremental.
  • cidadeFiltra pela cidade.
  • ativo`true` ou `false`.

Requisição

curl -X GET "https://api.dommu.app/v1/empreendimentos?limite=50" \
  -H "Authorization: Bearer SUA_CHAVE"

Resposta

200 {
  "dados": [
    {
      "id": "cmdb1c2d3",
      "nome": "Residencial Aurora",
      "codigo": "AUR",
      "statusObra": "EM_OBRAS",
      "progressoObra": 45,
      "precoMinimo": 380000,
      "unidadesCadastradas": 24,
      "endereco": {
        "cidade": "Porto Alegre",
        "estado": "RS"
      }
    }
  ],
  "proximoCursor": null
}
GET/v1/proprietariosListar proprietáriosver detalhes
exige ler proprietários

Base de proprietários com contato e quantos imóveis cada um tem na sua carteira.

Parâmetros

  • limiteQuantos registros por página (1 a 100; padrão 50).
  • cursorContinua da página seguinte — use o `proximoCursor` da resposta anterior.
  • desdeSó registros criados a partir desta data (ISO 8601) — sincronização incremental.
  • ativo`true` ou `false`.

Requisição

curl -X GET "https://api.dommu.app/v1/proprietarios?limite=50" \
  -H "Authorization: Bearer SUA_CHAVE"

Resposta

200 {
  "dados": [
    {
      "id": "cmdc1d2e3",
      "nome": "Carlos Pereira",
      "email": "carlos@exemplo.com",
      "celular": "51999990000",
      "tipoPessoa": "FISICA",
      "imoveis": 3,
      "ativo": true
    }
  ],
  "proximoCursor": null
}
POST/v1/proprietariosCadastrar proprietáriover detalhes
exige cadastrar e editar proprietários
aceita Idempotency-Key

Cadastra proprietário com deduplicação por CPF/CNPJ. Se vier `leadId`, o lead ganha o papel de proprietário na mesma transação.

Documento já cadastrado volta 409 conflito — a API não cria proprietário duplicado.

Corpo

  • nomeobrigatórioNome do proprietário.
  • emailE-mail de contato.
  • celularCelular de contato.
  • documentoCPF ou CNPJ (com ou sem máscara).
  • tipoPessoaFISICA (padrão) ou JURIDICA.
  • leadIdLead que virou proprietário.
  • dadosBancariosObjeto com os dados de repasse — guardado cifrado.
  • taxaAdminCustomTaxa de administração específica deste proprietário (%).

Requisição

curl -X POST "https://api.dommu.app/v1/proprietarios" \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido-4f2a9c" \
  -d '{
    "nome": "Carlos Pereira",
    "email": "carlos@exemplo.com",
    "celular": "51999990000"
  }'

Corpo enviado

{
  "nome": "Carlos Pereira",
  "email": "carlos@exemplo.com",
  "celular": "51999990000"
}

Resposta

201 {
  "success": true,
  "proprietarioId": "cmdc1d2e3"
}
PATCH/v1/proprietarios/{id}Atualizar proprietáriover detalhes
exige cadastrar e editar proprietários
aceita Idempotency-Key

Atualização parcial: só os campos enviados são alterados; o resto permanece como está.

Corpo

  • nomeNovo nome.
  • emailNovo e-mail.
  • celularNovo celular.
  • documentoNovo CPF/CNPJ.
  • tipoPessoaFISICA ou JURIDICA.
  • leadIdLead vinculado.
  • dadosBancariosDados de repasse (substitui os atuais, cifrado).
  • taxaAdminCustomTaxa de administração (%).

Parâmetros

  • idId do proprietário.

Requisição

curl -X PATCH "https://api.dommu.app/v1/proprietarios/PROPRIETARIO_ID" \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido-4f2a9c" \
  -d '{
    "nome": "Carlos A. Pereira"
  }'

Corpo enviado

{
  "nome": "Carlos A. Pereira"
}

Resposta

200 {
  "success": true,
  "proprietarioId": "cmdc1d2e3"
}

Comercial#

2 endpoints nesta área.

GET/v1/vendasListar vendas e propostasver detalhes
exige ler vendas e propostas

Vendas/propostas com etapa, valor, lead e corretor responsável.

Parâmetros

  • limiteQuantos registros por página (1 a 100; padrão 50).
  • cursorContinua da página seguinte — use o `proximoCursor` da resposta anterior.
  • desdeSó registros criados a partir desta data (ISO 8601) — sincronização incremental.
  • statusStatus da venda (ex.: EM_ANDAMENTO).
  • etapaEtapa do fluxo de venda.
  • leadIdSó as vendas deste lead.
  • arquivados`excluir` (padrão), `incluir` ou `apenas`.

Requisição

curl -X GET "https://api.dommu.app/v1/vendas?limite=50" \
  -H "Authorization: Bearer SUA_CHAVE"

Resposta

200 {
  "dados": [
    {
      "id": "cmdd1e2f3",
      "numero": "V-1042",
      "status": "EM_ANDAMENTO",
      "etapa": "PROPOSTA",
      "valor": 450000,
      "lead": {
        "id": "cmd9x2v4k0001",
        "nome": "Maria Silva"
      },
      "corretor": {
        "id": "cmd6u1p2z0003",
        "nome": "João Corretor"
      }
    }
  ],
  "proximoCursor": null
}
GET/v1/simulacoesListar simulaçõesver detalhes
exige ler simulações

Simulações de financiamento geradas no CRM ou no seu site, com valor do imóvel, entrada e prazo.

Parâmetros

  • limiteQuantos registros por página (1 a 100; padrão 50).
  • cursorContinua da página seguinte — use o `proximoCursor` da resposta anterior.
  • desdeSó registros criados a partir desta data (ISO 8601) — sincronização incremental.
  • statusStatus da simulação.
  • leadIdSó as simulações deste lead.

Requisição

curl -X GET "https://api.dommu.app/v1/simulacoes?limite=50" \
  -H "Authorization: Bearer SUA_CHAVE"

Resposta

200 {
  "dados": [
    {
      "id": "cmde1f2g3",
      "status": "CONCLUIDA",
      "origem": "SITE",
      "nomeCliente": "Maria Silva",
      "valorImovel": 450000,
      "entrada": 90000,
      "prazoDesejado": 360
    }
  ],
  "proximoCursor": null
}

Agenda e tarefas#

4 endpoints nesta área.

GET/v1/agendaListar agendaver detalhes
exige ler agenda

Visitas e compromissos da equipe inteira. Use `de`/`ate` para a janela por data de início.

Parâmetros

  • limiteQuantos registros por página (1 a 100; padrão 50).
  • cursorContinua da página seguinte — use o `proximoCursor` da resposta anterior.
  • desdeSó registros criados a partir desta data (ISO 8601) — sincronização incremental.
  • deInício da janela (ISO 8601), pela data do compromisso.
  • ateFim da janela (ISO 8601).
  • statusStatus do compromisso (ex.: AGENDADO).
  • tipoTipo (ex.: VISITA).
  • responsavelIdSó os compromissos deste membro.
  • leadIdSó os compromissos deste lead.

Requisição

curl -X GET "https://api.dommu.app/v1/agenda?limite=50&de=2026-07-25T00%3A00%3A00Z" \
  -H "Authorization: Bearer SUA_CHAVE"

Resposta

200 {
  "dados": [
    {
      "id": "cmdf1g2h3",
      "titulo": "Visita — Apto Centro",
      "tipo": "VISITA",
      "status": "AGENDADO",
      "iniciaEm": "2026-07-28T17:00:00.000Z",
      "terminaEm": "2026-07-28T18:00:00.000Z",
      "responsavel": {
        "id": "cmd6u1p2z0003",
        "nome": "João Corretor"
      }
    }
  ],
  "proximoCursor": null
}
GET/v1/tarefasListar tarefasver detalhes
exige ler tarefas

Tarefas da equipe com prioridade, prazo e responsável.

Parâmetros

  • limiteQuantos registros por página (1 a 100; padrão 50).
  • cursorContinua da página seguinte — use o `proximoCursor` da resposta anterior.
  • desdeSó registros criados a partir desta data (ISO 8601) — sincronização incremental.
  • statusStatus (ex.: PENDENTE).
  • prioridadePrioridade (ex.: ALTA).
  • responsavelIdSó as tarefas deste membro.
  • leadIdSó as tarefas deste lead.

Requisição

curl -X GET "https://api.dommu.app/v1/tarefas?limite=50" \
  -H "Authorization: Bearer SUA_CHAVE"

Resposta

200 {
  "dados": [
    {
      "id": "cmdg1h2i3",
      "titulo": "Enviar proposta revisada",
      "status": "PENDENTE",
      "prioridade": "ALTA",
      "dataVencimento": "2026-07-29T12:00:00.000Z",
      "responsavel": {
        "id": "cmd6u1p2z0003",
        "nome": "João Corretor"
      }
    }
  ],
  "proximoCursor": null
}
POST/v1/tarefasCriar tarefaver detalhes
exige criar tarefas
aceita Idempotency-Key

Cria uma tarefa pelo mesmo caminho da tela: notifica o responsável, entra no realtime e dispara o webhook de saída.

Sem `responsavelId` a tarefa nasce SEM dono e visível para a equipe — via API não existe "quem criou" para herdar a tarefa.

Corpo

  • tituloobrigatórioTítulo da tarefa.
  • descricaoDetalhes.
  • prioridadeBAIXA, MEDIA, ALTA ou URGENTE.
  • statusPENDENTE (padrão), EM_ANDAMENTO ou CONCLUIDA.
  • dataVencimentoPrazo, em ISO 8601 com fuso.
  • lembreteEmQuando lembrar o responsável (ISO 8601).
  • responsavelIdMembro da equipe que recebe a tarefa.
  • leadIdVincula a tarefa a um lead.
  • imovelIdVincula a um imóvel.
  • vendaIdVincula a uma venda.

Requisição

curl -X POST "https://api.dommu.app/v1/tarefas" \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido-4f2a9c" \
  -d '{
    "titulo": "Enviar proposta revisada",
    "descricao": "Cliente pediu com o desconto aprovado",
    "prioridade": "ALTA"
  }'

Corpo enviado

{
  "titulo": "Enviar proposta revisada",
  "descricao": "Cliente pediu com o desconto aprovado",
  "prioridade": "ALTA"
}

Resposta

201 {
  "success": true,
  "tarefaId": "cmdg1h2i3"
}
POST/v1/agendaAgendar compromissover detalhes
exige agendar
aceita Idempotency-Key

Cria visita ou compromisso pelo caminho da tela: notifica o responsável, sincroniza com o Google Agenda quando conectado e dispara o webhook `Visita agendada`.

Sem `responsavelId` o compromisso nasce sem dono e visível para a equipe. `terminaEm` precisa ser depois de `iniciaEm`.

Corpo

  • tituloobrigatórioTítulo do compromisso.
  • tipoobrigatórioVISITA, REUNIAO, LIGACAO ou OUTROS.
  • iniciaEmobrigatórioInício, em ISO 8601 com fuso.
  • terminaEmobrigatórioFim, em ISO 8601 com fuso.
  • descricaoDetalhes do compromisso.
  • localLocal combinado.
  • enderecoEndereço completo.
  • diaInteiroCompromisso de dia inteiro (padrão false).
  • lembreteLiga o lembrete interno (padrão false).
  • lembrarEmQuando lembrar (ISO 8601).
  • responsavelIdMembro que atende o compromisso.
  • leadIdVincula a um lead.
  • imovelIdVincula a um imóvel.
  • vendaIdVincula a uma venda.

Requisição

curl -X POST "https://api.dommu.app/v1/agenda" \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido-4f2a9c" \
  -d '{
    "titulo": "Visita — Apto Centro",
    "tipo": "VISITA",
    "iniciaEm": "2026-08-01T14:00:00Z",
    "terminaEm": "2026-08-01T15:00:00Z",
    "local": "Portaria do edifício"
  }'

Corpo enviado

{
  "titulo": "Visita — Apto Centro",
  "tipo": "VISITA",
  "iniciaEm": "2026-08-01T14:00:00Z",
  "terminaEm": "2026-08-01T15:00:00Z",
  "local": "Portaria do edifício"
}

Resposta

201 {
  "success": true,
  "agendamentoId": "cmdf1g2h3"
}

Locação#

3 endpoints nesta área.

GET/v1/contratosListar contratos de aluguelver detalhes
exige ler contratos de aluguel

Contratos com vigência, valor, taxa de administração e próximo reajuste.

Área de locação: exige o plano com gestão de aluguel. Sem ele, a chamada volta 403 feature_indisponivel.

Parâmetros

  • limiteQuantos registros por página (1 a 100; padrão 50).
  • cursorContinua da página seguinte — use o `proximoCursor` da resposta anterior.
  • desdeSó registros criados a partir desta data (ISO 8601) — sincronização incremental.
  • statusStatus do contrato (ex.: ATIVO).
  • imovelIdSó os contratos deste imóvel.

Requisição

curl -X GET "https://api.dommu.app/v1/contratos?limite=50" \
  -H "Authorization: Bearer SUA_CHAVE"

Resposta

200 {
  "dados": [
    {
      "id": "cmdh1i2j3",
      "numero": "C-204",
      "status": "ATIVO",
      "valorAluguel": 2500,
      "diaVencimento": 10,
      "iniciaEm": "2026-01-10T03:00:00.000Z",
      "terminaEm": "2027-01-09T03:00:00.000Z",
      "locatario": {
        "id": "cmd9x2v4k0001",
        "nome": "Maria Silva"
      }
    }
  ],
  "proximoCursor": null
}
GET/v1/pagamentosListar cobranças de aluguelver detalhes
exige ler cobranças de aluguel

Parcelas com vencimento, valor, multa/juros e data de pagamento. Use `venceDe`/`venceAte` para a régua de cobrança.

Área de locação: exige o plano com gestão de aluguel.

Parâmetros

  • limiteQuantos registros por página (1 a 100; padrão 50).
  • cursorContinua da página seguinte — use o `proximoCursor` da resposta anterior.
  • desdeSó registros criados a partir desta data (ISO 8601) — sincronização incremental.
  • venceDeVencimento a partir de (ISO 8601).
  • venceAteVencimento até (ISO 8601).
  • statusStatus do pagamento (ex.: PENDENTE, PAGO).
  • contratoIdSó as parcelas deste contrato.

Requisição

curl -X GET "https://api.dommu.app/v1/pagamentos?limite=50&venceDe=2026-07-01T00%3A00%3A00Z" \
  -H "Authorization: Bearer SUA_CHAVE"

Resposta

200 {
  "dados": [
    {
      "id": "cmdi1j2k3",
      "contratoId": "cmdh1i2j3",
      "status": "PENDENTE",
      "numeroParcela": 7,
      "valorTotal": 2750,
      "dataVencimento": "2026-08-10T03:00:00.000Z",
      "pagoEm": null
    }
  ],
  "proximoCursor": null
}
GET/v1/vistoriasListar vistoriasver detalhes
exige ler vistorias

Laudos de vistoria com tipo, estado geral e situação do aceite bilateral.

Exige o plano com vistoria digital.

Parâmetros

  • limiteQuantos registros por página (1 a 100; padrão 50).
  • cursorContinua da página seguinte — use o `proximoCursor` da resposta anterior.
  • desdeSó registros criados a partir desta data (ISO 8601) — sincronização incremental.
  • statusStatus do laudo.
  • tipoENTRADA ou SAIDA.
  • contratoIdSó as vistorias deste contrato.

Requisição

curl -X GET "https://api.dommu.app/v1/vistorias?limite=50" \
  -H "Authorization: Bearer SUA_CHAVE"

Resposta

200 {
  "dados": [
    {
      "id": "cmdj1k2l3",
      "tipo": "ENTRADA",
      "status": "CONCLUIDA",
      "estadoGeral": "BOM",
      "situacaoAceite": "ACEITA",
      "ambientes": 6
    }
  ],
  "proximoCursor": null
}

Gestão#

2 endpoints nesta área.

GET/v1/financeiroListar lançamentos financeirosver detalhes
exige ler financeiro

Lançamentos do financeiro manual da imobiliária, com categoria e data.

Parâmetros

  • limiteQuantos registros por página (1 a 100; padrão 50).
  • cursorContinua da página seguinte — use o `proximoCursor` da resposta anterior.
  • desdeSó registros criados a partir desta data (ISO 8601) — sincronização incremental.
  • tipoRECEITA ou DESPESA.
  • deData do lançamento a partir de (ISO 8601).
  • ateData do lançamento até (ISO 8601).

Requisição

curl -X GET "https://api.dommu.app/v1/financeiro?limite=50" \
  -H "Authorization: Bearer SUA_CHAVE"

Resposta

200 {
  "dados": [
    {
      "id": "cmdk1l2m3",
      "tipo": "DESPESA",
      "descricao": "Anúncio no portal",
      "valor": 890,
      "data": "2026-07-20T03:00:00.000Z",
      "categoria": {
        "id": "cmdk9z",
        "nome": "Marketing"
      }
    }
  ],
  "proximoCursor": null
}
GET/v1/equipeListar equipever detalhes
exige ler equipe

Membros da equipe com nome, e-mail de trabalho e papel — para mapear responsáveis num BI.

Parâmetros

  • limiteQuantos registros por página (1 a 100; padrão 50).
  • cursorContinua da página seguinte — use o `proximoCursor` da resposta anterior.
  • desdeSó registros criados a partir desta data (ISO 8601) — sincronização incremental.
  • ativo`true` ou `false`.

Requisição

curl -X GET "https://api.dommu.app/v1/equipe?limite=50" \
  -H "Authorization: Bearer SUA_CHAVE"

Resposta

200 {
  "dados": [
    {
      "id": "cmd6u1p2z0003",
      "nome": "João Corretor",
      "email": "joao@imobiliaria.com",
      "papel": "CORRETOR",
      "ativo": true
    }
  ],
  "proximoCursor": null
}

Paginação#

As listagens devolvem uma página de dados e o ponteiro da próxima. Repita passando o cursor até ele vir nulo.

# primeira página
GET /v1/leads?limite=100

# seguinte (use o proximoCursor da resposta)
GET /v1/leads?limite=100&cursor=cmd9x2v4k0001

# só o que entrou depois de ontem — sincronização incremental
GET /v1/leads?desde=2026-07-24T00:00:00Z

Use desde com a data da última sincronização em vez de varrer tudo de novo: é mais rápido para você e não gasta a sua cota à toa.

Repetir sem duplicar#

Se a rede cair depois de o lead já ter sido criado, repetir a chamada criaria um segundo. O cabeçalho de idempotência resolve isso.

Idempotency-Key: pedido-4f2a9c

Por 24 horas, a mesma chave devolve a mesma resposta em vez de executar de novo — a repetição vem com Idempotent-Replay: true.

  • · Use uma chave nova por intenção (ex.: o id do envio no outro sistema).
  • · Reutilizar a mesma chave com um corpo diferente é erro (422), não um replay silencioso.
  • · Duas chamadas simultâneas com a mesma chave: a segunda recebe 409.
  • · Erro nosso (500) não fica guardado: pode repetir com a mesma chave.

Limites de uso#

Por chave e por tipo de operação: 120 leituras e 30 escritas por minuto, em contadores independentes — paginar um catálogo não consome a cota de quem está criando registros.

Cabeçalhos presentes em toda resposta

X-RateLimit-Limit: 120       # chamadas na janela (deste tipo)
X-RateLimit-Remaining: 117   # quantas ainda cabem
X-RateLimit-Reset: 1769...   # quando a janela reinicia (epoch ms)

Leia os cabeçalhos em vez de adivinhar o intervalo entre chamadas. Estourou, a resposta é 429 limite_excedido: espere o reset e siga do mesmo cursor.

Erros#

Erro vem sempre como { "error": "…", "codigo": "…" }. Trate pelo código, que é estável — nunca pelo texto da mensagem.

  • 400corpo_invalidoO corpo enviado não é um JSON válido.
  • 401chave_ausenteFaltou o header de autenticação.
  • 401nao_autenticadoChave inválida ou revogada.
  • 401chave_expiradaA chave passou da data de expiração definida no console.
  • 403sem_permissaoA chave não tem a permissão exigida pelo endpoint.
  • 403ip_nao_autorizadoA chave restringe origens e o IP de quem chamou não está na lista.
  • 404nao_encontradoO recurso citado no caminho não existe nesta conta.
  • 409conflito_idempotenciaOutra requisição com a mesma Idempotency-Key ainda está em andamento.
  • 422dados_invalidosRequisição bem-formada, mas com dado inválido — a mensagem diz qual.
  • 422chave_idempotencia_reutilizadaA mesma Idempotency-Key foi usada com um corpo diferente.
  • 429limite_excedidoLimite de chamadas da chave excedido — veja os headers X-RateLimit-*.
  • 500erro_internoFalha do nosso lado. Pode repetir com a mesma Idempotency-Key.

Zapier, Make e n8n#

Qualquer ferramenta que faça uma requisição HTTP conversa com o Dommu — basta apontar para o endereço com o cabeçalho de autenticação.

Zapier

Ação “Webhooks by Zapier” → POST, com Headers personalizados

Make

Módulo HTTP → Make a request (POST, body Raw/JSON)

n8n

Nó HTTP Request (POST, Header Auth)

Aponte parahttps://api.dommu.app/v1/leadscom o cabeçalho de autenticação.

Para o caminho inverso — receber eventos do CRM nessas ferramentas — veja adocumentação de webhooks