Raio X do negócio
const url = 'https://developers.nexo.winningsales.com.br/v1/deals/example';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://developers.nexo.winningsales.com.br/v1/deals/example \ --header 'Authorization: Bearer <token>'Tudo sobre um negócio num pedido só: fatos do CRM, etapa lida nas conversas, temperatura com a conta e o diagnóstico, destaques, empresa, pessoas, reuniões com resumo, objeções, compromissos, próximo passo, processo de decisão, concorrentes, linha do tempo e sugestões de campo em revisão. Leituras vêm rotuladas. O vendedor só enxerga os próprios negócios; admin e líder de vendas enxergam os da empresa, como no app.
Authorizations
Seção intitulada “Authorizations”Parameters
Seção intitulada “Parameters”Path Parameters
Seção intitulada “Path Parameters”Id do negócio no Nexo
Responses
Seção intitulada “Responses”O raio X do negócio
object
The seller forecast of the deal
object
True when the deal is at or past the stage from which its funnel asks for the declaration
Not_asked before that stage; pending when the category or a future date is missing
Category in force: the Nexo declaration, else the CRM forecast category
Close date in force: the declared date, else the CRM close date
Nexo when declared in Nexo; crm when only the CRM has a category
Latest declaration made in Nexo
object
Category declared in Nexo
Close date declared in Nexo
The seller “why”, when given
When it was declared
Who declared
Name of who declared
Pending = going to the CRM; written = in the CRM too; nexo_only = the CRM cannot take it (no forecast category or no write access), kept only in Nexo; failed = the CRM refused it (see crmDetail); superseded = a newer declaration replaced it before it went up
Why it did not reach the CRM, when it did not
When the CRM accepted it
Present while the declaration is due
object
What is missing: the category, the date, or the declared date already passed
Day the deal reached the stage that asks for the declaration
Day the declaration became due (or was asked again, when the date passed)
Days without a valid declaration
Step of the escalation ladder reached: task (Meu dia), email (daily e-mail), late (manager list and 1:1)
Days left before it becomes late for the manager (0 when already late)
Set while the seller asked to be reminded tomorrow (“Lembrar amanhã”): the start of the next day in the company time zone. Until then the pop-up and the Meu dia task stay hidden; the days, the escalation step and the late list do not change
True when “Lembrar amanhã” can be used now: not snoozed today yet and not late for the manager
Category weights in force for the company (Calibração)
object
Weight of commit, in percent
Weight of upside, in percent
Weight of pipeline, in percent
Declarations made in Nexo, newest first (last 10)
object
Category declared in Nexo
Close date declared in Nexo
The seller “why”, when given
When it was declared
Who declared
Name of who declared
Pending = going to the CRM; written = in the CRM too; nexo_only = the CRM cannot take it (no forecast category or no write access), kept only in Nexo; failed = the CRM refused it (see crmDetail); superseded = a newer declaration replaced it before it went up
Why it did not reach the CRM, when it did not
When the CRM accepted it
Nexo reading of a commit against the conversations (same rule as the Forecast tab); null when the category is not commit. Never changes the category
object
Link do negócio no HubSpot, quando a conexão é HubSpot
object
queue or system when an admin confirmed the owner is not a person: show “sem dono (fila:
object
Etapa mais avançada que as conversas sustentam
Aviso do raio X quando o CRM e as conversas não batem
object
Canal da conversa: reunião gravada, sessão de WhatsApp, ou nota, ligação, e-mail e WhatsApp (crm_whatsapp) do CRM
Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM
Quando a conversa aconteceu
Trechos da conversa que sustentam o item (e1, e2…)
object
Days since the last real activity (CRM activity, last meeting held, entry in the stage), same as activity.days; null for a closed deal
True when nothing is scheduled (CRM next activity or future meeting) and the last real activity is older than the deadline of the stage: the same rule as noNextActivity in the risks and stalled in the portfolio
Why the deal is stalled, citing the source, e.g. “último contato no CRM há 12 dias, nada agendado, prazo da etapa 7 dias”; null when not stalled
Last and next activity with the deadline of the stage, as in risks.deals[].activity; null for a closed deal
object
Latest real activity: crm = last contact or activity recorded in the CRM; meeting = last meeting linked to the deal; stage_change = entry in the current stage; created = nothing recorded since the deal was created
Day of that activity, YYYY-MM-DD, company time zone
Days since that activity
Deadline of the stage in days, between 3 and 30
Stage = median days deals stay in this stage; pipeline = median cycle to win of the pipeline × 1.5; ceiling = no measured cycle, 30 days
Deals the deadline was measured on; 0 for ceiling
Next scheduled activity (CRM field or future meeting), YYYY-MM-DD; null when nothing is scheduled
Where the next activity comes from
Quantas vezes a data de fechamento mudou
Estimated close date, YYYY-MM-DD, only for an open deal without close date in the CRM: entry in the current stage plus the median days from that stage to won, else creation plus the median cycle of the pipeline; never written to the CRM
True when estimatedCloseDate is set: show it labeled as estimated
Leitura do Nexo: temperatura de 0 a 100 somada de contribuições nomeadas, por regra
object
Versão da tabela de pesos
Frio até 33, quente a partir de 67
A conta da temperatura, item por item
object
Regra que contribuiu (prolonged_silence, absent_decision_maker, buying_signals…)
Pontos somados à temperatura; negativos esfriam
O porquê, em português, pronto para a tela
Diagnóstico que esta contribuição representa, quando é um
object
Canal da conversa: reunião gravada, sessão de WhatsApp, ou nota, ligação, e-mail e WhatsApp (crm_whatsapp) do CRM
Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM
Quando a conversa aconteceu
Trechos da conversa que sustentam o item (e1, e2…)
O diagnóstico de maior impacto: decisor ausente, silêncio prolongado, data escorregando, compromisso não cumprido ou concorrente sem resposta
object
object
Canal da conversa: reunião gravada, sessão de WhatsApp, ou nota, ligação, e-mail e WhatsApp (crm_whatsapp) do CRM
Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM
Quando a conversa aconteceu
Trechos da conversa que sustentam o item (e1, e2…)
object
Última fala do comprador numa reunião ou mensagem dele no WhatsApp
Mensagens do vendedor no WhatsApp depois da última atividade do comprador
20% do ciclo mediano da lente, no mínimo 7 dias; 10 sem lente
As três contribuições de maior peso, para os selos do cabeçalho
object
Leitura da negociação: parágrafo escrito por modelo a partir do estado, reescrito só quando o estado muda; nula sem conversa lida
Quando a leitura da negociação foi escrita ou conferida
object
Site of the company as a CRM fact, from the standard field or from any property that holds one
object
CRM property that holds the site; null when it is the standard field
Label of that property as the CRM shows it
Instagram of the company as a CRM fact, read from any property, even without research
object
CRM property that holds the handle
Label of that property as the CRM shows it
Research of the customer company in background: a reading with source and date
object
Id of this version of the research
CRM account (company of the customer) the research is about
Version of the research of this account; a new one starts at each new domain, refresh or request
Queued/reading = in progress; done = read, result filled; no_domain = no site in any CRM field, no company e-mail and no Instagram to start from; not_found = the pages could not be read or are not this company; failed = the model failed
Why this version exists: first open deal, a new domain, the 90-day refresh or a request from the raio X
Always a reading: inferred from public pages, never a CRM fact
Domain that was read; null without domain
Where the starting point came from: the account domain or website in the CRM, any CRM property that holds a site, the e-mails of its contacts, the public Instagram profile, or a search by name and city
Name of the CRM property that held the site or the Instagram handle; null when it came from a standard field
Instagram handle found in the CRM, without the @; a CRM fact, kept even when the research read the site
Pages read that back the result
Every page the reader tried
object
Page address
Page title
Read, failed or unsafe
Why the page was not read (timeout, ENOTFOUND, http 403, dns: EAI_AGAIN); empty when it was read
What was read; null until done
object
What the company does; empty when no page says
What it sells; empty when no page says
Declared size, with the source
object
Headcount the site declares; null when not declared
Passage that declares it
Page that declares it
Sector the site places the company in; empty when not stated
Where it is or operates; empty when not stated
Job titles or departments mentioned in the pages; never people
Recent signals, each with its page
object
Recent fact stated in a page (open job, new product, expansion, news)
Page that states it
Date the page gives, YYYY-MM-DD or YYYY-MM; null when none
Model that read the pages
Version of the research prompt
Cost of the model call in micros of BRL
When the research finished; null while in progress
When this version was requested
De onde veio cada traço preenchido: traço sem valor não aparece aqui
object
Traço da empresa a que esta origem se refere
account: veio da conta no CRM; deal: veio de um campo do negócio, e a tela rotula “do negócio”
Nome interno do campo do negócio que completou o traço
Rótulo do campo do negócio que completou o traço (“[AQ] Segmento”)
Campos preenchidos do negócio como fatos do CRM: só os personalizados que não viraram conceito mapeado nem apareceram em outro bloco, agrupados pelo grupo do CRM e com o valor formatado pelo tipo
object
Campos que o admin confirmou como em uso nas análises, em Campos do CRM
object
Grupo do campo no CRM; “Outros campos” quando o CRM não dá um
object
Nome interno do campo no CRM
Rótulo do campo, como o time vê no CRM
Valor formatado pelo tipo do campo (data em dd/mm/aaaa, opção pelo rótulo, texto encurtado)
O que o campo quer dizer, quando alguém já revisou o campo em Campos do CRM
Os demais campos preenchidos, para a tela mostrar recolhidos
object
Grupo do campo no CRM; “Outros campos” quando o CRM não dá um
object
Nome interno do campo no CRM
Rótulo do campo, como o time vê no CRM
Valor formatado pelo tipo do campo (data em dd/mm/aaaa, opção pelo rótulo, texto encurtado)
O que o campo quer dizer, quando alguém já revisou o campo em Campos do CRM
Quantos campos preenchidos ficaram de fora por terem sido classificados como “não usar” (ids, datas técnicas, links)
Classe do negócio contra o perfil de cliente da empresa; null quando não há critério declarado nem sugerido para o funil
object
Dentro, parcial, fora ou sem dado suficiente para a tag de ICP do cabeçalho
Declared: critérios fixados pelo admin; suggested: lidos do histórico pelo Nexo
object
Nome do critério, como “Faturamento mensal médio”
Se o negócio bate o critério; null quando o campo está em branco
Rótulos dos campos em branco que impedem saber se o negócio bate algum critério
Leitura com valor inferido pelo site; null quando não há nenhum valor inferido para o negócio
object
Classe do negócio quando o valor inferido pela pesquisa entra no lugar do campo vazio
object
Nome do critério, como “Faturamento mensal médio”
Se o negócio bate o critério; null quando ainda sem dado
Crm: valor do CRM; inferred: valor inferido pela pesquisa; missing: sem valor
Faixa inferida, como “Acima de 150 mil por mês”; null quando não veio de inferência
Confiança de 0 a 1 do valor inferido; null quando veio do CRM ou falta
Endereço da página que serviu de base
Como a tela nomeia a fonte, por exemplo “pesquisa de aguiacalcados.com.br”
Quando a pesquisa que serviu de base rodou
Campos que o time costuma preencher na etapa atual e este negócio deixou em branco, do mais preenchido para o menos. Campo esperado é o que o time preenche em pelo menos 60% dos negócios ganhos que passaram pela etapa, com base mínima de 20 ganhos; campos técnicos e “não usar” ficam fora. É conta sobre fatos do CRM, com a base junto
object
Nome interno do campo no CRM
Rótulo do campo, como o time vê no CRM
Fração de 0 a 1 dos negócios que passaram por esta etapa nos últimos 12 meses com o campo preenchido
Quantos negócios passaram pela etapa nos últimos 12 meses: a base da conta
object
Telefone do contato no CRM em E.164 só com dígitos (5511987654321), pronto para wa.me; null sem telefone ou quando não dá para normalizar com segurança
Conversas lidas em que falou e reuniões do CRM em que estava
Citada nas conversas ou contato do negócio, sem ter falado numa conversa lida nem estado numa reunião do CRM
Reuniões lidas, da mais recente para a mais antiga
object
Id da conversa: os trechos ficam em GET /conversations/:channel/:id/excerpts
object
object
object
Canal da conversa: reunião gravada, sessão de WhatsApp, ou nota, ligação, e-mail e WhatsApp (crm_whatsapp) do CRM
Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM
Quando a conversa aconteceu
Trechos da conversa que sustentam o item (e1, e2…)
object
Chave estável do combinado lido (conversa + texto), usada para confirmar, corrigir ou descartar
Overdue: data vencida sem entrega mencionada em conversa posterior; superseded: um combinado posterior do mesmo lado sobre o mesmo assunto tomou o lugar; discarded: o vendedor disse que não era um combinado
object
Canal da conversa: reunião gravada, sessão de WhatsApp, ou nota, ligação, e-mail e WhatsApp (crm_whatsapp) do CRM
Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM
Quando a conversa aconteceu
Trechos da conversa que sustentam o item (e1, e2…)
object
Canal da conversa: reunião gravada, sessão de WhatsApp, ou nota, ligação, e-mail e WhatsApp (crm_whatsapp) do CRM
Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM
Quando a conversa aconteceu
Trechos da conversa que sustentam o item (e1, e2…)
A conversa do combinado que tomou o lugar deste
object
Canal da conversa: reunião gravada, sessão de WhatsApp, ou nota, ligação, e-mail e WhatsApp (crm_whatsapp) do CRM
Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM
Quando a conversa aconteceu
Trechos da conversa que sustentam o item (e1, e2…)
Presente quando o vendedor confirmou, corrigiu ou descartou a leitura
object
O que o vendedor disse sobre a leitura
Quando disse
Histórico de combinados do negócio: o que foi prometido, por quem, quando, prazo, status e fonte (leitura com trecho, ou registro do vendedor). Do mais recente para o mais antigo por quando foi dito
object
Chave estável do combinado, do prazo do cliente ou do próximo passo
Rótulo pronto para a tela
Commitment: combinado ou próximo passo do cliente; deadline: prazo do processo de decisão do cliente
O que foi combinado ou o prazo
Nome de quem falou, quando dá para saber
Quando foi dito, na conversa de origem
Prazo, AAAA-MM-DD
Como o prazo foi dito na conversa (“sexta”, “até o fim do mês”)
Open/overdue: pendente; delivered: cumprido; rescheduled: a tarefa de cobrar foi remarcada; cancelled: a tarefa de cobrar foi cancelada; superseded: um combinado posterior do mesmo lado tomou o lugar; corrected: o vendedor corrigiu a leitura e ainda está pendente; discarded: o vendedor disse que não era um combinado
object
Leitura: o Nexo leu numa conversa, ainda não conferida pelo vendedor
object
Canal da conversa: reunião gravada, sessão de WhatsApp, ou nota, ligação, e-mail e WhatsApp (crm_whatsapp) do CRM
Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM
Quando a conversa aconteceu
Trechos da conversa que sustentam o item (e1, e2…)
object
Origem pessoa: o vendedor confirmou ou corrigiu a leitura
Quando o vendedor confirmou ou corrigiu
Presente quando o vendedor confirmou, corrigiu ou descartou a leitura
object
O que o vendedor disse sobre a leitura
Quando disse
A tarefa de cobrar ou entregar mais recente ligada a este combinado, se houver
object
Id da tarefa mais recente ligada a este combinado
Dia da tarefa, AAAA-MM-DD
Status atual da tarefa
Por que fechou sozinha (sinal sumiu, dia virou), quando fechou sozinha
Dia de onde esta tarefa foi remarcada; null quando nasceu neste dia
Quantas vezes esta tarefa já foi remarcada
Presente quando o vendedor cancelou a tarefa
object
Por que a tarefa de cobrança foi cancelada
A justificativa escrita pelo vendedor
Remarcações da tarefa, da mais recente para a mais antiga
object
Quando a tarefa foi remarcada
Registro do vendedor nas tarefas deste combinado, da mais recente para a mais antiga
object
O próximo passo da conversa mais recente
object
object
Canal da conversa: reunião gravada, sessão de WhatsApp, ou nota, ligação, e-mail e WhatsApp (crm_whatsapp) do CRM
Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM
Quando a conversa aconteceu
Trechos da conversa que sustentam o item (e1, e2…)
Próximo passo registrado por uma pessoa no Nexo
object
Id do registro do próximo passo
O que foi combinado
Data do próximo passo (AAAA-MM-DD)
Quem deve o próximo passo: seller = o vendedor (Você); client = o cliente
Observação de quem registrou, por exemplo o que foi combinado por telefone
Quando foi registrado
Quem registrou
object
object
Canal da conversa: reunião gravada, sessão de WhatsApp, ou nota, ligação, e-mail e WhatsApp (crm_whatsapp) do CRM
Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM
Quando a conversa aconteceu
Trechos da conversa que sustentam o item (e1, e2…)
object
object
Canal da conversa: reunião gravada, sessão de WhatsApp, ou nota, ligação, e-mail e WhatsApp (crm_whatsapp) do CRM
Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM
Quando a conversa aconteceu
Trechos da conversa que sustentam o item (e1, e2…)
object
object
Canal da conversa: reunião gravada, sessão de WhatsApp, ou nota, ligação, e-mail e WhatsApp (crm_whatsapp) do CRM
Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM
Quando a conversa aconteceu
Trechos da conversa que sustentam o item (e1, e2…)
object
object
Canal da conversa: reunião gravada, sessão de WhatsApp, ou nota, ligação, e-mail e WhatsApp (crm_whatsapp) do CRM
Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM
Quando a conversa aconteceu
Trechos da conversa que sustentam o item (e1, e2…)
object
object
Canal da conversa: reunião gravada, sessão de WhatsApp, ou nota, ligação, e-mail e WhatsApp (crm_whatsapp) do CRM
Id da conversa: a reunião, a sessão de WhatsApp, ou o engajamento do CRM
Quando a conversa aconteceu
Trechos da conversa que sustentam o item (e1, e2…)
Desvios de alinhamento das conversas deste negócio (abertos e já alinhados), do mais recente para o mais antigo
object
Id do desvio
Open = em aberto; aligned = alguém marcou “já foi alinhado”; cleared = a regra mudou e deixou de ser desvio
Negócio da conversa; nulo quando a conversa não tem negócio vinculado
object
Id do negócio
Nome do negócio no CRM
Dono do negócio no CRM
Nome do dono
Referência do trecho, no formato que GET /conversations/{channel}/{conversationId}/excerpts resolve
object
Canal da conversa
Id da conversa
Referências dos trechos onde a promessa foi dita
Quando a conversa aconteceu
Quando a promessa foi dita
O que o vendedor prometeu, como a leitura resumiu
O trecho da conversa, guardado na época da conferência
object
A fala literal do vendedor
Quem falou
A regra contrariada
object
Knowledge = item da Base de conhecimento; canvas = afirmação do canvas de oferta
Id do item da Base, quando a regra vem dela
Versão do item na época da conferência
O texto da regra contrariada, como estava na época
De onde a regra vem, pronto para a tela
Assunto da regra (desconto, prazo, integração…)
Confiança do Jev na decisão, de 0 a 1
Quando a conferência foi feita
Quando alguém marcou “já foi alinhado”
Do mais recente para o mais antigo
object
True quando o Nexo já leu essa conversa
Por que o registro do CRM ainda não foi lido. queued = entra na leitura automática (últimos 60 dias ou negócio aberto); outside_window = mais antigo que a janela de leitura, não é lido para poupar custo, e dá para pedir a leitura; too_short = texto curto demais para valer a leitura. Nulo quando já foi lido ou não é conversa
Campos lidos das conversas aguardando revisão; reviewPath abre a fila deste negócio
object
Quando o estado foi compilado; nulo enquanto o negócio não tem estado
Example
{ "forecast": { "status": "not_asked", "category": "commit", "source": "nexo", "declaration": { "crmSync": "pending" }, "pending": { "reason": "missing_category", "escalation": "task" }, "history": [ { "crmSync": "pending" } ], "commitReading": "supported" }, "owner": { "kind": "person" }, "stage": { "divergence": "crm_ahead", "divergenceEvidence": { "channel": "meeting" } }, "dates": { "activity": { "source": "crm", "deadlineBasis": "stage", "nextSource": "crm" } }, "temperature": { "band": "cold", "contributions": [ { "evidence": [ { "channel": "meeting" } ] } ], "diagnosis": { "evidence": [ { "channel": "meeting" } ] }, "signals": { "buyerActivitySource": "meeting" } }, "highlights": [ { "tone": "crit" } ], "company": { "accountResearch": { "status": "queued", "trigger": "open_deal", "label": "reading", "domainSource": "crm_domain" }, "origins": [ { "trait": "industry", "origin": "account" } ] }, "customerProfile": { "profileClass": "inside", "source": "declared", "inferred": { "profileClass": "inside", "criteria": [ { "source": "crm" } ] } }, "meetings": [ { "channel": "meeting" } ], "objections": [ { "status": "open", "evidence": { "channel": "meeting" } } ], "commitments": [ { "owner": "rep", "status": "open", "evidence": { "channel": "meeting" }, "delivery": { "channel": "meeting" }, "supersededBy": { "channel": "meeting" }, "review": { "outcome": "confirmed" } } ], "commitmentHistory": [ { "owner": "rep", "ownerLabel": "você", "kind": "commitment", "status": "open", "source": { "kind": "reading", "evidence": { "channel": "meeting" } }, "review": { "outcome": "confirmed" }, "task": { "status": "open", "cancellation": { "reason": "no_longer_makes_sense" } } } ], "nextStep": { "owner": "rep", "evidence": { "channel": "meeting" } }, "sellerNextStep": { "owedBy": "seller" }, "decisionProcess": [ { "evidence": { "channel": "meeting" } } ], "buyingSignals": [ { "evidence": { "channel": "meeting" } } ], "competitors": [ { "mentions": [ { "channel": "meeting" } ] } ], "otherCompanies": [ { "mentions": [ { "channel": "meeting" } ] } ], "customerTools": [ { "evidence": [ { "channel": "meeting" } ] } ], "deviations": [ { "status": "open", "conversation": { "channel": "meeting" }, "rule": { "source": "knowledge" } } ], "timeline": [ { "kind": "deal_created", "unreadReason": "queued" } ]}Token ausente, inválido, expirado ou revogado
object
Stable machine-readable error code (e.g. identity.email_already_in_use)
Error class name
HTTP status code
Human-readable message, safe to display to end users
Correlation id — send it to support to locate the full trail
Structured details safe for the frontend (field errors, ids)
object
Example
{ "type": "public_api.invalid_credential", "title": "InvalidCredentialError", "status": 401, "detail": "Token de acesso inválido, expirado ou revogado. Crie um novo token de acesso no Nexo.", "requestId": "019fcae7-3e54-755a-8458-bdb605b324bb"}Papel, escopo do token ou plano não permitem a operação
object
Stable machine-readable error code (e.g. identity.email_already_in_use)
Error class name
HTTP status code
Human-readable message, safe to display to end users
Correlation id — send it to support to locate the full trail
Structured details safe for the frontend (field errors, ids)
object
Example
{ "type": "public_api.insufficient_scope", "title": "InsufficientScopeError", "status": 403, "detail": "Este token não tem o escopo conversations:read, exigido por esta operação. Gere um token com esse escopo.", "requestId": "019fcae7-3e54-755a-8458-bdb605b324bb", "meta": { "operation": "conversations.reading", "scope": "conversations:read" }}Negócio inexistente ou fora da visibilidade do dono do token
object
Stable machine-readable error code (e.g. identity.email_already_in_use)
Error class name
HTTP status code
Human-readable message, safe to display to end users
Correlation id — send it to support to locate the full trail
Structured details safe for the frontend (field errors, ids)
object
Example
{ "type": "deals.not_found", "title": "DealNotFoundError", "status": 404, "detail": "Negócio não encontrado.", "requestId": "019fcae7-3e54-755a-8458-bdb605b324bb", "meta": { "dealId": "019fcae7-3e54-755a-8458-bdb605b324aa" }}Limite de chamadas da empresa ou do token atingido
object
Stable machine-readable error code (e.g. identity.email_already_in_use)
Error class name
HTTP status code
Human-readable message, safe to display to end users
Correlation id — send it to support to locate the full trail
Structured details safe for the frontend (field errors, ids)
object
Example
{ "type": "public_api.rate_limited", "title": "PublicRateLimitedError", "status": 429, "detail": "Muitas chamadas em pouco tempo. Tente de novo em 12 segundos.", "requestId": "019fcae7-3e54-755a-8458-bdb605b324bb", "meta": { "class": "content", "limitedBy": "company", "limit": 120, "windowSeconds": 60, "retryAfterSeconds": 12 }}