Pular para o conteúdo

Criar ou atualizar um lead

POST
/leads
curl --request POST \
--url https://dattacrm.com.br/api/v1/leads \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "email": "example", "phone": "example", "tags": [ "example" ], "listId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f", "listIds": [ "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f" ], "pipelineId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f", "stageId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f", "ownerId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f", "value": 1, "customFields": { "additionalProperty": "example" }, "source": "example", "utm": { "source": "example", "medium": "example", "campaign": "example", "term": "example", "content": "example", "id": "example" }, "tracking": { "fbclid": "example", "gclid": "example", "ttclid": "example", "ctwaClid": "example", "sourceId": "example", "pageUrl": "example", "referrer": "example" }, "occurredAt": "2026-04-15T12:00:00Z", "eventId": "example", "mode": "upsert" }'

Principal porta de entrada de leads. Casa pelo telefone, depois pelo e-mail: se o lead já existe, mescla sem sobrescrever o que está preenchido e junta tags e listas; se não existe, cria. Aceita responsável, campos personalizados e UTMs. Cada envio aceito grava uma captura na jornada do lead, com a hora occurredAt (ou a da chegada), as UTMs do envio e a lista de destino; eventId evita a captura repetida no reenvio. Contato oculto e createOnly de lead existente não gravam captura. Etapa e valor não vão aqui: são do negócio (lead × lista), e stageId, pipelineId ou value respondem 400 field_moved (use PATCH /leads/{id}/lists/{listId}). Tudo é gravado junto: se algo falhar (responsável de outra conta, limite do plano), nada é gravado. Responde 201 com result: created ou 200 com result: matched.

Media type application/json

Dados do lead a criar ou atualizar.

object
name

Nome do lead (1 a 120 caracteres). Sem nome, vale o e-mail ou o telefone.

string
>= 1 characters <= 120 characters
email

E-mail do lead (espaços nas pontas e maiúsculas são ignorados; até 254 caracteres). Identifica o lead sem diferenciar maiúsculas. Formato inválido não recusa o lead: o e-mail é gravado como chegou e aparece com alerta. Informe e-mail ou telefone.

string
>= 1 characters <= 254 characters
phone

Telefone do lead, em qualquer formato (máscara, +DDI; até 64 caracteres); sem DDI vale o país padrão da conta. Identifica o lead quando tem de 8 a 15 dígitos. Formato fora disso não recusa o lead: com dois números no campo vale o primeiro, e o resto é gravado com os dígitos que vieram, aparece com alerta e não identifica nem junta o lead com ninguém. Informe e-mail ou telefone.

string
<= 64 characters
tags

Tags a acrescentar, pelo nome (até 30). Nunca remove tags que o lead já tem. Tag automática é ignorada: o CRM a põe e tira pela regra dela.

Array<string>
<= 30 items
listId

Lista de destino do lead. Lead novo nasce com a origem desta lista. Sem ela, vale a primeira de listIds. A chave de API não tem lista: para criar um lead, informe listId ou listIds; sem nenhuma, a resposta é 400 list_required. Lead que já existe aceita o corpo sem lista. Lista de outra conta é ignorada.

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
Example
0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f
listIds

Listas a acrescentar ao lead (até 100), além da de destino. Sem listId, a primeira é a de destino. Nunca tira o lead de uma lista.

Array<string>
<= 100 items
pipelineId

Removido: não há mais funil da conta; cada lista com funil tem as suas etapas. Enviar este campo responde 400 field_moved; use PATCH /leads/{id}/lists/{listId} (update_lead_in_list).

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
Example
0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f
stageId

Removido: a etapa é do negócio (lead × lista). Enviar este campo responde 400 field_moved; use PATCH /leads/{id}/lists/{listId} (update_lead_in_list).

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
Example
0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f
ownerId

Membro responsável pelo lead (veja list_members). Lead novo recebe o responsável; lead existente só recebe quando não tem responsável, nunca é reatribuído. Membro de outra conta responde 404.

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
Example
0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f
value

