Типы данных

обновленный

Результаты, data для опросов типов data по API, будут возвращать информацию в одном из форматов, описанных ниже.

Результат полезной нагрузки

Атрибуты

Корневая структура данных JSON имеет следующие атрибуты.

название тип описание
data список объектов данных Данные получены из источника.
metadata объект метаданных Метаданные, связанные с data .

Метаданные

Атрибуты

название тип описание
count инт Количество объектов в data .

файл

Тип данных file виден во всем API, так как это ссылка на файл, который можно загрузить из API посредством опроса типа files .

Атрибуты

название тип описание
file_id нить Идентификатор, используемый для запроса файла из API. Значение гарантированно будет уникальным только в пределах текущего источника.
type строка, всегда file Спецификатор типа данных.
name нить Имя файла без расширения.
extension строка, необязательно Расширение файла, если доступно.
mime_type строка, необязательно MIME-тип файла, если он доступен.
size интервал, необязательный Размер файла, если он доступен.
checksum строка, необязательно Контрольная сумма md5, если она доступна.

пример

{
  "file_id": "abc123",
  "type": "file",
  "name": "IMG_0003",
  "extension": "jpg",
  "mime_type": "image/jpeg",
  "size": 2505426,
}

Образ

Расширяет файл .

название тип описание
file_id нить Идентификатор, используемый для запроса файла из API. Значение гарантированно будет уникальным только в пределах текущего источника.
type нить Всегда image .
filename нить Оригинальное имя файла. Расширение в этом имени файла должно соответствовать расширению файла.
file_path нить Путь к файлу относительно других файлов в его службе. Например, путь внутри резервной копии.
width интервал, необязательный Ширина файла, если она доступна.
height интервал, необязательный Высота файла, если она доступна.

пример

{
  "file_id": "abc123",
  "type": "image",
  "filename": "IMG_0003.JPG",
  "file_path": "Media/DCIM/100APPLE/IMG_0003.JPG",
  "name": "IMG_0003",
  "extension": "jpg",
  "mime_type": "image/jpeg",
  "width": 3000,
  "height": 2002,
  "size": 2505426,
}

видео

Расширяет файл .

название тип описание
file_id нить Идентификатор, используемый для запроса файла из API. Значение гарантированно будет уникальным только в пределах текущего источника.
type нить Всегда video .
filename нить Оригинальное имя файла. Расширение в этом имени файла должно соответствовать расширению файла.
file_path нить Путь к файлу относительно других файлов в его службе. Например, путь внутри резервной копии.
width интервал, необязательный Ширина файла, если она доступна.
height интервал, необязательный Высота файла, если она доступна.
duration интервал, необязательный Продолжительность видео, если доступно.

пример

{
  "file_id": "abc123",
  "type": "video",
  "filename": "IMG_0009.MOV",
  "file_path": "Media/DCIM/100APPLE/IMG_0009.MOV",
  "name": "IMG_0009",
  "extension": "mov",
  "mime_type": "video/quicktime",
  "width": 1920,
  "height": 1080,
  "size": 5421796,
  "duration": 9.135623
}

видео

Расширяет файл .

название тип описание
file_id нить Идентификатор, используемый для запроса файла из API. Значение гарантированно будет уникальным только в пределах текущего источника.
type нить Всегда audio .
filename нить Оригинальное имя файла. Расширение в этом имени файла должно соответствовать расширению файла.
file_path нить Путь к файлу относительно других файлов в его службе. Например, путь внутри резервной копии.
transcription строка, необязательно Текстовая транскрипция аудиосообщения, если таковая имеется.

пример

{
  "id": "abc123",
  "type": "audio",
  "filename": "Audio Message.caf",
  "file_path": "Library/SMS/Attachments/.../Audio Message.caf",
  "transcription": "Test voice message",
}

Аудио транскрипции

Транскрипция аудиосообщений, если она доступна в данных резервной копии, возвращается как часть audio . Это доступно для аудиосообщений, созданных в сообщениях iOS, начиная с iOS 17.

Сообщение

Атрибуты

