Navegar na documentação

Imóveis

A carteira da conta: ler, sincronizar pelo código do seu sistema, mudar status, confirmar disponibilidade, enviar fotos por endereço e mandar para a lixeira.

As rotas

GET/v1/properties

Listar a carteira

A carteira da conta, mais recentes antes, com filtros. Para sincronizar, use updatedSince — ou os eventos.

Permissão: properties:read

Filtros e paginação

limitinteger
Itens por página: de 1 a 100 (padrão 50).
cursorstring
O nextCursor da página anterior. A lista acabou quando ele vem nulo. Ele vale só para esta rota e esta conta.
statusstring
Status (DELETED = lixeira).um de ACTIVE INACTIVE SOLD RENTED DELETED
purposestring
Finalidade.um de VENDA LOCACAO
typestring
Subtipo.um de APARTAMENTO CASA_RUA CASA_CONDOMINIO CASA_VILA STUDIO FLAT COBERTURA SALA_COMERCIAL LOJA_PONTO GALPAO PREDIO TERRENO_RUA TERRENO_CONDOMINIO CHACARA_SITIO FAZENDA
citySlugstring
Identificador da cidade no catálogo.
updatedSincestring
Só o que mudou desde esta data/hora (ISO 8601, UTC).
radarstring
pending = só quem tem pendência para as recomendações; ready = só quem está pronto.um de pending ready

Resposta200OK

datalista de Propertyobrigatório
Os imóveis.
nextCursorstringobrigatóriopode vir nulo
Cursor da próxima página (nulo = acabou).

Exemplo

curl -X GET 'https://api.imobyflow.com.br/v1/properties' \
  -H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
  -H 'Accept-Language: pt-BR'

Erros desta rota

E os erros comuns a toda rota

GET/v1/properties/by-ref/{ref}

Um imóvel pelo seu código

O imóvel pelo código do seu sistema (externalRef).

Permissão: properties:read

Parâmetros no caminho

refstringobrigatório
O código do imóvel no seu sistema (até 80 caracteres; codifique espaço e /).

Resposta200OK

dataPropertyobrigatório
O imóvel.

Exemplo

curl -X GET 'https://api.imobyflow.com.br/v1/properties/by-ref/AP1234' \
  -H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
  -H 'Accept-Language: pt-BR'

Erros desta rota

E os erros comuns a toda rota

GET/v1/properties/{propertyId}

Um imóvel

O imóvel, com a situação nas recomendações, na análise e na confirmação.

Permissão: properties:read

Parâmetros no caminho

propertyIdstringobrigatório
Id do imóvel (prop-…).

Resposta200OK

dataPropertyobrigatório
O imóvel.

Exemplo

curl -X GET 'https://api.imobyflow.com.br/v1/properties/prop-3f9a1c2b7d4e' \
  -H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
  -H 'Accept-Language: pt-BR'

Erros desta rota

E os erros comuns a toda rota

GET/v1/feed

Estado da sincronização do feed

Como terminou a última sincronização do link do CRM e se há outra agendada — para conferir o resultado depois de um POST /v1/feed/sync. Nunca traz o link nem o token.

Permissão: properties:read

Resposta200OK

dataFeedSyncobrigatório
O estado.

Exemplo

curl -X GET 'https://api.imobyflow.com.br/v1/feed' \
  -H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
  -H 'Accept-Language: pt-BR'