Removido: o valor é do negócio (lead × lista). Enviar este campo responde 400 field_moved; use PATCH /leads/{id}/lists/{listId} (update_lead_in_list).

number
<= 9999999999.99
customFields

Campos personalizados, indexados pela chave do campo (veja list_custom_fields).

object
key
additional properties

Valor do campo.

source

Obsoleto: aceito e ignorado. A origem do lead é a da lista de destino (listId) e nunca muda depois da criação.

string
>= 1 characters <= 64 characters
utm

Parâmetros UTM de atribuição. Num lead existente só entram os que vierem preenchidos.

object
source

Utm_source.

string
<= 255 characters
medium

Utm_medium.

string
<= 255 characters
campaign

Utm_campaign.

string
<= 255 characters
term

Utm_term.

string
<= 255 characters
content

Utm_content.

string
<= 255 characters
id

Utm_id.

string
<= 255 characters
tracking

Rastreio de clique e de página, além das UTMs. Vai para o lead e para a captura desta entrega. Num lead existente só entram os que vierem preenchidos.

object
fbclid

Identificador de clique do Meta (fbclid), até 500 caracteres.

string
<= 500 characters
gclid

Identificador de clique do Google Ads (gclid), até 500 caracteres.

string
<= 500 characters
ttclid

Identificador de clique do TikTok (ttclid), até 500 caracteres.

string
<= 500 characters
ctwaClid

Identificador de clique de anúncio para o WhatsApp (ctwa_clid), até 500 caracteres.

string
<= 500 characters
sourceId

Identificador do anúncio de origem (source_id, dos anúncios para o WhatsApp), até 500 caracteres.

string
<= 500 characters
pageUrl

Endereço da página onde o lead foi captado (page_url), até 2048 caracteres. Também vale como URL de conversão do lead.

string
<= 2048 characters
referrer

Endereço de onde a pessoa veio antes da página de captação (referrer), até 2048 caracteres.

string
<= 2048 characters
occurredAt

Quando o lead foi captado na origem, em ISO 8601 com fuso (ex.: 2026-10-30T09:15:00-03:00). Vai na captura desta entrega (o toque lead_capture da jornada) e, num lead novo, na data e na hora do lead. Sem ele, vale a hora da chegada. Sem fuso ou mais de 5 minutos no futuro responde 400 validation_error.

string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
eventId

Identificador desta entrega na sua ferramenta (até 200 caracteres), para reenviar sem duplicar: a mesma entrega repetida para o mesmo lead não grava outra captura, a qualquer tempo. Sem ele, cada envio aceito grava uma captura.

string
>= 1 characters <= 200 characters
mode

upsert (padrão) cria o lead ou mescla no existente, sem sobrescrever o que já está preenchido. createOnly cria; se o lead já existir, devolve-o como está (matched), sem mesclar nada, nem etapa nem responsável.

string
Allowed values: upsert createOnly

O lead já existia e foi mesclado, ou devolvido como está no createOnly (result: matched).

Media type application/json
object
data
required

O lead gravado e o que aconteceu com ele.

object
lead
required

Lead (contato/card do funil) no formato público da API.

object
id
required

Identificador do lead.

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
name
required

Nome do lead.

string
email
required

E-mail do lead, ou null quando não há.

string | null
phone
required

Telefone no formato informado, ou null quando não há.

string | null
tags
required

Tags do lead, pelo nome.

Array<string>
listIds
required

Listas das quais o lead faz parte. Pode ficar vazio.

Array<string>
ownerId
required
Any of:

Identificador único (UUID).

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
customFields
required

Campos personalizados do lead, indexados pela chave do campo.

object
key
additional properties

Valor do campo.

origin
required

Primeira origem do lead (site, whatsapp ou instagram). Gravada na criação; nunca muda.

string
Allowed values: site whatsapp instagram
source
required

Rótulo da origem do lead: “Site”, “WhatsApp” ou “Instagram”.