название тип описание
id нить Уникальный идентификатор сообщения. Используйте это для дедупликации возвращаемых данных, если это необходимо.
data_type строка, всегда message Спецификатор типа данных.
type строка, необязательно Используется, когда служба обмена сообщениями обрабатывает различные типы сообщений. Например, SMS и iMessage в случае сообщений iOS.
handle нить Вторая сторона разговора, часто уникальный идентификатор приложения для обмена сообщениями.
handle_name строка, необязательно Если возможно, отображаемое имя дескриптора.
contact вложенный контакт, необязательный Объект, ссылающийся на контакт iOS второй стороны разговора.
conversation_id нить Идентификатор группировки сообщений по разговору.
from_me логический Было ли сообщение отправлено или получено.
user строка, необязательно Пользователь приложения для обмена сообщениями в случае, когда несколько пользователей/учетных записей могут использовать приложение для обмена сообщениями с устройства.
text нить Тело сообщения.
edits список правок, по желанию Список изменений содержимого сообщений для приложений, в которых редактирование сообщений поддерживается, а история сохраняется в резервных копиях.
translation объект перевода, необязательный Данные о переводе, если сообщение было переведено с помощью встроенной функции перевода iOS.
attachments список файлов, необязательный Массив значений file_id , которые можно использовать с методом download_file . Если сообщение не содержит вложения, возвращается пустой массив.
group строка, необязательно Название группы на момент отправки сообщения .
group_id строка, необязательно Уникальный идентификатор группы в контексте этого приложения. Это может быть не целое число, и, если оно присутствует, предоставляет только информацию в дополнение к conversation_id .
group_handles список строк, необязательный Это значение равно null для сообщений от человека к человеку, а в групповых беседах представляет собой массив строк, представляющих номера телефонов или адреса электронной почты iMessage.
group_contacts строка, необязательно Массив объектов, ссылающихся на контакты iOS в группе.
deleted логический, необязательный Логическое значение, указывающее, было ли сообщение удалено.
marked_unread логическое значение, необязательно Пометил ли пользователь сообщение как непрочитанное, если оно доступно.
date дата и время Когда сообщение было отправлено или получено.
date_read дата-время, необязательно Когда сообщение было впервые прочитано, если доступно.
date_edited дата/время, необязательно Когда сообщение редактировалось в последний раз, если применимо.
date_deleted дата/время, необязательно Когда сообщение было удалено, если применимо.

атрибуты translation

название тип описание
translated_text нить Переведённый текст.
source_language нить Исходный языковой код (например, en_US ).
target_language нить Язык, на который было переведено сообщение (например, es_ES ).

пример

{
  "id": "a1b2c3d4",
  "data_type": "message",
  "type": "SMS",
  "handle": "reincubate",
  "handle_name": "Reincubate",
  "conversation_id": "w6x7y8z9",
  "from_me": false,
  "text": "Hi from London!",
  "edits": [{
    "text": "Hi!",
    "date": "2023-06-27T10:20:00.000000Z"
  }, {
    "text": "Hi from London!",
    "date": "2023-06-27T10:21:00.000000Z"
  }],
  "attachments": [],
  "group_handles": [
    "+441234567890",
    "renate@reincubate.com"
  ],
  "deleted": false,
  "date": "2023-06-27T10:20:00.000000Z",
  "date_edited": "2023-06-27T10:21:00.000000Z"
}

Дескрипторы сообщений и разговоры

Извлекатели данных API поддерживают исторически широкий диапазон исходных данных и будут пытаться перестроить данные, которые со временем стали фрагментированы из-за обновлений приложений и iOS. Поскольку приложения для обмена сообщениями добавляют новые функции, они не всегда заботятся о том, чтобы базовые данные были идеально перенесены в новую структуру. Поэтому API должен выводить определенную информацию, чтобы возвращать согласованные данные.

Один из таких случаев относится к дескрипторам и информации о беседе, возвращаемой из приложений для обмена сообщениями, и, в частности, из модуля данных ios_messages.messages . API заполнит conversation_id либо числовым идентификатором, если такая информация существует или может быть выведена, либо откатом, чтобы использовать дескриптор стороннего поставщика для установки conversation_id . Поэтому рекомендуется использовать это поле для связывания сообщений из одного чата.

Отредактированные и удаленные сообщения

Информация об отредактированных и удаленных сообщениях доступна для ios_messages.messages для резервных копий, сделанных с устройств под управлением iOS 16 и более поздних версий. Ожидается, что информация об удаленных сообщениях будет доступна только тогда, когда сообщение еще можно восстановить на момент создания резервной копии, что, по словам Apple, происходит через 30–40 дней после удаления .

Для отредактированных сообщений история изменений возвращается в атрибуте edits . Каждое редактирование включает состояние text и время, когда редактирование было зафиксировано. text атрибут самого сообщения всегда будет таким же, как и у окончательного редактирования.

Переведённые сообщения

