ImobyFlow API
Connect your CRM, website or AI assistant to your ImobyFlow account: portfolio, clients, Radar recommendations and partnerships.
Not in IT? Portals, ads, your website and your CRM link connect without code — see the integrations.
1. Request access
The account owner requests it under My account › API integration. ImobyFlow grants access account by account.
2. Create a key
In the same place, with the permissions the integration needs. The key is shown only once — keep it.
3. Make the first call
GET /v1/me confirms the key works and shows the permissions and quota.
Your first call
Put the key in an environment variable (IMOBYFLOW_API_KEY) and call:
curl -X GET 'https://api.imobyflow.com.br/v1/me' \
-H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
-H 'Accept-Language: en'Or right here: every route in the reference has a Try it button that calls the API with your key and explains every field of the response. Writes there always go as a dry run — nothing is written.
The basics
- Base URL:
https://api.imobyflow.com.br/v1. HTTPS and JSON (UTF-8) only. - The key goes in the
Authorization: Bearer imob_live_…header — never in the URL and never in your end user’s browser. The key belongs to the company, not a person: the integration survives when someone leaves the team. - Dates are ISO 8601, in UTC. Amounts are in BRL.
- Code values (
VENDA,ACTIVE,APARTAMENTO) are the platform’s own, untranslated.Accept-Language: entranslates labels and error messages. - Every write accepts
?dryRun=true: it validates and says what would happen, without writing. The examples in this portal already use it.
Who can use it
The full API is granted by ImobyFlow, account by account, to agencies from 2,000 properties up and to developers, with an active subscription (the trial counts). Each grant says which permissions the account can give its keys.
What the API does not do
- It does not search partners' listings. Radar already delivers the right partner, in the right context — the opportunity.
- It does not touch plan, billing, card, e-mail or password. Those are owner actions, in the dashboard.
- It does not approve its own properties: ImobyFlow's review stays the same for integrations.
Tools
Everything comes from the same contract as this documentation and is updated with every release.
Postman
All 58 routes, with success and error response examples. Put your key in the environment’s apiKey variable.
Official SDKs
One file per language, generated from the same contract on every release: one method per route, pages walked for you, retries that never duplicate a write, and errors carrying the API code. No dependencies: TypeScript for Node 18+, Python 3.9+ with the standard library only, and PHP 8 with curl.
// curl -o imobyflow.ts https://imobyflow.com.br/desenvolvedores/sdk/typescript
import { ImobyFlow, ImobyFlowError } from './imobyflow';
const api = new ImobyFlow(process.env.IMOBYFLOW_API_KEY!);
const { data: conta } = await api.getMe();
// Todas as páginas, sem lidar com o cursor:
for await (const imovel of api.listPropertiesAll({ status: 'ACTIVE' })) {
console.log(imovel.id, imovel.externalRef);
}
// Escrita em modo ensaio: nada é gravado. Tire o dryRun para gravar.
try {
await api.putPropertyByRef('AP1234', { title: 'Apartamento 3 quartos' }, { dryRun: true });
} catch (e) {
if (e instanceof ImobyFlowError) console.error(e.code, e.requestId, e.invalidParams);
}Download into your project. Fixed addresses — sdk/typescript, sdk/python and sdk/php — so your build can fetch the new version.
For AI assistants
MCP server: the agent operates the account
Claude, ChatGPT, Copilot and Cursor read and update the portfolio, clients, Radar and partnerships at https://api.imobyflow.com.br/mcp, with the same API key and the same permissions. Every write runs as a dry run first and is only saved once the person confirms. Deleting, accepting Captação offers and managing webhooks are left out.
claude mcp add --transport http imobyflow https://api.imobyflow.com.br/mcp \
--header "Authorization: Bearer $IMOBYFLOW_API_KEY"The 41 tools
get_mereads · Quem sou eulist_propertiesreads · Listar a carteiraget_propertyreads · Um imóvelget_property_by_refreads · Um imóvel pelo seu códigolist_property_matchesreads · Oportunidades de um imóvellist_leadsreads · Listar clientesget_leadreads · Um clienteget_lead_by_refreads · Um cliente pelo seu códigolist_lead_matchesreads · Oportunidades de um clientelist_matchesreads · Oportunidades da contalist_partnershipsreads · Parcerias da equipeget_partnershipreads · Uma parcerialist_teamreads · A equipelist_launchesreads · Lançamentos da cidadelist_captacao_offersreads · Proprietários na vez da contaget_captacao_offerreads · Um proprietáriolist_captacao_ownersreads · Proprietários aceitoslist_eventsreads · O que mudoulist_citiesreads · Cidadeslist_neighborhoodsreads · Bairros de uma cidadeget_property_typesreads · Tipos de imóvelget_purposesreads · Finalidadesget_property_statusesreads · Status do imóvelget_lead_statusesreads · Etapas do clienteget_partnership_statusesreads · Etapas da parceriaget_construction_stagesreads · Estágios da obraget_feedreads · Estado da sincronização do feedput_property_by_refwrites, with a dry run · Criar ou atualizar pelo seu códigocreate_propertywrites, with a dry run · Cadastrar um imóvelpatch_propertywrites, with a dry run · Alterar parte de um imóvelset_property_statuswrites, with a dry run · Mudar o statusconfirm_propertieswrites, with a dry run · Confirmar disponibilidade em loteput_lead_by_refwrites, with a dry run · Criar, atualizar ou vincular pelo seu códigocreate_leadwrites, with a dry run · Cadastrar um clientepatch_leadwrites, with a dry run · Alterar parte de um clienteset_lead_statewrites, with a dry run · Arquivar ou reativaradd_lead_interactionwrites, with a dry run · Registrar um atendimentodismiss_matchwrites, with a dry run · Descartar oportunidaderestore_matchwrites, with a dry run · Restaurar oportunidadeset_partnership_statuswrites, with a dry run · Mover a etapa da parceriasync_feedwrites, with a dry run · Sincronizar o feed agora