Adicionar Contato a Campanha
Adiciona um novo contato a uma campanha existente. Se o contato nao existir, ele sera criado automaticamente.
POST /external/v1/campaigns/:id/contactsAutenticacao
Requer chave de API com permissao campaigns:write.
Parametros de Caminho
| Parametro | Tipo | Descricao |
|---|---|---|
id | uuid | ID da campanha |
Corpo da Requisicao
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
name | string | Sim | Nome completo do contato |
linkedin_profile_url | string | Sim | URL do perfil no LinkedIn |
title | string | Nao | Cargo |
company | string | Nao | Nome da empresa |
location | string | Nao | Localizacao |
email | string | Nao | Endereco de e-mail |
phone | string | Nao | Numero de telefone |
about | string | Nao | Resumo/bio do perfil |
profile_picture | string | Nao | URL da foto de perfil |
extracted_contacts | object | Nao | Informacoes de contato extraidas |
Objeto extracted_contacts
| Campo | Tipo | Descricao |
|---|---|---|
emails | string[] | Enderecos de e-mail encontrados |
phones | string[] | Numeros de telefone encontrados |
websites | string[] | URLs de websites encontrados |
Resposta
json
{
"success": true,
"data": {
"campaign_contact": {
"id": "550e8400-e29b-41d4-a716-446655440001",
"campaign_id": "550e8400-e29b-41d4-a716-446655440000",
"contact_id": "550e8400-e29b-41d4-a716-446655440002",
"status": "approved",
"created_at": "2026-03-20T14:22:00Z"
},
"contact": {
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "John Doe",
"profile_url": "https://linkedin.com/in/johndoe"
},
"campaign": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Tech Founders SF Q1"
}
},
"message": "Contact added to campaign successfully"
}Exemplo
cURL
bash
curl --request POST \
--url "https://app.getraze.com/external/v1/campaigns/550e8400-e29b-41d4-a716-446655440000/contacts" \
--header "X-API-Key: YOUR_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"name": "John Doe",
"linkedin_profile_url": "https://linkedin.com/in/johndoe",
"title": "CTO",
"company": "Acme Inc",
"location": "San Francisco, CA"
}'JavaScript
javascript
const response = await fetch(
'https://app.getraze.com/external/v1/campaigns/CAMPAIGN_ID/contacts',
{
method: 'POST',
headers: {
'X-API-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'John Doe',
linkedin_profile_url: 'https://linkedin.com/in/johndoe',
title: 'CTO',
company: 'Acme Inc'
})
}
);
const data = await response.json();Python
python
import requests
response = requests.post(
f'https://app.getraze.com/external/v1/campaigns/{campaign_id}/contacts',
headers={'X-API-Key': 'YOUR_API_KEY'},
json={
'name': 'John Doe',
'linkedin_profile_url': 'https://linkedin.com/in/johndoe',
'title': 'CTO',
'company': 'Acme Inc'
}
)
data = response.json()Erros
| Status | Codigo | Descricao |
|---|---|---|
| 400 | VALIDATION_ERROR | Campos obrigatorios ausentes |
| 401 | MISSING_API_KEY | Nenhuma chave de API fornecida |
| 403 | INSUFFICIENT_PERMISSIONS | Sem permissao campaigns:write |
| 404 | NOT_FOUND | Campanha nao encontrada |
| 409 | DUPLICATE_ERROR | Contato ja existe nesta campanha |