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

Адрес электронной почты пользователя. Adapty Mail доставляет кампании на этот адрес. Адрес доступен только для записи один раз: он устанавливается при создании профиля и последующие сохранения не перезаписывают его.

customer_user_idstring

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

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
    }
  ]
}