Сохранить профиль (API)
POST /api/v1/profile/save/

Сохранить профиль

Создаёт или обновляет профиль в Adapty Mail. Профиль содержит email пользователя и атрибуты, которые Adapty Mail использует для идентификации получателей и построения сегментов.

Идентифицируйте каждого пользователя с помощью стабильного external_profile_id. Повторная отправка того же external_profile_id обновляет существующий профиль, а не создаёт дубликат.

Request body

external_profile_idstringrequired

Стабильный идентификатор пользователя, принадлежащий вашему приложению или бэкенду. Используйте одно и то же значение в разных запросах, чтобы Adapty Mail связывал письма, клики и покупки с одним профилем. Никогда не используйте анонимный или привязанный к установке идентификатор.

external_created_atstringrequired

Время создания пользователя в формате ISO 8601 (например, "2026-06-01T10:30:00Z"). Эту дату можно использовать в сегментах.

emailstringrequired

Email-адрес пользователя. Adapty Mail доставляет рассылки на этот адрес.

first_namestring

Имя пользователя.

last_namestring

Фамилия пользователя.

genderstring

Пол пользователя.

birthdaystring

Дата рождения пользователя в формате ISO 8601 (например, "1990-05-21").

countrystring

Страна пользователя в виде двухбуквенного кода ISO 3166-1 alpha-2 в верхнем регистре (например, US).

store_countrystring

Регион стора пользователя в виде двухбуквенного кода ISO 3166-1 alpha-2 в верхнем регистре (например, US).

custom_attributesobject

Произвольные пары ключ-значение (строковые или числовые значения) для добавления к профилю. Используйте их для построения сегментов — например, plan, signup_source или trial_days.

device_infoobject
platformstringrequired

Платформа пользователя, например iOS или Android.

devicestring

Модель устройства, например iPhone15,2.

osstring

Версия операционной системы, например 17.5.

localestring

Локаль пользователя, например en-US.

timezonestring

Часовой пояс пользователя, например America/New_York.

app_versionstring

Версия вашего приложения, которую использует пользователь, например 3.1.0.

Responses

Профиль успешно сохранён. Тело ответа — пустой объект.

Schema
object
Example
{}

Ошибка валидации — обязательное поле отсутствует или содержит недопустимое значение. field_name указывает, какое поле вызвало ошибку.

Schema

Стандартный ответ об ошибке. Каждый сбой возвращает статус 4XX с этой структурой.

errorsarray of object
messagestring

Описание ошибки в читаемом виде.

error_codestring

Машиночитаемый идентификатор ошибки.

status_codeinteger

HTTP-код статуса для данной ошибки.

field_namestring

Поле запроса, вызвавшее ошибку, или null, если ошибка не связана с конкретным полем.

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

Секретный API-ключ отсутствует или недействителен.

Schema

Стандартный ответ об ошибке. Каждый сбой возвращает статус 4XX с этой структурой.

errorsarray of object
messagestring

Описание ошибки в читаемом виде.

error_codestring

Машиночитаемый идентификатор ошибки.

status_codeinteger

HTTP-код статуса для данной ошибки.

field_namestring

Поле запроса, вызвавшее ошибку, или null, если ошибка не связана с конкретным полем.

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