string
lists
required

Negócios do lead: um por lista de que ele faz parte (lead × lista), em ordem alfabética. Etapa, valor e motivo da perda são do negócio; mude com PATCH /leads/{id}/lists/{listId}.

Array<object>

Negócio do lead numa lista: a lista, a pasta, a etapa, o valor e o motivo da perda.

object
listId
required

Identificador da lista.

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
listName
required

Nome da lista.

string
folderId
required

Identificador da pasta da lista.

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
folderName
required

Nome da pasta da lista.

string
origin
required

Origem da lista (site, whatsapp ou instagram).

string
Allowed values: site whatsapp instagram
stageId
required
Any of:

Identificador único (UUID).

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
stageName
required

Nome da etapa, ou null em lista de Site.

string | null
stageKind
required
Any of:
string
Allowed values: active won lost
stageEnteredAt
required
Any of:

Data e hora em ISO 8601, com fuso.

string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
value
required

Valor do negócio nesta lista, em reais. Zero quando não definido.

number
lossReasonId
required
Any of:

Identificador único (UUID).

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
utm
required

Parâmetros UTM de atribuição do lead.

object
source
required

Utm_source do último toque.

string | null
medium
required

Utm_medium do último toque.

string | null
campaign
required

Utm_campaign do último toque.

string | null
term
required

Utm_term do último toque.

string | null
content
required

Utm_content do último toque.

string | null
hidden
required

Contato oculto (equipe, pessoal): não aparece nas telas nem em GET /leads (só com includeHidden=true), não entra em lista nem dispara automações ou webhooks. Ocultar e mostrar só pela tela.

boolean
hiddenAt
required
Any of:

Data e hora em ISO 8601, com fuso.

string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
createdAt
required

Quando o lead foi criado.

string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
updatedAt
required

Quando o lead foi alterado pela última vez.

string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
url
required

Link da ficha do lead no CRM, ou null quando o endereço não é conhecido.

string | null
result
required

created quando o lead é novo (HTTP 201); matched quando já existia (HTTP 200).

string
Allowed values: created matched
Example
{
"data": {
"lead": {
"id": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f",
"listIds": [
"0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f"
],
"ownerId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f",
"origin": "site",
"lists": [
{
"listId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f",
"folderId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f",
"origin": "site",
"stageId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f",
"stageKind": "active",
"stageEnteredAt": "2026-10-19T12:00:00.000Z",
"lossReasonId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f"
}
],
"hiddenAt": "2026-10-19T12:00:00.000Z",
"createdAt": "2026-10-19T12:00:00.000Z",
"updatedAt": "2026-10-19T12:00:00.000Z"
},
"result": "created"
}
}
X-Request-Id
string

Identificador da requisição, para suporte.

X-RateLimit-Limit
integer

Máximo de requisições por janela de 60 segundos para esta chave.

X-RateLimit-Remaining
integer

Requisições restantes na janela atual.

X-RateLimit-Reset
integer

Fim da janela atual, em milissegundos desde a época Unix (epoch ms).

Lead criado (result: created).

Media type application/json
object
data
required

O lead gravado e o que aconteceu com ele.

object
lead
required

Lead (contato/card do funil) no formato público da API.

object
id
required

Identificador do lead.

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
name
required

Nome do lead.

string
email
required

E-mail do lead, ou null quando não há.

string | null
phone
required

Telefone no formato informado, ou null quando não há.

string | null
tags
required

Tags do lead, pelo nome.

Array<string>
listIds
required

Listas das quais o lead faz parte. Pode ficar vazio.

Array<string>
ownerId
required
Any of:

Identificador único (UUID).

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
customFields
required

Campos personalizados do lead, indexados pela chave do campo.

object
key
additional properties

Valor do campo.

origin
required

Primeira origem do lead (site, whatsapp ou instagram). Gravada na criação; nunca muda.

string
Allowed values: site whatsapp instagram
source
required

Rótulo da origem do lead: “Site”, “WhatsApp” ou “Instagram”.

