Saltar al contenido
Docs

Gestiona los perfiles de contacto y los campos personalizados, de forma masiva o de uno en uno.

URL basehttps://api.emailit.com/v2AutenticaciónErroresLímites de velocidad

Crear un contacto

Crea un contacto y, opcionalmente, lo suscribe a listas de contactos.

POST/contacts

Requiere una clave de API full. Las direcciones de email son únicas en cada espacio de trabajo y se guardan en minúsculas; si creas un contacto que ya existe, la petición devuelve 409 con el contacto en existing. Dispara contact.created y, por cada lista, subscriber.created. Consulta Contactos.

Parámetros del cuerpo

emailstringobligatorio
La dirección de email del contacto.
first_namestring
El nombre.
last_namestring
Los apellidos.
custom_fieldsobject

Los valores por clave de campo personalizado, como {"company": "Analytical Engines"}. Los valores de los campos de fecha deben tener el formato YYYY-MM-DD. Las claves que no coinciden con ningún campo personalizado se guardan tal cual.

audiencesstring[]
Los ID de las listas (aud_…) a las que se suscribe el contacto. Los ID que no existen en el espacio de trabajo se omiten.
unsubscribedbooleanpor defecto: false

true para crear el contacto como dado de baja. Las campañas omiten a los contactos dados de baja, y sus pertenencias a listas empiezan como dadas de baja.

Devuelve

Devuelve 201 con el objeto de contacto. Aquí, audiences enumera cada lista con su id, su name y su estado subscribed. Para ver todos los campos, consulta Obtener un contacto.

Devuelve 422 con usage si una lista ha alcanzado el límite de suscriptores de tu plan. En ese caso, no se crea ningún contacto.

POST/contacts
Terminal
curl -X POST https://api.emailit.com/v2/contacts \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "ada@example.com",
    "first_name": "Ada",
    "last_name": "Lovelace",
    "custom_fields": { "company": "Analytical Engines", "plan": "pro" },
    "audiences": ["aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2"]
  }'
JSON
{
  "object": "contact",
  "id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
  "email": "ada@example.com",
  "first_name": "Ada",
  "last_name": "Lovelace",
  "custom_fields": {
    "company": "Analytical Engines",
    "plan": "pro"
  },
  "unsubscribed": false,
  "audiences": [
    {
      "id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
      "name": "Newsletter",
      "subscribed": true
    }
  ],
  "created_at": "2026-10-01T10:20:31.704113Z",
  "updated_at": "2026-10-01T10:20:31.704113Z"
}

Obtener un contacto

Obtiene un contacto con sus campos personalizados y sus pertenencias a listas.

GET/contacts/{id}

Requiere una clave de API full.

Parámetros de ruta

idstringobligatorio
El ID del contacto (con_…) o su dirección de email, codificada para URL.

Devuelve

Devuelve el objeto de contacto.

objectstring
Siempre contact.
idstring
El ID del contacto.
emailstring
La dirección de email, en minúsculas.
first_namestring | null
El nombre.
last_namestring | null
Los apellidos.
custom_fieldsobject
Los valores de los campos personalizados por clave. {} si no hay ninguno.
unsubscribedboolean
true si el contacto se ha dado de baja de todas las campañas.
audiencesobject[]

Las listas a las que pertenece el contacto, cada una con id, name y un objeto subscriber: id (sub_…), subscribed, subscribed_at, unsubscribed_at, created_at y updated_at.

