/unstable/agentes/todos
Method: GET
Essa rota retorna a lista paginada de agentes vinculados à imobiliária autenticada. Pode ser utilizada para alimentar a página de “Equipe” ou “Corretores” do site da imobiliária.
O usuário autenticado precisa ter um plano ativo. Os agentes são ordenados pelo VGV do portfólio (decrescente).
Ela aceita as seguintes Query Strings:
search: string
currentPage: number
perPage: number
state?: UF
city?: string
areas?: string[]O parâmetro search é obrigatório e faz uma busca de texto nos campos: nome,
e-mail (o mesmo devolvido em email: o profissional do corretor), telefone, e
nas áreas de atuação (estado, cidade e bairro). Use string vazia para não
filtrar.
Os parâmetros currentPage e perPage são obrigatórios e definem a paginação.
O parâmetro state é opcional e filtra os agentes que possuem ao menos uma área de atuação no estado selecionado.
O parâmetro city é opcional e filtra os agentes que possuem ao menos uma área de atuação na cidade selecionada.
O parâmetro areas é opcional e aceita uma lista de bairros separados por vírgula. Filtra os agentes que possuem ao menos uma área de atuação em algum dos bairros selecionados.
Retorna um objeto com a lista de AgentsPageAgent e o total de resultados.
export async function getAllAgents({
search,
currentPage,
perPage,
state,
city,
areas,
}: {
search: string;
currentPage: number;
perPage: number;
state?: UF;
city?: string;
areas?: string[];
}) {
const headers = new Headers();
headers.append("Authorization", `Bearer ${env.NONSTOP_TOKEN}`);
const response = await fetch(
`${BASE_URL}/${VERSION}/agentes/todos?search=${search}¤tPage=${currentPage}
&perPage=${perPage}&state=${state}&city=${city}&areas=${areas?.join(",")}`,
{ headers, ...CONFIG },
);
if (response.ok)
return (await response.json()) as {
agents: AgentsPageAgent[];
total: number;
};
return { agents: [], total: 0 };
}/unstable/agentes/[slug]
Method: GET
Essa rota retorna o perfil completo de um agente da imobiliária autenticada, identificado pelo slug. Pode ser utilizada para alimentar a página de perfil do corretor no site.
O agente precisa estar vinculado à imobiliária autenticada e o usuário autenticado precisa ter um plano ativo.
Retorna um objeto com o UserProfile no campo agent.
export async function getAgent(slug: string) {
const headers = new Headers();
headers.append("Authorization", `Bearer ${env.NONSTOP_TOKEN}`);
const response = await fetch(
`${BASE_URL}/${VERSION}/agentes/${slug}`,
{ headers, ...CONFIG },
);
if (response.ok) {
const { agent } = (await response.json()) as { agent: UserProfile };
return agent;
}
return null;
}/unstable/agentes/portfolio/[slug]
Method: GET
Essa rota retorna a lista paginada de imóveis do portfólio de um agente da imobiliária autenticada, identificado pelo slug. Permite separar entre imóveis ativos (selecionados no painel de integrações do site) e imóveis vendidos pelo agente.
O slug precisa ser o de um agente vinculado à imobiliária autenticada (a mesma
regra do /agentes/[slug]) ou o da própria imobiliária, que traz o portfólio
de todos os agentes dela. Qualquer outro slug, inclusive inexistente, responde
404 com { "error": "agent not found" }. O usuário autenticado precisa ter um
plano ativo.
Ela aceita as seguintes Query Strings:
currPage: number
perPage: number
sold: booleanOs parâmetros currPage e perPage são obrigatórios e definem a paginação.
O parâmetro sold é obrigatório. Quando false retorna os imóveis ativos do agente que estão no site da imobiliária: exclusivos, disponíveis para venda ou locação (sem negociação em andamento), com ao menos uma foto e sem preço ou endereço ocultos (ordenados pela data de criação, decrescente). Quando true retorna os imóveis vendidos creditados ao agente (ordenados pelo valor de venda, decrescente): os negócios fechados em que ele aparece como corretor, imobiliária, gestor compartilhado ou parceiro, e aqueles em que ele está entre os participantes da comissão, identificado pelo CPF (agente) ou CNPJ (pessoa jurídica) cadastrado na conta. O documento não é obrigatório: sem ele, a lista traz só os negócios do primeiro grupo.
Nem sempre foi assim. Até 18/10/2026 a rota ignorava o slug: qualquer valor,
mesmo inexistente, devolvia o portfólio da imobiliária autenticada inteira, e a
conta autenticada sem CPF ou CNPJ cadastrado recebia 400 com
user has no document. Se a sua integração montava a visão por agente com esta
rota, os números mudaram: agora cada slug traz só o portfólio daquele agente.
Retorna um objeto com a lista de CardProperty e o total de resultados.
export async function getAgentPortfolio({
slug,
currPage,
perPage,
sold,
}: {
slug: string;
currPage: number;
perPage: number;
sold: boolean;
}) {
const headers = new Headers();
headers.append("Authorization", `Bearer ${env.NONSTOP_TOKEN}`);
const response = await fetch(
`${BASE_URL}/${VERSION}/agentes/portfolio/${slug}?currPage=${currPage}
&perPage=${perPage}&sold=${sold}`,
{ headers, ...CONFIG },
);
if (response.ok)
return (await response.json()) as {
properties: CardProperty[];
total: number;
};
return { properties: [], total: 0 };
}