Когда пользователь переводит входящее сообщение с помощью встроенной функции перевода iOS (доступной начиная с iOS 26), данные перевода сохраняются в резервной копии и возвращаются в атрибуте translation . Это включает в себя:

  • Переведённый текст
  • Исходный язык оригинального сообщения
  • Целевой язык, на который было переведено сообщение.

Коды языков соответствуют стандартному формату локали (например, en_US для американского английского, es_ES для испанского).

Обратите внимание, что данные перевода доступны только для сообщений, которые были явно переведены пользователем на устройстве. Исходный текст сообщения всегда возвращается в атрибуте text .

разговор

Поток беседы.

название тип описание
id нить Идентификатор элемента.
data_type строка, всегда conversation Идентификатор типа данных элемента.
group необязательная строка Название группы.
members список contact Участники беседы.

контакт

атрибуты contact

название тип описание
id нить Идентификатор элемента.
data_type строка, всегда contact Идентификатор типа данных элемента.
name необязательная строка Полное имя контакта.
first_name необязательная строка Имя контакта.
middle_name необязательная строка Отчество контакта.
last_name необязательная строка Фамилия контакта.
prefix необязательная строка Префикс имени контакта.
suffix необязательная строка Суффикс имени контакта.
nickname необязательная строка Никнейм контакта.
records список элементов contact.record Записи контактов, связанные с контактом.
organisation необязательная строка Название организации контакта.
department необязательная строка Отдел контактного лица в организации.
jobtitle необязательная строка Должность контактного лица в организации.
birthday необязательная дата День рождения контакта.

атрибут contact.record

Существует 5 типов записей записей контактов: Phone , Email , URL , Social Address и Address . Они соответствуют номеру телефона, адресу электронной почты, URL-адресу веб-сайта, идентификатору учетной записи в социальной сети и почтовому адресу соответственно.

Первые 4 имеют одинаковые атрибуты:

название тип описание
type нить Один из: Phone , Email , URL , Social сети .
name необязательная строка Метка, связанная с записью.
value нить Значение записи.

Тип записи контакта « Address » имеет дополнительные поля адреса:

название тип описание
type строка, всегда Address Запись номера телефона.
name необязательная строка Метка, связанная с номером.
CountryCode необязательная строка Код страны.
Country необязательная строка Название страны.
ZIP необязательная строка Почтовый индекс.
State необязательная строка Название штата или аббревиатура.
City необязательная строка Название города.
Municipality необязательная строка Название муниципалитета.
SubLocality необязательная строка Название района или района.
Street необязательная строка Имя адреса улицы.

Образец данных

{
  "id": "2cf6a837304d6614",
  "data_type": "contact",
  "first_name": "John",
  "middle_name": "'Gala'",
  "last_name": "Appleseed",
  "prefix": "Mr.",
  "suffix": "Jr.",
  "nickname": "John'o",
  "records": [
    {
      "type": "Phone",
      "name": "MAIN",
      "value": "1-800-MY-APPLE"
    },
    {
      "type": "Phone",
      "name": "UK",
      "value": "0800 039 1010"
    },
    {
      "type": "URL",
      "name": "HOMEPAGE",
      "value": "http://www.apple.com"
    },
    {
      "type": "URL",
      "name": "HOMEPAGE",
      "value": "http://www.apple.com/uk/"
    },
    {
      "City": "Cupertino",
      "State": "CA",
      "ZIP": "95014",
      "name": "WORK",
      "CountryCode": "US",
      "Country": "United States",
      "Street": "1 Infinite Loop",
      "type": "Address",
      "SubLocality": null,
      "Municipality": null
    }
  ],
  "organisation": "Apple Inc.",
  "department": "Marketing",
  "jobtitle": "VP Juicing",
  "birthday": "1976-04-01"
}

Вызов

атрибуты call

название тип описание
id нить Идентификатор элемента.
data_type строка, всегда call Идентификатор типа данных элемента.
call_type нить Один из: Phone , FaceTime Video FaceTime Audio .
address нить Второй участник звонка. Это может быть номер телефона, Apple ID или другой идентификатор. В групповых звонках это будет идентификатор, с которого начался звонок.
participants необязательный список объектов участников Для групповых звонков — список всех участников звонка.
duration плавать Продолжительность вызова.
answered логический Был ли ответ на звонок.
from_me логический Был ли звонок исходящим или входящим.
video буль Независимо от того, был ли это видеозвонок или нет.
date дата и время Когда был сделан звонок.