created_atstring
Cuándo se creó el contacto.
updated_atstring
Cuándo se modificó el contacto por última vez.
GET/contacts/{id}
Terminal
curl https://api.emailit.com/v2/contacts/con_4K9kQdrXth7am0TPKvPrR5yd2oo \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "contact",
  "id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
  "email": "ada@example.com",
  "first_name": "Ada",
  "last_name": "Lovelace",
  "custom_fields": {
    "company": "Analytical Engines",
    "plan": "pro"
  },
  "unsubscribed": false,
  "audiences": [
    {
      "id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
      "name": "Newsletter",
      "subscriber": {
        "id": "sub_4KECYl5AwXEy8ezswYRhuddttxo",
        "subscribed": true,
        "subscribed_at": "2026-10-01T10:20:31.000000Z",
        "unsubscribed_at": null,
        "created_at": "2026-10-01T10:20:31.000000Z",
        "updated_at": "2026-10-01T10:20:31.000000Z"
      }
    }
  ],
  "created_at": "2026-10-01T10:20:31.000000Z",
  "updated_at": "2026-10-01T10:20:31.000000Z"
}

Actualizar un contacto

Actualiza un contacto. Solo cambian los campos que envíes.

POST/contacts/{id}

Requiere una clave de API full. Dispara contact.updated, con los valores anteriores de los campos modificados en previous. Cambiar audiences también dispara subscriber.created y subscriber.deleted por las pertenencias que añade y elimina.

Parámetros de ruta

idstringobligatorio
El ID del contacto (con_…) o su dirección de email, codificada para URL.

Parámetros del cuerpo

emailstring
Una nueva dirección de email. No puede pertenecer a otro contacto.
first_namestring
El nombre.
last_namestring
Los apellidos.
custom_fieldsobject
Los valores de los campos personalizados por clave. Sustituye todos los campos personalizados del contacto, así que incluye los que quieras conservar.
unsubscribedboolean
true para dar de baja al contacto de todas las campañas, false para volver a suscribirlo. Las pertenencias a listas existentes conservan su propio estado.
audiencesstring[]

La lista completa de ID de las listas de contactos a las que debe pertenecer el contacto. El contacto se añade a las listas en las que aún no está y se quita de las que no están en tu lista. Envía [] para quitarlo de todas las listas. Para añadirlo a una lista o quitarlo de ella sin enumerar todas, usa Añadir un suscriptor o Eliminar un suscriptor.

Devuelve

Devuelve el contacto actualizado en el mismo formato que Obtener un contacto. Una petición sin ninguno de estos campos devuelve 400.

POST/contacts/{id}
Terminal
curl -X POST https://api.emailit.com/v2/contacts/con_4K9kQdrXth7am0TPKvPrR5yd2oo \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"first_name": "Augusta"}'
Terminal
curl -X POST https://api.emailit.com/v2/contacts/ada%40example.com \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "custom_fields": { "company": "Analytical Engines", "plan": "business" },
    "audiences": ["aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2", "aud_4KOlh9t2uw5od4qypqCtyrZyDq2"]
  }'
JSON
{
  "object": "contact",
  "id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
  "email": "ada@example.com",
  "first_name": "Augusta",
  "last_name": "Lovelace",
  "custom_fields": {
    "company": "Analytical Engines",
    "plan": "pro"
  },
  "unsubscribed": false,
  "audiences": [
    {
      "id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
      "name": "Newsletter",
      "subscriber": {
        "id": "sub_4KECYl5AwXEy8ezswYRhuddttxo",
        "subscribed": true,
        "subscribed_at": "2026-10-01T10:20:31.000000Z",
        "unsubscribed_at": null,
        "created_at": "2026-10-01T10:20:31.000000Z",
        "updated_at": "2026-10-01T10:20:31.000000Z"
      }
    }
  ],
  "created_at": "2026-10-01T10:20:31.000000Z",
  "updated_at": "2026-10-02T09:03:17.000000Z"
}

Listar contactos

Devuelve una página de contactos, del más reciente al más antiguo.

GET/contacts

Requiere una clave de API full. Usa los mismos parámetros con Exportar contactos para descargar en un archivo todos los contactos que coincidan.

Parámetros de consulta

pageintegerpor defecto: 1
La página que se devuelve.
limitintegerpor defecto: 10
Contactos por página, de 1 a 100.
audience_idstring
Solo los contactos de esta lista (aud_…).
unsubscribedboolean
true o false. Solo los contactos con este estado de baja.
sortstringpor defecto: created_at
email, first_name, last_name, name, audiences, created_at o updated_at.
orderstringpor defecto: desc
asc o desc. En este endpoint, order es la dirección de la ordenación, no la clave por la que se ordena.
matchstringpor defecto: all
all u or. Cómo se combinan los filtros de abajo.

