{
"success": true,
"event_id": "1758388123_kk78h7u5sf",
"lead_id": "lead_20260324_xyz789",
"timestamp": 1758388123
}{
"error": {
"type": "validation_error",
"code": "invalid_parameter",
"message": "trigger.type must be 'api' for Partner API triggers",
"request_id": "req_abc123"
}
}{
"error": {
"type": "authentication_error",
"code": "invalid_api_key",
"message": "The API key provided is invalid or has been revoked.",
"request_id": "req_abc123"
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Maximum 120 requests per 60s.",
"request_id": "req_abc123"
}
}Enviar Evento
Envia um evento de rastreamento ao Metrito.
Dois modos de uso
| Modo | Como usar | Resolução do container |
|---|---|---|
| Autenticado (API key) | Authorization: Bearer mtk_live_... ou x-api-key | Container resolvido automaticamente pela chave |
| Público (sem auth) | Sem header de autenticação | Campo domain obrigatório no body |
O modo público é equivalente ao endpoint legado POST /v2/public/tracking/events — use este endpoint como ponto de entrada único.
Idempotência
Envie Idempotency-Key com um valor único por evento. Dentro de 24h, chamadas repetidas com o mesmo key retornam a resposta original com X-Idempotent-Replayed: true.
{
"success": true,
"event_id": "1758388123_kk78h7u5sf",
"lead_id": "lead_20260324_xyz789",
"timestamp": 1758388123
}{
"error": {
"type": "validation_error",
"code": "invalid_parameter",
"message": "trigger.type must be 'api' for Partner API triggers",
"request_id": "req_abc123"
}
}{
"error": {
"type": "authentication_error",
"code": "invalid_api_key",
"message": "The API key provided is invalid or has been revoked.",
"request_id": "req_abc123"
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Maximum 120 requests per 60s.",
"request_id": "req_abc123"
}
}Modo Autenticado vs Público
Com API key — o container é resolvido automaticamente pela chave. O campodomain no body é ignorado (mas pode ser enviado).
Público (sem auth) — o campo domain é obrigatório e identifica o container de destino.
config.name vs config.facebook.name
| Campo | Onde é usado | Descrição |
|---|---|---|
config.name | Metrito | Nome interno para relatórios e dashboards |
config.facebook.name | Meta (Facebook/Instagram) | Nome enviado à Meta Conversion API (PageView, Purchase, Lead, etc.) |
config.facebook for omitido, o evento é registrado no Metrito mas não é enviado para a Meta.Autorizações
JWT da plataforma ou API key mtk_live_...
Cabeçalhos
Chave de idempotência. Dentro de 24h, chamadas repetidas com o mesmo key retornam a resposta original.
Corpo
Domínio do container. Obrigatório no modo público (sem API key). Ignorado no modo autenticado.
"minhaloja.com.br"
Show child attributes
Show child attributes
Fonte do evento, exibida na coluna "Fonte" do histórico do lead. Eventos desta API são rotulados como api por padrão. Valores fora da lista voltam para api. Diferente de config.facebook.sourceKey, que governa o action_source da Meta.
api, whatsapp, website "whatsapp"
ID único do evento. Gerado automaticamente se omitido.
Timestamp Unix em segundos. Usa horário atual se omitido.
Show child attributes
Show child attributes
Identidade e dados do lead. Usados para dedupe/upsert (email/phone/doc) e para o advanced matching da Meta. Campos de localização fazem merge por campo com a geolocalização por IP — o que o lead trouxer vence.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
{ "_fbp": "fb.1.1234567890.987654321", "_ga": "GA1.2.1234567890.1234567890" }