API
Iniciar sesión
Documentación › Contactos › Crear contacto
POST

Crear contacto

POSThttps://app.sendapp.ai/api/contacts
Crea (o actualiza con upsert) un solo contacto. Debe tener al menos un teléfono O un email. Los contactos existentes con el mismo teléfono/email se fusionan (etiquetas combinadas, metadata fusionada).
Respuestas: 201 Created con el contacto creado — 403 si se alcanza el límite de contactos del plan — 422 si faltan tanto el teléfono como el email.
Parámetros
apikey obligatorio
La tua API Key (anche header X-API-Key).
name opcional
Nombre completo, hasta 255 caracteres.
phone obligatorio
Formato internacional (p. ej. +393391234567). Obligatorio si falta el email.
email obligatorio
Email válido. Obligatorio si falta el teléfono.
tags opcional
Array de cadenas o cadena separada por comas (p. ej. "vip,newsletter").
metadata opcional
Objeto JSON con campos personalizados.
Solicitud
curl -X POST 'https://app.sendapp.ai/api/contacts' \
  -H 'X-API-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Mario Rossi",
    "phone": "+393391234567",
    "email": "mario@example.com",
    "tags": ["newsletter", "vip"],
    "metadata": { "source": "landing_page_a" }
  }'
<?php
$ch = curl_init('https://app.sendapp.ai/api/contacts');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ['X-API-Key: YOUR_API_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode([
        'name'     => 'Mario Rossi',
        'phone'    => '+393391234567',
        'email'    => 'mario@example.com',
        'tags'     => ['newsletter', 'vip'],
        'metadata' => ['source' => 'landing_page_a'],
    ]),
]);
echo curl_exec($ch);
curl_close($ch);
const res = await fetch('https://app.sendapp.ai/api/contacts', {
  method: 'POST',
  headers: { 'X-API-Key': 'YOUR_API_KEY', 'Content-Type': 'application/json' },
  body: JSON.stringify({
    name: 'Mario Rossi',
    phone: '+393391234567',
    email: 'mario@example.com',
    tags: ['newsletter', 'vip'],
    metadata: { source: 'landing_page_a' }
  })
});
console.log(await res.json());
Respuesta (200 OK)
{
  "status": "success",
  "contact": {
    "id": 4022,
    "name": "Giulia Bianchi",
    "phone": "393334455667",
    "email": "giulia.bianchi@example.com",
    "tags": [
      "lead"
    ],
    "metadata": [],
    "created_at": "2026-07-13 10:00:00",
    "updated_at": "2026-07-13 10:00:00"
  }
}
Error
{
  "status": "error",
  "message": "Contact limit reached. Please upgrade your plan."
}