Filtros

Añade filtros con el formato key.condition=value, por ejemplo email.ends_with=@acme.com o custom_fields.plan.exact=pro. Consulta Filtrado.

Clave Tipo Notas
email cadena
first_name cadena
last_name cadena
name cadena El nombre y los apellidos unidos con un espacio.
audiences cadena El primer nombre de lista del contacto por orden alfabético.
unsubscribed booleano
created_at fecha
updated_at fecha
audience_id cadena Solo exact y not_exact. El valor es un ID de lista.
custom_fields.<key> cadena Sustituye <key> por la clave de un campo personalizado. Los valores se comparan como texto.

Los parámetros antiguos filter[audience_id], filter[unsubscribed] y filter[custom_fields][<key>] siguen funcionando.

Devuelve

dataobject[]
Los contactos de esta página, cada uno con audiences en forma de id, name y subscribed. Consulta Obtener un contacto.
total_recordsinteger
El número de contactos que coinciden, en todas las páginas.
next_page_urlstring | null
La ruta de la página siguiente con tus filtros, o null. Consulta Paginación.
previous_page_urlstring | null
La ruta de la página anterior, o null.
GET/contacts
Terminal
curl https://api.emailit.com/v2/contacts \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
Terminal
curl -G https://api.emailit.com/v2/contacts \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  --data-urlencode "audience_id=aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2" \
  --data-urlencode "custom_fields.plan.exact=pro" \
  --data-urlencode "sort=email" \
  --data-urlencode "order=asc" \
  --data-urlencode "limit=100"
JSON
{
  "data": [
    {
      "object": "contact",
      "id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
      "email": "ada@example.com",
      "first_name": "Ada",
      "last_name": "Lovelace",
      "custom_fields": {
        "company": "Analytical Engines",
        "plan": "pro"
      },
      "unsubscribed": false,
      "audiences": [
        {
          "id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
          "name": "Newsletter",
          "subscribed": true
        }
      ],
      "created_at": "2026-10-01T10:20:31.704113Z",
      "updated_at": "2026-10-01T10:20:31.704113Z"
    },
    {
      "object": "contact",
      "id": "con_4KiXIs4xLTcJIAHnKJaLcnMZYh7",
      "email": "grace@example.com",
      "first_name": "Grace",
      "last_name": "Hopper",
      "custom_fields": {},
      "unsubscribed": true,
      "audiences": [],
      "created_at": "2026-09-28T07:55:02.118342Z",
      "updated_at": "2026-09-30T18:11:40.902215Z"
    }
  ],
  "total_records": 2,
  "next_page_url": null,
  "previous_page_url": null
}

Actualizar contactos de forma masiva

Ejecuta una acción sobre hasta 100 contactos en una sola petición.

POST/contacts/bulk

Requiere una clave de API full. Todos los ID deben pertenecer a contactos del espacio de trabajo; si no, no se cambia nada y la respuesta enumera en missing los ID que no existen. Cada contacto dispara los mismos eventos que los endpoints de un solo contacto. Si la lista alcanza el límite de suscriptores de tu plan durante add_to_audience, la petición se detiene con 422, y los contactos procesados hasta ese momento siguen añadidos.

Acción Qué hace
delete Elimina los contactos y sus pertenencias a listas, como Eliminar un contacto.
add_to_audience Añade los contactos a audience_id. Los contactos que ya están en ella no se modifican.
remove_from_audience Quita los contactos de audience_id.
unsubscribe Establece unsubscribed en true, de modo que las campañas omiten a esos contactos.
resubscribe Establece unsubscribed en false.

Parámetros del cuerpo