string
lists
required

Negócios do lead: um por lista de que ele faz parte (lead × lista), em ordem alfabética. Etapa, valor e motivo da perda são do negócio; mude com PATCH /leads/{id}/lists/{listId}.

Array<object>

Negócio do lead numa lista: a lista, a pasta, a etapa, o valor e o motivo da perda.

object
listId
required

Identificador da lista.

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
listName
required

Nome da lista.

string
folderId
required

Identificador da pasta da lista.

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
folderName
required

Nome da pasta da lista.

string
origin
required

Origem da lista (site, whatsapp ou instagram).

string
Allowed values: site whatsapp instagram
stageId
required
Any of:

Identificador único (UUID).

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
stageName
required

Nome da etapa, ou null em lista de Site.

string | null
stageKind
required
Any of:
string
Allowed values: active won lost
stageEnteredAt
required
Any of:

Data e hora em ISO 8601, com fuso.

string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
value
required

Valor do negócio nesta lista, em reais. Zero quando não definido.

number
lossReasonId
required
Any of:

Identificador único (UUID).

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
utm
required

Parâmetros UTM de atribuição do lead.

object
source
required

Utm_source do último toque.

string | null
medium
required

Utm_medium do último toque.

string | null
campaign
required

Utm_campaign do último toque.

string | null
term
required

Utm_term do último toque.

string | null
content
required

Utm_content do último toque.

string | null
hidden
required

Contato oculto (equipe, pessoal): não aparece nas telas nem em GET /leads (só com includeHidden=true), não entra em lista nem dispara automações ou webhooks. Ocultar e mostrar só pela tela.

boolean
hiddenAt
required
Any of:

Data e hora em ISO 8601, com fuso.

string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
createdAt
required

Quando o lead foi criado.

string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
updatedAt
required

Quando o lead foi alterado pela última vez.

string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
url
required

Link da ficha do lead no CRM, ou null quando o endereço não é conhecido.

string | null
result
required

created quando o lead é novo (HTTP 201); matched quando já existia (HTTP 200).

string
Allowed values: created matched
Example
{
"data": {
"lead": {
"id": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f",
"listIds": [
"0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f"
],
"ownerId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f",
"origin": "site",
"lists": [
{
"listId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f",
"folderId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f",
"origin": "site",
"stageId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f",
"stageKind": "active",
"stageEnteredAt": "2026-10-19T12:00:00.000Z",
"lossReasonId": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f"
}
],
"hiddenAt": "2026-10-19T12:00:00.000Z",
"createdAt": "2026-10-19T12:00:00.000Z",
"updatedAt": "2026-10-19T12:00:00.000Z"
},
"result": "created"
}
}
X-Request-Id
string

Identificador da requisição, para suporte.

X-RateLimit-Limit
integer

Máximo de requisições por janela de 60 segundos para esta chave.

X-RateLimit-Remaining
integer

Requisições restantes na janela atual.

X-RateLimit-Reset
integer

Fim da janela atual, em milissegundos desde a época Unix (epoch ms).

Dados inválidos (validation_error), lead novo sem lista (list_required), stageId, pipelineId ou value, que agora são do negócio (field_moved) ou chave enviada na URL (api_key_in_url).

Media type application/json

Formato de erro da API.

object
error
required
object
code
required

Código estável do erro, ex.: validation_error.

string
message
required

Mensagem legível em português.

string
details

Detalhes extras, ex.: lista de campos inválidos.

requestId
required

Identificador da requisição, para suporte.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"details": "example",
"requestId": "example"
}
}
X-Request-Id
string

Identificador da requisição, para suporte.

Chave ausente, inválida (invalid_api_key), vencida (api_key_expired) ou revogada (api_key_revoked).

Media type application/json

Formato de erro da API.

object
error
required
object
code
required

Código estável do erro, ex.: validation_error.

string
message
required

Mensagem legível em português.

string
details

Detalhes extras, ex.: lista de campos inválidos.

