POST /api/v1/profile/save/

Guardar perfil

Crea o actualiza un perfil en Adapty Mail. Un perfil contiene el correo electrónico del usuario y los atributos que Adapty Mail utiliza para identificar destinatarios y crear segmentos.

Identifica a cada usuario mediante un external_profile_id estable. Enviar el mismo external_profile_id de nuevo actualiza el perfil existente en lugar de crear un duplicado.

Request body

external_profile_idstringrequired

Identificador estable del usuario, gestionado por tu aplicación o backend. Reutiliza el mismo valor en todas las solicitudes para que Adapty Mail vincule correos electrónicos, clics y compras a un único perfil. Nunca uses un identificador anónimo o por instalación.

external_created_atstringrequired

La fecha y hora de creación del usuario, en formato ISO 8601 (por ejemplo, "2026-06-01T10:30:00Z"). Puedes usar esta fecha en segmentos.

emailstringrequired

La dirección de correo electrónico del usuario. Adapty Mail envía campañas a esta dirección. La dirección es de escritura única: se establece cuando se crea el perfil y las guardadas posteriores no la sobreescriben.

customer_user_idstring

El identificador del usuario en tu propio sistema, si dispones de uno que Adapty también reconoce. Adapty Mail lo utiliza para identificar a una persona que también accede a través del SDK de Adapty, de modo que ambas fuentes compartan un único perfil en lugar de generar un duplicado que envíe correos a la misma persona dos veces.

first_namestring

El nombre del usuario.

last_namestring

Los apellidos del usuario.

genderstring

El género del usuario.

birthdaystring

La fecha de nacimiento del usuario, en formato ISO 8601 (por ejemplo, "1990-05-21").

countrystring

El país del usuario como código ISO 3166-1 alfa-2 de dos letras en mayúsculas (por ejemplo, US).

store_countrystring

La región del store del usuario como código ISO 3166-1 alfa-2 de dos letras en mayúsculas (por ejemplo, US).

custom_attributesobject

Pares clave-valor arbitrarios (valores de tipo cadena o número) para adjuntar al perfil. Úsalos para crear segmentos: por ejemplo, plan, signup_source o trial_days.

device_infoobject
platformstringrequired

La plataforma en la que se encuentra el usuario, por ejemplo, iOS o Android.

devicestring

Modelo del dispositivo, por ejemplo, iPhone15,2.

osstring

Versión del sistema operativo, por ejemplo, 17.5.

localestring

La configuración regional del usuario, por ejemplo, en-US.

timezonestring

La zona horaria del usuario, por ejemplo, America/New_York.

app_versionstring

Versión de tu app que está ejecutando el usuario, por ejemplo, 3.1.0.

Responses

Perfil guardado correctamente. El cuerpo de la respuesta es un objeto vacío.

Schema
object
Example
{}

Error de validación — falta un campo obligatorio o no es válido. field_name indica qué campo.

Schema

Respuesta de error estándar. Cada fallo devuelve un estado 4XX con esta estructura.

errorsarray of object
messagestring

Descripción del error en formato legible para humanos.

error_codestring

Identificador de error legible por máquina.

status_codeinteger

Código de estado HTTP para este error.

field_namestring

El campo de la solicitud que causó el error, o null si el error no está relacionado con un campo específico.

Example
{
  "errors": [
    {
      "message": "Field required",
      "error_code": "base_error",
      "status_code": 400,
      "field_name": "email"
    }
  ]
}

Clave de API secreta ausente o no válida.

Schema

Respuesta de error estándar. Cada fallo devuelve un estado 4XX con esta estructura.

errorsarray of object
messagestring

Descripción del error en formato legible para humanos.

error_codestring

Identificador de error legible por máquina.

status_codeinteger

Código de estado HTTP para este error.

field_namestring

El campo de la solicitud que causó el error, o null si el error no está relacionado con un campo específico.

Example
{
  "errors": [
    {
      "message": "Secret key doesn't exist",
      "error_code": "secret_key_does_not_exist_error",
      "status_code": 403,
      "field_name": null
    }
  ]
}