actionstringobligatorio
delete, add_to_audience, remove_from_audience, unsubscribe o resubscribe.
idsstring[]obligatorio
Los ID de los contactos (con_…), de 1 a 100. Aquí no se aceptan direcciones de email. Los duplicados se ignoran.
audience_idstring
El ID de la lista. Obligatorio para add_to_audience y remove_from_audience.

Devuelve

objectstring
Siempre contact_bulk.
actionstring
La acción que se ejecutó.
processedinteger
Cuántos contactos se procesaron.
idsstring[]
Los ID de los contactos procesados.
POST/contacts/bulk
Terminal
curl -X POST https://api.emailit.com/v2/contacts/bulk \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action": "add_to_audience", "ids": ["con_4K9kQdrXth7am0TPKvPrR5yd2oo", "con_4KiXIs4xLTcJIAHnKJaLcnMZYh7"], "audience_id": "aud_4KOlh9t2uw5od4qypqCtyrZyDq2"}'
JSON
{
  "object": "contact_bulk",
  "action": "add_to_audience",
  "processed": 2,
  "ids": ["con_4K9kQdrXth7am0TPKvPrR5yd2oo", "con_4KiXIs4xLTcJIAHnKJaLcnMZYh7"]
}

Exportar contactos

Descarga los contactos que coinciden en un archivo CSV o XLSX.

GET/contacts/export

Requiere una clave de API full. Acepta los mismos parámetros de búsqueda, filtrado y ordenación que Listar contactos, en la cadena de consulta y sin paginación. POST /contacts/export funciona igual. Una exportación puede incluir hasta 10.000 contactos; si coinciden más, la petición devuelve 422, así que acota los filtros.

Parámetros de consulta

formatstringpor defecto: csv
csv o xlsx.
search, audience_id, unsubscribed, sort, order, match, key.conditionstring
Los mismos parámetros que Listar contactos.

Devuelve

Devuelve el archivo como adjunto: contacts.csv (text/csv; charset=utf-8) o contacts.xlsx. Cada fila es un contacto con estas columnas:

Columna Contenido
email La dirección de email.
first_name, last_name El nombre y los apellidos.
unsubscribed true o false.
audiences Los nombres de las listas del contacto, separados por ; .
Una columna por campo personalizado El valor de cada campo personalizado definido en el espacio de trabajo, con su clave como nombre de columna. Los valores múltiples se unen con ;.
created_at, updated_at Marcas de tiempo en formato ISO 8601.
GET/contacts/export
Terminal
curl "https://api.emailit.com/v2/contacts/export?format=csv&audience_id=aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2" \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -o contacts.csv
Text
email,first_name,last_name,unsubscribed,audiences,company,plan,created_at,updated_at
ada@example.com,Ada,Lovelace,false,Newsletter,Analytical Engines,pro,2026-10-01T10:20:31.000000Z,2026-10-01T10:20:31.000000Z

Eliminar un contacto

Elimina de forma permanente un contacto y todas sus pertenencias a listas.

DELETE/contacts/{id}

Requiere una clave de API full. La eliminación no se puede deshacer. Para dejar de enviar emails a alguien sin perder sus datos, actualiza el contacto con unsubscribed: true o añade la dirección a tus direcciones bloqueadas. Dispara subscriber.deleted por cada pertenencia y, después, contact.deleted.

Parámetros de ruta

idstringobligatorio
El ID del contacto (con_…) o su dirección de email, codificada para URL.

Devuelve

objectstring
Siempre contact.
idstring
El ID del contacto eliminado.
emailstring
La dirección de email del contacto.
deletedboolean
Siempre true.
DELETE/contacts/{id}
Terminal
curl -X DELETE https://api.emailit.com/v2/contacts/con_4Kt4ZXloQR8WGcMsYx8PFCUjokM \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "contact",
  "id": "con_4Kt4ZXloQR8WGcMsYx8PFCUjokM",
  "email": "alan@example.com",
  "deleted": true
}

¿Te ha resultado útil esta página?

Gracias por tu opinión.

Gracias. Leemos todos los mensajes.