requestId
required

Identificador da requisição, para suporte.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"details": "example",
"requestId": "example"
}
}
X-Request-Id
string

Identificador da requisição, para suporte.

A chave é somente leitura e a operação grava dados (insufficient_scope).

Media type application/json

Formato de erro da API.

object
error
required
object
code
required

Código estável do erro, ex.: validation_error.

string
message
required

Mensagem legível em português.

string
details

Detalhes extras, ex.: lista de campos inválidos.

requestId
required

Identificador da requisição, para suporte.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"details": "example",
"requestId": "example"
}
}
X-Request-Id
string

Identificador da requisição, para suporte.

Responsável (ownerId) não encontrado nesta conta (not_found). Nada é gravado.

Media type application/json

Formato de erro da API.

object
error
required
object
code
required

Código estável do erro, ex.: validation_error.

string
message
required

Mensagem legível em português.

string
details

Detalhes extras, ex.: lista de campos inválidos.

requestId
required

Identificador da requisição, para suporte.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"details": "example",
"requestId": "example"
}
}
X-Request-Id
string

Identificador da requisição, para suporte.

Conflito com o estado atual (conflict), contato oculto, cujo negócio não muda (lead_hidden), ou limite do plano atingido (plan_limit).

Media type application/json

Formato de erro da API.

object
error
required
object
code
required

Código estável do erro, ex.: validation_error.

string
message
required

Mensagem legível em português.

string
details

Detalhes extras, ex.: lista de campos inválidos.

requestId
required

Identificador da requisição, para suporte.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"details": "example",
"requestId": "example"
}
}
X-Request-Id
string

Identificador da requisição, para suporte.

O corpo da requisição passa de 256 KB (payload_too_large).

Media type application/json

Formato de erro da API.

object
error
required
object
code
required

Código estável do erro, ex.: validation_error.

string
message
required

Mensagem legível em português.

string
details

Detalhes extras, ex.: lista de campos inválidos.

requestId
required

Identificador da requisição, para suporte.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"details": "example",
"requestId": "example"
}
}
X-Request-Id
string

Identificador da requisição, para suporte.

Limite de requisições atingido (rate_limited). Aguarde Retry-After segundos.

Media type application/json

Formato de erro da API.

object
error
required
object
code
required

Código estável do erro, ex.: validation_error.

string
message
required

Mensagem legível em português.

string
details

Detalhes extras, ex.: lista de campos inválidos.

requestId
required

Identificador da requisição, para suporte.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"details": "example",
"requestId": "example"
}
}
X-Request-Id
string

Identificador da requisição, para suporte.

X-RateLimit-Limit
integer

Máximo de requisições por janela de 60 segundos para esta chave.

X-RateLimit-Remaining
integer

Requisições restantes na janela atual.

X-RateLimit-Reset
integer

Fim da janela atual, em milissegundos desde a época Unix (epoch ms).

Retry-After
integer

Segundos até poder tentar de novo.

Erro interno (internal_error). Informe o requestId ao suporte.

Media type application/json

Formato de erro da API.

object
error
required
object
code
required

Código estável do erro, ex.: validation_error.

string
message
required

Mensagem legível em português.

string
details

Detalhes extras, ex.: lista de campos inválidos.

requestId
required

Identificador da requisição, para suporte.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"details": "example",
"requestId": "example"
}
}
X-Request-Id
string

Identificador da requisição, para suporte.

O CRM está em modo somente leitura durante uma migração (maintenance). Tente de novo depois de Retry-After segundos.

Media type application/json

Formato de erro da API.

object
error
required
object
code
required

Código estável do erro, ex.: validation_error.

string
message
required

Mensagem legível em português.

string
details

Detalhes extras, ex.: lista de campos inválidos.

requestId
required

Identificador da requisição, para suporte.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"details": "example",
"requestId": "example"
}
}
X-Request-Id
string

Identificador da requisição, para suporte.

Retry-After
integer

Segundos até poder tentar de novo.