Erros desta rota

    E os erros comuns a toda rota

    POST/v1/feed/sync

    Sincronizar o feed agora

    Avise depois de mudar a carteira no CRM: a ImobyFlow busca o MESMO link do feed, pela mesma sincronização de 6 em 6 horas — só o que mudou é gravado. A primeira chamada de cada janela de 10 minutos sincroniza na hora; as seguintes deixam UMA sincronização agendada para o fim da janela, então nenhuma alteração espera as 6 horas e chamar a cada mudança não sobrecarrega nada. Acompanhe por GET /v1/feed ou pelos eventos dos imóveis.

    Permissão: properties:writeAceita modo ensaioAceita Idempotency-Key

    Filtros e paginação

    dryRunboolean
    true = modo ensaio: valida e diz o que aconteceria, sem gravar nada.

    Resposta202Aceito200 quando já havia uma agendada (`ALREADY_SCHEDULED`) e no ensaio.

    dataFeedSyncobrigatório
    O estado.
    resultFeedSyncResultobrigatório
    O desfecho.

    Exemplo

    # Modo ensaio: nada é gravado. Tire o ?dryRun=true para gravar de verdade.
    curl -X POST 'https://api.imobyflow.com.br/v1/feed/sync?dryRun=true' \
      -H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
      -H 'Accept-Language: pt-BR' \
      -H "Idempotency-Key: $(uuidgen)"

    Erros desta rota

    E os erros comuns a toda rota

    PUT/v1/properties/by-ref/{ref}

    Criar ou atualizar pelo seu código

    O caminho natural de sincronização: cria o imóvel se o código for novo (201) ou atualiza o que existe (200). Campo ausente não apaga; nada mudou = UNCHANGED, sem escrita. A edição feita na tela vence e volta em result.conflicts.

    Permissão: properties:writeAceita modo ensaioAceita Idempotency-Key

    Parâmetros no caminho

    refstringobrigatório
    O código do imóvel no seu sistema (até 80 caracteres; codifique espaço e /).

    Filtros e paginação

    dryRunboolean
    true = modo ensaio: valida e diz o que aconteceria, sem gravar nada.

    Corpo do pedido

    externalRefstring
    O código do imóvel no seu sistema (só no POST; no PUT ele vai no caminho).
    titlestring
    Título. Marcação HTML é removida.
    descriptionstring
    Descrição. <br> e </p> viram quebra de linha; o resto da marcação sai.
    typestring
    Subtipo.um de APARTAMENTO CASA_RUA CASA_CONDOMINIO CASA_VILA STUDIO FLAT COBERTURA SALA_COMERCIAL LOJA_PONTO GALPAO PREDIO TERRENO_RUA TERRENO_CONDOMINIO CHACARA_SITIO FAZENDA
    purposeslista de string
    Finalidades.um de VENDA LOCACAO
    salePricenumberpode vir nulo
    Preço de venda, em reais. Obrigatório com VENDA.
    rentPricenumberpode vir nulo
    Aluguel, em reais. Obrigatório com LOCACAO.
    addressAddressInput
    Endereço.
    bedroomsintegerpode vir nulo
    Quartos.
    suitesintegerpode vir nulo
    Suítes.
    bathroomsintegerpode vir nulo
    Banheiros.
    parkingSpotsintegerpode vir nulo
    Vagas.
    areanumberpode vir nulo
    Área privativa total, em m².
    privateAreanumberpode vir nulo
    Área coberta, em m².
    listingUrlstringpode vir nulo
    Endereço do anúncio no seu site (http ou https).
    captadorNamestringpode vir nulo
    Nome do captador em texto.
    captadorAccountIdstringpode vir nulo
    Id do corretor responsável da equipe.
    partnershipTermsPartnershipTerms
    Condições para parceiros.
    photoslista de string
    Até 30 endereços; a 1ª é a capa. Baixadas depois da resposta (veja photoSync). Ausente = a galeria fica como está; lista vazia = tirar as fotos.

    Exemplo de corpo

    {
      "title": "Apartamento 3 quartos no Bigorrilho",
      "type": "APARTAMENTO",
      "purposes": [
        "VENDA"
      ],
      "salePrice": 890000,
      "address": {
        "cityId": "4106902",
        "neighborhoodSlug": "bigorrilho",
        "street": "Rua Padre Anchieta",
        "number": "1500",
        "complement": "Ap 82"
      },
      "bedrooms": 3,
      "suites": 1,
      "bathrooms": 2,
      "parkingSpots": 2,
      "area": 98,
      "photos": [
        "https://www.suaimobiliaria.com.br/fotos/AP1234/1.jpg",
        "https://www.suaimobiliaria.com.br/fotos/AP1234/2.jpg"
      ]
    }

    Resposta200OK201 quando cria.

    dataPropertyobrigatório
    O objeto como ficou.
    resultPropertyWriteResultobrigatório
    O desfecho.

    Exemplo

    # Modo ensaio: nada é gravado. Tire o ?dryRun=true para gravar de verdade.
    curl -X PUT 'https://api.imobyflow.com.br/v1/properties/by-ref/AP1234?dryRun=true' \
      -H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
      -H 'Accept-Language: pt-BR' \
      -H "Idempotency-Key: $(uuidgen)" \
      -H 'Content-Type: application/json' \
      --data @- <<'JSON'
    {
      "title": "Apartamento 3 quartos no Bigorrilho",
      "type": "APARTAMENTO",
      "purposes": [
        "VENDA"
      ],
      "salePrice": 890000,
      "address": {
        "cityId": "4106902",
        "neighborhoodSlug": "bigorrilho",
        "street": "Rua Padre Anchieta",
        "number": "1500",
        "complement": "Ap 82"
      },
      "bedrooms": 3,
      "suites": 1,
      "bathrooms": 2,
      "parkingSpots": 2,
      "area": 98,
      "photos": [
        "https://www.suaimobiliaria.com.br/fotos/AP1234/1.jpg",
        "https://www.suaimobiliaria.com.br/fotos/AP1234/2.jpg"
      ]
    }
    JSON

    Erros desta rota

    E os erros comuns a toda rota

    POST/v1/properties

    Cadastrar um imóvel

    Cria um imóvel. O mínimo: type, purposes, o preço de cada finalidade e o endereço com a cidade. Código que já existe → 409 com o id.

    Permissão: properties:writeAceita modo ensaioAceita Idempotency-Key

    Filtros e paginação

    dryRunboolean
    true = modo ensaio: valida e diz o que aconteceria, sem gravar nada.

    Corpo do pedido

    externalRefstring
    O código do imóvel no seu sistema (só no POST; no PUT ele vai no caminho).
    titlestring
    Título. Marcação HTML é removida.
    descriptionstring
    Descrição. <br> e </p> viram quebra de linha; o resto da marcação sai.
    typestring
    Subtipo.um de APARTAMENTO CASA_RUA CASA_CONDOMINIO CASA_VILA STUDIO FLAT COBERTURA SALA_COMERCIAL LOJA_PONTO GALPAO PREDIO TERRENO_RUA TERRENO_CONDOMINIO CHACARA_SITIO FAZENDA
    purposeslista de string
    Finalidades.um de VENDA LOCACAO
    salePricenumberpode vir nulo
    Preço de venda, em reais. Obrigatório com VENDA.
    rentPricenumberpode vir nulo
    Aluguel, em reais. Obrigatório com LOCACAO.
    addressAddressInput
    Endereço.
    bedroomsintegerpode vir nulo
    Quartos.
    suitesintegerpode vir nulo
    Suítes.
    bathroomsintegerpode vir nulo
    Banheiros.
    parkingSpotsintegerpode vir nulo
    Vagas.
    areanumberpode vir nulo
    Área privativa total, em m².
    privateAreanumberpode vir nulo
    Área coberta, em m².
    listingUrlstringpode vir nulo
    Endereço do anúncio no seu site (http ou https).
    captadorNamestringpode vir nulo
    Nome do captador em texto.
    captadorAccountIdstringpode vir nulo
    Id do corretor responsável da equipe.
    partnershipTermsPartnershipTerms
    Condições para parceiros.
    photoslista de string
    Até 30 endereços; a 1ª é a capa. Baixadas depois da resposta (veja photoSync). Ausente = a galeria fica como está; lista vazia = tirar as fotos.

    Exemplo de corpo

    {
      "externalRef": "AP1234",
      "title": "Apartamento 3 quartos no Bigorrilho",
      "type": "APARTAMENTO",
      "purposes": [
        "VENDA"
      ],
      "salePrice": 890000,
      "address": {
        "cityId": "4106902",
        "neighborhoodSlug": "bigorrilho",
        "street": "Rua Padre Anchieta",
        "number": "1500",
        "complement": "Ap 82"
      },
      "bedrooms": 3,
      "suites": 1,
      "bathrooms": 2,
      "parkingSpots": 2,
      "area": 98,
      "photos": [
        "https://www.suaimobiliaria.com.br/fotos/AP1234/1.jpg",
        "https://www.suaimobiliaria.com.br/fotos/AP1234/2.jpg"
      ]
    }

    Resposta201Criado

    dataPropertyobrigatório
    O objeto como ficou.
    resultPropertyWriteResultobrigatório
    O desfecho.

    Exemplo

    # Modo ensaio: nada é gravado. Tire o ?dryRun=true para gravar de verdade.
    curl -X POST 'https://api.imobyflow.com.br/v1/properties?dryRun=true' \
      -H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
      -H 'Accept-Language: pt-BR' \
      -H "Idempotency-Key: $(uuidgen)" \
      -H 'Content-Type: application/json' \
      --data @- <<'JSON'
    {
      "externalRef": "AP1234",
      "title": "Apartamento 3 quartos no Bigorrilho",
      "type": "APARTAMENTO",
      "purposes": [
        "VENDA"
      ],
      "salePrice": 890000,
      "address": {
        "cityId": "4106902",
        "neighborhoodSlug": "bigorrilho",
        "street": "Rua Padre Anchieta",
        "number": "1500",
        "complement": "Ap 82"
      },
      "bedrooms": 3,
      "suites": 1,
      "bathrooms": 2,
      "parkingSpots": 2,
      "area": 98,
      "photos": [
        "https://www.suaimobiliaria.com.br/fotos/AP1234/1.jpg",
        "https://www.suaimobiliaria.com.br/fotos/AP1234/2.jpg"
      ]
    }
    JSON

    Erros desta rota

    E os erros comuns a toda rota

    PATCH/v1/properties/{propertyId}

    Alterar parte de um imóvel

    Muda só o que vier. Para limpar um campo, mande null.

    Permissão: properties:writeAceita modo ensaioAceita Idempotency-Key

    Parâmetros no caminho

    propertyIdstringobrigatório
    Id do imóvel (prop-…).

    Filtros e paginação

    dryRunboolean
    true = modo ensaio: valida e diz o que aconteceria, sem gravar nada.

    Corpo do pedido

    externalRefstring
    O código do imóvel no seu sistema (só no POST; no PUT ele vai no caminho).
    titlestring
    Título. Marcação HTML é removida.
    descriptionstring
    Descrição. <br> e </p> viram quebra de linha; o resto da marcação sai.
    typestring
    Subtipo.um de APARTAMENTO CASA_RUA CASA_CONDOMINIO CASA_VILA STUDIO FLAT COBERTURA SALA_COMERCIAL LOJA_PONTO GALPAO PREDIO TERRENO_RUA TERRENO_CONDOMINIO CHACARA_SITIO FAZENDA
    purposeslista de string
    Finalidades.um de VENDA LOCACAO
    salePricenumberpode vir nulo
    Preço de venda, em reais. Obrigatório com VENDA.
    rentPricenumberpode vir nulo
    Aluguel, em reais. Obrigatório com LOCACAO.
    addressAddressInput
    Endereço.
    bedroomsintegerpode vir nulo
    Quartos.
    suitesintegerpode vir nulo
    Suítes.
    bathroomsintegerpode vir nulo
    Banheiros.
    parkingSpotsintegerpode vir nulo
    Vagas.
    areanumberpode vir nulo
    Área privativa total, em m².
    privateAreanumberpode vir nulo
    Área coberta, em m².
    listingUrlstringpode vir nulo
    Endereço do anúncio no seu site (http ou https).
    captadorNamestringpode vir nulo
    Nome do captador em texto.
    captadorAccountIdstringpode vir nulo
    Id do corretor responsável da equipe.
    partnershipTermsPartnershipTerms
    Condições para parceiros.
    photoslista de string
    Até 30 endereços; a 1ª é a capa. Baixadas depois da resposta (veja photoSync). Ausente = a galeria fica como está; lista vazia = tirar as fotos.

    Exemplo de corpo

    {
      "salePrice": 870000
    }

    Resposta200OK

    dataPropertyobrigatório
    O objeto como ficou.
    resultPropertyWriteResultobrigatório
    O desfecho.

    Exemplo

    # Modo ensaio: nada é gravado. Tire o ?dryRun=true para gravar de verdade.
    curl -X PATCH 'https://api.imobyflow.com.br/v1/properties/prop-3f9a1c2b7d4e?dryRun=true' \
      -H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
      -H 'Accept-Language: pt-BR' \
      -H "Idempotency-Key: $(uuidgen)" \
      -H 'Content-Type: application/json' \
      --data @- <<'JSON'
    {
      "salePrice": 870000
    }
    JSON

    Erros desta rota

    E os erros comuns a toda rota

    POST/v1/properties/{propertyId}/status

    Mudar o status

    Disponível, arquivado, vendido ou alugado — a mesma função da tela: só disponível ocupa a cota do plano, e quem negocia o imóvel é avisado. Vendido não volta pelo feed.

    Permissão: properties:writeAceita modo ensaioAceita Idempotency-Key

    Parâmetros no caminho

    propertyIdstringobrigatório
    Id do imóvel (prop-…).

    Filtros e paginação

    dryRunboolean
    true = modo ensaio: valida e diz o que aconteceria, sem gravar nada.

    Corpo do pedido

    statusstringobrigatório
    O novo status.um de ACTIVE INACTIVE SOLD RENTED

    Exemplo de corpo

    {
      "status": "SOLD"
    }

    Resposta200OK

    dataPropertyobrigatório
    O objeto como ficou.
    resultPropertyWriteResultobrigatório
    O desfecho.

    Exemplo

    # Modo ensaio: nada é gravado. Tire o ?dryRun=true para gravar de verdade.
    curl -X POST 'https://api.imobyflow.com.br/v1/properties/prop-3f9a1c2b7d4e/status?dryRun=true' \
      -H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
      -H 'Accept-Language: pt-BR' \
      -H "Idempotency-Key: $(uuidgen)" \
      -H 'Content-Type: application/json' \
      --data @- <<'JSON'
    {
      "status": "SOLD"
    }
    JSON

    Erros desta rota

    E os erros comuns a toda rota

    POST/v1/properties/confirm

    Confirmar disponibilidade em lote

    A régua dos 60 dias tira do ar o imóvel que ninguém confirma. Mande até 200 ids e refs; confirmado há menos de 24 h não regrava (ALREADY_CONFIRMED).

    Permissão: properties:writeAceita modo ensaioAceita Idempotency-Key

    Filtros e paginação

    dryRunboolean
    true = modo ensaio: valida e diz o que aconteceria, sem gravar nada.

    Corpo do pedido

    idslista de string
    Ids dos imóveis.
    refslista de string
    Códigos do seu sistema.

    Exemplo de corpo

    {
      "refs": [
        "AP1234",
        "CA0042"
      ]
    }

    Resposta200OK

    datalista de ConfirmItemobrigatório
    O desfecho de cada imóvel.
    resultobjetoobrigatório
    O resumo.
    result.dryRunbooleanobrigatório
    Ensaio.
    result.summarymapaobrigatório
    Contagem por desfecho.

    Exemplo

    # Modo ensaio: nada é gravado. Tire o ?dryRun=true para gravar de verdade.
    curl -X POST 'https://api.imobyflow.com.br/v1/properties/confirm?dryRun=true' \
      -H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
      -H 'Accept-Language: pt-BR' \
      -H "Idempotency-Key: $(uuidgen)" \
      -H 'Content-Type: application/json' \
      --data @- <<'JSON'
    {
      "refs": [
        "AP1234",
        "CA0042"
      ]
    }
    JSON

    Erros desta rota

    E os erros comuns a toda rota

    DELETE/v1/properties/{propertyId}

    Mandar para a lixeira

    Lixeira de 30 dias (restaurável pela tela). Trava de encolhimento: no máximo 20% da carteira (e pelo menos 10) em 24 horas — um laço no seu sistema não esvazia a carteira. Com o feed do CRM ligado, quem tira imóvel do ar é o feed.

    Permissão: properties:writeAceita modo ensaioAceita Idempotency-Key

    Parâmetros no caminho

    propertyIdstringobrigatório
    Id do imóvel (prop-…).

    Filtros e paginação

    dryRunboolean
    true = modo ensaio: valida e diz o que aconteceria, sem gravar nada.

    Resposta200OK

    dataPropertyobrigatório
    O objeto como ficou.
    resultPropertyWriteResultobrigatório
    O desfecho.

    Exemplo

    # Modo ensaio: nada é gravado. Tire o ?dryRun=true para gravar de verdade.
    curl -X DELETE 'https://api.imobyflow.com.br/v1/properties/prop-3f9a1c2b7d4e?dryRun=true' \
      -H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
      -H 'Accept-Language: pt-BR' \
      -H "Idempotency-Key: $(uuidgen)"

    Erros desta rota

    E os erros comuns a toda rota

    Os objetos

    Address

    O endereço completo — o imóvel é da própria conta.

    neighborhoodstringobrigatóriopode vir nulo
    Nome do bairro.
    neighborhoodSlugstringobrigatóriopode vir nulo
    Bairro do catálogo. Nulo quando o bairro ainda não foi reconhecido — aí o imóvel fica fora das recomendações até a curadoria decidir.
    citystringobrigatóriopode vir nulo
    Nome da cidade.
    cityIdstringobrigatóriopode vir nulo
    Código do IBGE.
    citySlugstringobrigatóriopode vir nulo
    Identificador da cidade no catálogo.
    statestringobrigatóriopode vir nulo
    Estado (UF).
    streetstringobrigatóriopode vir nulo
    Rua.
    numberstringobrigatóriopode vir nulo
    Número.
    complementstringobrigatóriopode vir nulo
    Complemento.

    PartnershipTerms

    As condições para parceiros.

    commissionPercentnumberobrigatóriopode vir nulo
    Comissão de venda oferecida a parceiros, em %.
    rentCommissionMonthsnumberobrigatóriopode vir nulo
    Comissão de locação, em aluguéis.
    splitListingPercentnumberobrigatóriopode vir nulo
    Parte da comissão que fica com quem captou, em %.

    PropertyRadar

    A situação do imóvel nas recomendações (Radar).

    eligiblebooleanobrigatório
    Entra nas recomendações agora (ativo e sem pendência).
    pendinglista de stringobrigatório
    O que falta para entrar nas recomendações. A capa é obrigatória.um de CITY_MISSING CITY_NOT_IN_CATALOG NEIGHBORHOOD_MISSING NEIGHBORHOOD_NOT_IN_CATALOG TYPE_MISSING PURPOSE_MISSING SALE_PRICE_MISSING RENT_PRICE_MISSING COVER_PHOTO_MISSING OTHER
    labelslista de stringobrigatório
    As mesmas pendências, por extenso.

    Curation

    A análise do imóvel pela ImobyFlow antes de ele aparecer para parceiros. Imóvel novo pela API nasce em análise.

    statusstringobrigatóriopode vir nulo
    PENDING, APPROVED ou REJECTED.
    reasonstringobrigatóriopode vir nulo
    O motivo da recusa, em código.um de LANCAMENTO SEM_VALOR QUALIDADE_BAIXA NAO_ANGARIACAO MARCA_DAGUA FOTOS_INSUFICIENTES DADOS_INCOERENTES OUTRO
    labelstringobrigatóriopode vir nulo
    O motivo por extenso.

    Confirmation

    A régua dos 60 dias: imóvel não confirmado sai do ar. Gravar o imóvel pela API (ou confirmar) renova a data.

    lastConfirmedAtstringobrigatóriopode vir nulo
    Última confirmação de que segue disponível.
    dueAtstringobrigatóriopode vir nulo
    Quando a confirmação vence (a cada 60 dias).
    noticeAtstringobrigatóriopode vir nulo
    Quando o aviso de confirmação foi mandado.
    offlineAtstringobrigatóriopode vir nulo
    Quando sai do ar sem resposta (7 dias depois do aviso).

    LaunchBlock

    Dados de lançamento (empreendimento e tipologia).

    constructionStagestringobrigatóriopode vir nulo
    Estágio da obra.um de LAUNCH OFF_PLAN NEW READY
    deliveryDatestringobrigatóriopode vir nulo
    Previsão de entrega.
    constructionProgressintegerobrigatóriopode vir nulo
    Andamento da obra, em %.
    unitsTotalintegerobrigatóriopode vir nulo
    Unidades no total.
    unitsAvailableintegerobrigatóriopode vir nulo
    Unidades disponíveis.
    unitsReservedintegerobrigatóriopode vir nulo
    Unidades reservadas.
    unitsSoldintegerobrigatóriopode vir nulo
    Unidades vendidas.
    floorPlanslista de stringobrigatório
    As plantas.

    PhotoSync

    O download das fotos mandadas por endereço. Ele acontece depois da resposta — é aqui que você vê se a galeria entrou.

    statestringobrigatório
    QUEUED (na fila), DONE, PARTIAL (algumas falharam), FAILED ou NOT_QUEUED (a fila recusou — o próximo pedido tenta de novo).
    requestedintegerobrigatóriopode vir nulo
    Fotos pedidas.
    ingestedintegerobrigatóriopode vir nulo
    Fotos baixadas e gravadas.
    failedintegerobrigatóriopode vir nulo
    Fotos que falharam.
    queuedAtstringobrigatóriopode vir nulo
    Quando entrou na fila.
    finishedAtstringobrigatóriopode vir nulo
    Quando terminou.

    Property

    Um imóvel da carteira da conta.

    idstringobrigatório
    Id do imóvel.
    externalRefstringobrigatóriopode vir nulo
    O código do imóvel no SEU sistema.
    kindstringobrigatório
    PROPERTY (avulso), DEVELOPMENT (empreendimento) ou TYPOLOGY (tipologia de um empreendimento).um de PROPERTY DEVELOPMENT TYPOLOGY
    developmentIdstringobrigatóriopode vir nulo
    O empreendimento desta tipologia.
    statusstringobrigatório
    Situação. DELETED = na lixeira (30 dias).um de ACTIVE INACTIVE SOLD RENTED DELETED
    typestringobrigatóriopode vir nulo
    Subtipo (veja as listas de valores).um de APARTAMENTO CASA_RUA CASA_CONDOMINIO CASA_VILA STUDIO FLAT COBERTURA SALA_COMERCIAL LOJA_PONTO GALPAO PREDIO TERRENO_RUA TERRENO_CONDOMINIO CHACARA_SITIO FAZENDA
    categorystringobrigatóriopode vir nulo
    Categoria do subtipo.um de RESIDENCIAL COMERCIAL TERRENO RURAL
    purposeslista de stringobrigatório
    Finalidades: VENDA, LOCACAO ou as duas.um de VENDA LOCACAO
    salePricenumberobrigatóriopode vir nulo
    Preço de venda, em reais.
    rentPricenumberobrigatóriopode vir nulo
    Aluguel mensal, em reais.
    titlestringobrigatóriopode vir nulo
    Título do anúncio.
    descriptionstringobrigatóriopode vir nulo
    Descrição, em texto corrido.
    addressAddressobrigatório
    Endereço.
    bedroomsintegerobrigatóriopode vir nulo
    Quartos.
    suitesintegerobrigatóriopode vir nulo
    Suítes.
    bathroomsintegerobrigatóriopode vir nulo
    Banheiros.
    parkingSpotsintegerobrigatóriopode vir nulo
    Vagas de garagem.
    areanumberobrigatóriopode vir nulo
    Área privativa total, em m² — a que se compara entre imóveis.
    privateAreanumberobrigatóriopode vir nulo
    Área coberta, em m² (só exibição).
    amenitieslista de stringobrigatório
    Itens do imóvel e do condomínio.
    coverPhotostringobrigatóriopode vir nulo
    A capa (a 1ª foto). Sem capa o imóvel não entra nas recomendações.
    photoslista de stringobrigatório
    A galeria, na ordem.
    listingUrlstringobrigatóriopode vir nulo
    Endereço do anúncio no seu site.
    captadorobjetoobrigatóriopode vir nulo
    O corretor responsável da equipe.
    captador.accountIdstringobrigatório
    Id do corretor.
    captador.namestringobrigatóriopode vir nulo
    Nome.
    captadorNamestringobrigatóriopode vir nulo
    Nome do captador em texto (quem não está na equipe).
    sharedToNetworkbooleanobrigatório
    Compartilhado com parceiros.
    partnershipTermsPartnershipTermsobrigatório
    Condições para parceiros.
    radarPropertyRadarobrigatório
    Situação nas recomendações.
    curationCurationobrigatório
    Análise da ImobyFlow.
    confirmationConfirmationobrigatório
    A confirmação de disponibilidade.
    inactiveReasonstringobrigatóriopode vir nulo
    Por que está arquivado (só com status = INACTIVE).
    deletedAtstringobrigatóriopode vir nulo
    Quando foi para a lixeira.
    launchLaunchBlockobrigatóriopode vir nulo
    Dados de lançamento (só empreendimento e tipologia).
    photoSyncPhotoSyncobrigatóriopode vir nulo
    O download das fotos mandadas por endereço.
    createdAtstringobrigatório
    Quando foi criado (UTC).
    updatedAtstringobrigatório
    Última alteração (UTC).

    AddressInput

    O endereço. Vem inteiro quando vem.

    cityIdstring
    Código do IBGE (7 dígitos). Com ele, city e state são dispensáveis.
    citystring
    Nome da cidade (com state). Nome desconhecido volta 400 com sugestões.
    statestring
    UF, 2 letras.
    neighborhoodSlugstring
    Bairro pelo identificador do catálogo — o caminho garantido.
    neighborhoodstring
    Bairro em texto. Ele passa pelo dicionário de apelidos; o que não for reconhecido fica pendente para a curadoria, nunca vira um bairro inventado.
    streetstring
    Rua.
    numberstring
    Número.
    complementstring
    Complemento.

    PropertyInput

    Os campos que a API aceita no imóvel. Campo desconhecido é erro (400). Campo ausente não apaga; para limpar, mande null.

    externalRefstring
    O código do imóvel no seu sistema (só no POST; no PUT ele vai no caminho).
    titlestring
    Título. Marcação HTML é removida.
    descriptionstring
    Descrição. <br> e </p> viram quebra de linha; o resto da marcação sai.
    typestring
    Subtipo.um de APARTAMENTO CASA_RUA CASA_CONDOMINIO CASA_VILA STUDIO FLAT COBERTURA SALA_COMERCIAL LOJA_PONTO GALPAO PREDIO TERRENO_RUA TERRENO_CONDOMINIO CHACARA_SITIO FAZENDA
    purposeslista de string
    Finalidades.um de VENDA LOCACAO
    salePricenumberpode vir nulo
    Preço de venda, em reais. Obrigatório com VENDA.
    rentPricenumberpode vir nulo
    Aluguel, em reais. Obrigatório com LOCACAO.
    addressAddressInput
    Endereço.
    bedroomsintegerpode vir nulo
    Quartos.
    suitesintegerpode vir nulo
    Suítes.
    bathroomsintegerpode vir nulo
    Banheiros.
    parkingSpotsintegerpode vir nulo
    Vagas.
    areanumberpode vir nulo
    Área privativa total, em m².
    privateAreanumberpode vir nulo
    Área coberta, em m².
    listingUrlstringpode vir nulo
    Endereço do anúncio no seu site (http ou https).
    captadorNamestringpode vir nulo
    Nome do captador em texto.
    captadorAccountIdstringpode vir nulo
    Id do corretor responsável da equipe.
    partnershipTermsPartnershipTerms
    Condições para parceiros.
    photoslista de string
    Até 30 endereços; a 1ª é a capa. Baixadas depois da resposta (veja photoSync). Ausente = a galeria fica como está; lista vazia = tirar as fotos.

    PropertyWriteResult

    O desfecho da escrita.

    outcomestringobrigatório
    O que aconteceu: CREATED, UPDATED, UNCHANGED (nada mudou, nada gravado), CONFIRMED (só a data de disponibilidade), STATUS_SET, DELETED, ALREADY_DELETED…
    dryRunbooleanobrigatório
    Foi um ensaio — nada foi gravado.
    conflictslista de stringobrigatório
    Campos que a equipe editou na tela e que por isso não foram sobrescritos — a edição na tela vence.
    photosstringobrigatóriopode vir nulo
    A galeria: UNCHANGED, QUEUED, ALREADY_QUEUED ou CLEARED. Nulo quando o pedido não falou de fotos.

    FeedSync

    A sincronização do feed do CRM. Nunca traz o link nem o token.

    configuredbooleanobrigatório
    O link do feed do CRM está cadastrado na conta.
    connectorstringobrigatóriopode vir nulo
    O CRM do link (o formato do feed).
    autoSyncbooleanobrigatório
    A sincronização de 6 em 6 horas está ligada.
    statusstringobrigatóriopode vir nulo
    Como terminou a última sincronização (a mesma situação da tela) — QUEUED enquanto ela anda.
    messagestringobrigatóriopode vir nulo
    A frase da última sincronização, a mesma da tela.
    lastSyncAtstringobrigatóriopode vir nulo
    Quando a última terminou.
    feedCountintegerobrigatóriopode vir nulo
    Imóveis no feed na última leitura.
    countsobjetoobrigatório
    O que a última sincronização fez.
    counts.createdintegerobrigatóriopode vir nulo
    Criados.
    counts.updatedintegerobrigatóriopode vir nulo
    Atualizados.
    counts.archivedintegerobrigatóriopode vir nulo
    Arquivados (saíram do feed e passaram da carência).
    counts.skippedintegerobrigatóriopode vir nulo
    Pulados (incompletos ou fora da cota).
    counts.unchangedintegerobrigatóriopode vir nulo
    Conferidos sem mudança (nada gravado).
    counts.confirmedintegerobrigatóriopode vir nulo
    Confirmados (só a data de disponibilidade renovada).
    conflictsintegerobrigatório
    Imóveis com campo editado na tela que o feed quis mudar — esperam a decisão em Imóveis › Importar.
    scheduledForstringobrigatóriopode vir nulo
    A sincronização agendada por POST /v1/feed/sync para o fim da janela (nulo = nenhuma).

    FeedSyncResult

    O desfecho.

    outcomestringobrigatório
    QUEUED (sincroniza já) · SCHEDULED (agendada para o fim da janela de 10 minutos) · ALREADY_SCHEDULED (já havia uma agendada — nada novo).um de QUEUED SCHEDULED ALREADY_SCHEDULED
    dryRunbooleanobrigatório
    Foi ensaio (nada enfileirado).

    ConfirmItem

    O desfecho de um imóvel na confirmação.

    idstring
    O id pedido (quando o pedido veio por ids).
    refstring
    O código pedido (quando o pedido veio por refs).
    propertyIdstringobrigatóriopode vir nulo
    O imóvel achado (nulo quando não achou).
    outcomestringobrigatório
    CONFIRMED, ALREADY_CONFIRMED (há menos de 24 h — não regrava) ou NOT_FOUND.um de CONFIRMED ALREADY_CONFIRMED NOT_FOUND