атрибуты call.participant

название тип описание
handle нить Идентификатор, связанный с участником, например, номер телефона, идентификатор WhatsApp, Apple ID и т. д.
name необязательная строка Название связано с рукояткой.
number необязательная строка Номер телефона, связанный с этим именем пользователя.
answered буль Ответил ли участник на звонок или нет.

Образец данных

{
  "id": "24116c5b16b85217",
  "data_type": "call",
  "call_type": "Phone",
  "address": "07123456789",
  "participants": [{
    "handle": "01234567890",
    "number": "01234567890",
    "answered": true
  }, {
    "handle": "09876543210",
    "number": "09876543210",
    "answered": false
  }],
  "duration": 5.131359,
  "answered": true,
  "from_me": true,
  "video": false,
  "date": "2015-07-20 10:23:27.538011"
}

Событие

атрибуты event

название тип описание
id нить Идентификатор элемента.
data_type строка, всегда event Идентификатор типа данных элемента.
unique_identifier необязательная строка UID элемента для дедупликации в нескольких источниках данных о событиях.
calendar необязательная строка Название календаря.
calendar_uid необязательная строка UID календаря.
calendar_store необязательная строка Тип хранилища календаря, т. е. iCloud , по Default .
summary необязательная строка Краткое описание или название события.
description необязательная строка Описание события.
start_date необязательная дата и время Когда событие начнется.
end_date необязательная дата и время Когда событие закончится.
start_time_zone необязательная строка Часовой пояс start_date .
end_time_zone необязательная строка Timeone из end_date .
all_day логический Продлится ли мероприятие целый день.
travel_time необязательная продолжительность Продолжительность события в пути.
recurrence необязательный вложенный event.recurrence Настройки повторения события.
location необязательная строка Где происходит событие.
start_location необязательная строка Откуда начинается событие.
attendees необязательный список строк Имена участников мероприятия.
attached_url необязательная строка URL-адрес, связанный с событием.
creation_date необязательная дата и время Когда событие было создано. Не задано, если запись календаря по умолчанию, например, праздничные дни.

атрибуты event.recurrence

название тип описание
interval целое число Количество repeat для повторения, т.е. 1 Yearly (раз в 1 год).
repeat нить Один из: OneTime , Daily , Weekly , Monthly , Yearly .
repeat_end_date необязательная дата и время Когда перестать повторяться.

Образец данных

{
  "id": "3",
  "unique_identifier": "f5fcf872-34f6-3f60-ba03-74d5a7a3bbbb",
  "calendar": "Home",
  "calendar_id": "477a2001537fe178d6b77cdceb8bac2e",
  "calendar_store": "Default",
  "summary": "Christmas Day",
  "description": "Bank holiday in the UK",
  "start_date": "2017-12-25T00:00:00.000000",
  "end_date": "2017-12-25T23:59:59.000000",
  "start_time_zone": None,
  "end_time_zone": None,
  "all_day": True,
  "travel_time": None,
  "recurrence": {
    "interval": 1,
    "repeat": "Yearly",
    "repeat_end_date": None,
    "specifier": ""
  },
  "location": None,
  "start_location": None,
  "attendees": ["John Appleseed"],
  "attached_url": None,
  "creation_date": None
}

Запись

{
  "title": "Monday meeting:",
  "note": "Monday meeting:\n Discuss X,\n discuss Y.",
  "summary": null,
  "folder": "icloud",
  "sub_folder": "work",
  "attachments": [
    {
      "type": "image",
      "file_id": "8e22cf6e524357b4eb3da775d193072ebba9543f",
      "file_path": "Media/80DDDEAD-B33F-37B2-7219432C0359/Image.jpeg"
    }
  ],
  "creation_date": "2016-06-06 13:23:20.000000",
  "last_modified": "2016-06-07 15:21:25.000000"
}

Посещение

Запись о посещении веб-сайта.

Атрибуты

название тип описание
data_type строка, всегда visit Идентификатор типа данных элемента.
url нить URL посещенной страницы.
title нить Заголовок посещенной страницы.
date_created дата и время Когда визит состоялся.
{
  "data_type": "visit",
  "url": "https://reincubate.com/",
  "title": "Reincubate: the app data company",
  "date_created": "2020-01-01T00:00:00.000000Z"
}

печенье

HTTP-cookie.

Атрибуты

название тип описание
data_type строка, всегда cookie Идентификатор типа данных элемента.
name нить Имя файла cookie.
value нить Значение файла cookie.
domain нить Спецификатор домена файла cookie.
path нить Спецификатор пути файла cookie.
flags нить Любые флаги, установленные для файла cookie.
creation_date дата и время Когда файл cookie был создан.
expiry_date дата и время Когда срок действия файла cookie истекает.
{
  "data_type": "cookie",
  "name": "sample_cookies",
  "value": "sample_value",
  "domain": "reincubate.com",
  "path": "/",
  "flags": "",
  "creation_date": "2020-01-01T00:00:00.000000Z",
  "expiry_date": "2020-01-01T00:00:00.000000Z"
}

Расположение

Атрибуты данных

название тип описание
data_type строка, всегда location Идентификатор типа данных.
latitude плавать Координата широты местоположения.
longitude плавать Координата долготы местоположения.
altitude плавать Координата высоты местоположения.
horizontal_accuracy плавать Горизонтальная точность измерения.
vertical_accuracy плавать Вертикальная точность измерения.
position_type нить Идентификатор используемого метода измерения.
date_created дата и время Когда было произведено измерение.

Образец данных

{
  "data_type": "location",
  "latitude": 51.507452392689146,
  "longitude": -0.07398372304584414,
  "altitude": 0.0,
  "horizontal_accuracy": 65.0,
  "vertical_accuracy": 0.0,
  "positioning_type": "Wifi",
  "date_created": "2020-01-01T00:00:00.000000Z"
}

Голосовая почта

Представляет собой голосовое сообщение с устройства.

Атрибуты

название тип описание
rowid инт Уникальный идентификатор голосового сообщения в базе данных.
filename нить Название аудиофайла, содержащего голосовое сообщение.
file_id нить Идентификатор, используемый для запроса аудиофайла у API.
file_path нить Путь к файлу голосовой почты относительно резервной копии.
date нить Дата и время получения голосового сообщения (формат ISO 8601).
token нить Статус голосовой почты (например, "Завершено").
sender нить Номер телефона звонившего, оставившего голосовое сообщение.
callback_num нить Номер телефона для обратного звонка, связанный с голосовой почтой.
duration инт Продолжительность голосового сообщения в секундах.
expiration строка, необязательный Срок действия голосового сообщения (формат ISO 8601).
trashed_date строка или целое число Дата перемещения голосового сообщения в корзину или 0 , если сообщение не было перемещено в корзину.
flags инт Системные флаги, связанные с голосовой почтой.
sim_slot строка, необязательный Идентификатор слота SIM-карты для устройств с несколькими SIM-картами (например, "A-98ACC814-BDB0-51F8-A098-CB63A6A60E9F"). Для устройств с одной SIM-картой — null , или используется слот SIM-карты по умолчанию.

пример

{
  "rowid": 50,
  "filename": "50.amr",
  "file_id": "4ff0327d0148e7fa175a12f5a25ed7148a29de6d",
  "file_path": "Library/Voicemail/50.amr",
  "date": "2024-01-15 14:30:00.000000",
  "token": "Complete",
  "sender": "+123456789",
  "callback_num": "+123456789",
  "duration": 45,
  "expiration": "2024-02-14 14:30:00.000000",
  "trashed_date": 0,
  "flags": 3,
  "sim_slot": null
}

Пример (устройство с несколькими SIM-картами)

{
  "rowid": 28,
  "filename": "28.amr",
  "file_id": "a1b2c3d4e5f6...",
  "file_path": "Library/Voicemail/A-98ACC814-BDB0-51F8-A098-CB63A6A60E9F/28.amr",
  "date": "2024-01-15 14:30:00.000000",
  "token": "Complete",
  "sender": "+123456789",
  "callback_num": "+123456789",
  "duration": 30,
  "expiration": "2024-02-14 14:30:00.000000",
  "trashed_date": 0,
  "flags": 3,
  "sim_slot": "A-98ACC814-BDB0-51F8-A098-CB63A6A60E9F"
}

Как мы можем помочь?

Наша служба поддержки здесь, чтобы помочь!

Наш офис работает с понедельника по пятницу с 9:00 до 17:00 по Гринвичу. Время в настоящее время 7:41 ПП с GMT.

Мы стремимся отвечать на все сообщения в течение одного рабочего дня.

© 2008 - 2026 Reincubate Ltd. Все права защищены. Зарегистрировано в Англии и Уэльсе #5189175, VAT GB151788978. Reincubate® и Camo® являются зарегистрированными товарными знаками. Политика конфиденциальности & условия.

Помогите