Zum Hauptinhalt springen

Data types

Veröffentlicht am 27. Juni 2019· Aktualisiert am 16. Oktober 2026

Cover image for: Data types

Results returned for data type polls against the API will return information in one of the formats outlined below.

Result payload

Attributes

The root structure of the data JSON payload has the following attributes.

nametypedescription
datalist of data objectsThe data retrieved from the source.
metadatametadata objectMetadata related to data.

Metadata

Attributes

nametypedescription
countintThe number of objects in data.

File

The file data type is seen throughout the API, as it is a reference to a file that can be downloaded from the API through a files type poll.

Attributes

nametypedescription
file_idstringIdentifier used to request the file from the API. The value is only guaranteed to be unique in the scope of the current source.
typestring, always fileData type specifier.
namestringThe name of the file, excluding the extension.
extensionstring, optionalThe extension of the file if available.
mime_typestring, optionalThe MIME type of the file if available.
sizeint, optionalThe size of the file if available.
checksumstring, optionalThe md5 checksum if available.

Example

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

Image

Extends file.

nametypedescription
file_idstringIdentifier used to request the file from the API. The value is only guaranteed to be unique in the scope of the current source.
typestringAlways image.
filenamestringThe original file name of the file. The extension in this filename need to match the extension of the file.
file_pathstringThe path of the file relative to other files within its service. For example, the path within a backup.
widthint, optionalThe width of the file if available.
heightint, optionalThe height of the file if available.

Example

{
  "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,
}

Video

Extends file.

nametypedescription
file_idstringIdentifier used to request the file from the API. The value is only guaranteed to be unique in the scope of the current source.
typestringAlways video.
filenamestringThe original file name of the file. The extension in this filename need to match the extension of the file.
file_pathstringThe path of the file relative to other files within its service. For example, the path within a backup.
widthint, optionalThe width of the file if available.
heightint, optionalThe height of the file if available.
durationint, optionalThe length of the video if available.

Example

{
  "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
}

Video

Extends file.

nametypedescription
file_idstringIdentifier used to request the file from the API. The value is only guaranteed to be unique in the scope of the current source.
typestringAlways audio.
filenamestringThe original file name of the file. The extension in this filename need to match the extension of the file.
file_pathstringThe path of the file relative to other files within its service. For example, the path within a backup.
transcriptionstring, optionalThe text transcription for an audio message, if available.

Example

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

Audio transcriptions

When available in a backup's data, the transcription of audio messages is returned as part of the audio object. This is available on audio messages made in iOS Messages since iOS 17.

Message

Attributes

nametypedescription
idstringA unique identifier for the message. Use this to deduplicate returned data if necessary.
data_typestring, always messageData type specifier.
typestring, optionalUsed when a messaging service handles a variety of message types. For example SMS and iMessage in the case of iOS Messages.
handlestringThe 2nd party of the conversation, often an identifier unique to the messaging app.
handle_namestring, optionalWhere available, a display name for the handle.
contactnested contact, optionalAn object referencing an iOS contact of the 2nd party of the conversation.
conversation_idstringIdentifier grouping messages by conversation.
from_meboolWhether the message was sent or received.
userstring, optionalThe user of the messaging app in the case where multiple users/accounts may be using a messaging app from the device.
textstringThe body of the message.
message_typestring, optionalClassification of the message (e.g. text, attachment, group_event, phone_number_change, poll, calendar_event). Currently present on WhatsApp messages. Unrecognised database values are passed through as raw integers.
group_event_typestring, optionalSub-classification for group management events. Only present when message_type is group_event. See the WhatsApp group event types section below for the full list of values.
group_event_participantslist of strings, optionalThe people a group event was about, such as those added by participant_added and participants_batch_added. Only present on those events.
group_event_descriptionstring, optionalA readable sentence describing a group event, for events whose text is only identifiers or codes. Composed by the API, not stored by the app. See WhatsApp group event types.
editslist of edits, optionalA list of message content edits, for apps where message editing is supported and the history persisted in backups.
translationtranslation object, optionalTranslation data if the message was translated using iOS's built-in translation feature.
attachmentslist of files, optionalAn array of file_id values which can be used with the download_file method. If the message includes no attachment, an empty array is returned.
groupstring, optionalThe name of the group at the time the message was sent.
group_idstring, optionalThe unique identifier for the group within the context of that app. This may not be an integer, and if present, only provides information in addition to conversation_id.
group_handleslist of strings, optionalThis value is null for person-to-person messages, and in group conversations is an array of strings representing phone numbers or iMessage email addresses.
group_contactsstring, optionalAn array of objects referencing iOS contacts in the group.
deletedbool, optionalA boolean value to indicate whether the message had been deleted.
marked_unreadbool, optionalWhether the user marked the message as unread, if available.
datedatetimeWhen the message was sent or received.
date_readdatetime, optionalWhen a message was first read, if available.
date_editeddatetime, optionalWhen a message was last edited, if applicable.
date_deleteddatetime, optionalWhen a message was deleted, if applicable.
linestring, optionalThe device's own phone number or iMessage address the message was sent or received on. Currently present on iOS Messages from iOS 11.3.
line_idstring, optionalOn dual-SIM devices, the identifier of the SIM line the message went over. Use with the lines filter.
line_labelstring, optionalThe name the user gave the SIM line, such as Work, if any.
orphanedbool, optionalPresent and true when the message isn't linked to a conversation in the source data, and its conversation_id was inferred. See message handles and conversations.
conversation_id_sourcestring, optionalPresent on orphaned messages. How conversation_id was inferred.

translation attributes

nametypedescription
translated_textstringThe translated text content.
source_languagestringThe original language code (e.g., en_US).
target_languagestringThe language the message was translated to (e.g., es_ES).

Example

{
  "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"
}

Message handles and conversations

The API's data extractors support a historically broad range of source data, and will attempt to realign data that has become fragmented through app and iOS updates over time. As messaging apps add new features, they are not always careful to ensure the underlying data is migrated perfectly to the new structure. Therefore, the API must infer certain information in order to return consistent data.

One such case is for handles and conversation information returned from messaging apps, and most specifically the ios_messages.messages data module. The API will populate conversation_id with either a numeric identifier, if such information exists or can be inferred, or fallback to use the second-party's handle to set conversation_id. Therefore, using this field to tie together messages from the same chat is recommended.

When an iOS Messages message isn't linked to a conversation in the source data, it carries orphaned: true and a conversation_id_source saying how its conversation_id was inferred. Messages linked to a conversation carry neither attribute.

conversation_id_sourcedescription
inferred_handle_chatThe message was matched to the only one-to-one conversation with its handle. conversation_id is that conversation's ID.
destination_caller_idNo conversation could be matched, so conversation_id is the address the message was sent to.
handleNo conversation could be matched, so conversation_id is the message's handle.
noneNothing could be resolved. conversation_id is null.

Recovered deleted messages are often orphaned, as their link to a conversation is usually lost with the deletion.

Edited and deleted messages

Information on edited and deleted messages is available for ios_messages.messages for backups made from devices running iOS 16 and later. For deleted messages, information is only expected to be available while the message is still recoverable at the point the backup was made, which Apple say is 30–40 days after deletion.

For edited messages, the history of edits is returned in the edits attribute. Each edit includes the state of text and the time when the edit was committed. The text attribute of the message itself will always be the same as that of the final edit.

Translated messages

When a user translates an incoming message using iOS's built-in translation feature (available since iOS 26), the translation data is preserved in the backup and returned in the translation attribute. This includes:

  • The translated text content
  • The source language of the original message
  • The target language the message was translated into

Language codes follow the standard locale format (e.g., en_US for US English, es_ES for Spanish).

Note that translation data is only available for messages that were explicitly translated by the user on the device. The original message text is always returned in the text attribute.

WhatsApp message and group event types

WhatsApp messages include a message_type field classifying the message:

message_typeDescription
textPlain text message.
attachmentImage, video, audio, vcard, location, link, document, or gif. The specific type is in attachments[].type.
group_eventGroup management event (creation, name change, member add/remove, etc.).
phone_number_changeUser changed their phone number.
pollPoll (content not yet extracted into text).
calendar_eventCalendar event (content not yet extracted into text).

When message_type is group_event, the group_event_type field provides sub-classification:

group_event_typeDescription
group_createdA new group was created.
icon_changedGroup icon was changed.
participant_addedA participant was added. handle is the admin who added them, and group_event_participants lists the person added.
participant_removedA participant was removed. Not currently produced.
participant_promotedA participant was promoted to admin.
participant_change_numberA participant changed their phone number.
subject_changedGroup name/subject was changed.
description_changedGroup or community description was changed. Not currently produced.
community_subgroup_linkedA subgroup was linked to a community.
community_subgroup_unlinkedA subgroup was unlinked from a community.
group_membership_permission_changedWho can add members was changed.
participants_batch_addedMultiple participants were added at once. handle is the admin who added them, and group_event_participants lists the people added.
community_subject_changedCommunity name was changed.
community_description_changedCommunity description was changed.

For most group events, text contains a human-readable value extracted from the event metadata. For example, a subject_changed event has the new group name as its text, and a community_subgroup_linked event has the linked subgroup's name. Unrecognised event types are passed through as raw integers.

For some events, WhatsApp stores only identifiers or codes, and text keeps them as stored. For example, a participant_added event's text is the admin's WhatsApp ID. These events also carry a group_event_description, a sentence composed from the event's fields:

group_event_typeExample group_event_description
participant_addedIphone 6 (40743660246@s.whatsapp.net) added Luci (40726367814@s.whatsapp.net)
participants_batch_addedIphone 6 (40743660246@s.whatsapp.net) added 40711111111@s.whatsapp.net and 40722222222@s.whatsapp.net
icon_changedLuci (40726367814@s.whatsapp.net) changed the group icon, or The group icon was changed when it isn't known who changed it
group_membership_permission_changedIphone 6 (40743660246@s.whatsapp.net) changed the group so only admins can add members
community_subject_changed61607749136585@lid changed the community name from "Old Name" to "New Name"

Each person is written as their name followed by their WhatsApp ID in brackets, or as the bare ID when WhatsApp has no name for them. The ID always matches handle or an entry in group_event_participants, so people who share a name can still be told apart. The device's owner appears as you, or You when they performed the event. Names are those WhatsApp held at the time of extraction.

A WhatsApp sender or group member identified only by an unresolved LID (an ID ending @lid, which isn't a phone number) has no phone number in contact or group_contacts.

Conversation

A conversation thread.

nametypedescription
idstringItem ID.
data_typestring, always conversationItem data type ID.
groupoptional stringName of group.
memberslist of contact itemsParticipants in the conversation.

Contact

contact attributes

nametypedescription
idstringItem ID.
data_typestring, always contactItem data type ID.
nameoptional stringThe contact's full name.
first_nameoptional stringThe contact's first name.
middle_nameoptional stringThe contact's middle name.
last_nameoptional stringThe contact's last name.
prefixoptional stringThe contact's name prefix.
suffixoptional stringThe contact's name suffix.
nicknameoptional stringThe contact's nickname.
recordslist of contact.record itemsContact records associated with the contact.
organisationoptional stringThe contact's organisation name.
departmentoptional stringThe contact's department within the organisation.
jobtitleoptional stringThe contact's job title within the organisation.
birthdayoptional dateThe contact's birthday.

contact.record attribute

There are 5 types of contact record items: Phone, Email, URL, Social, and Address. They correspond to a phone number, email address, website URL, social media account handle, and street address, respectively.

The first 4 have the same attributes:

nametypedescription
typestringOne of: Phone, Email, URL, Social.
nameoptional stringThe label associated with the record.
valuestringThe value of the record.

The Address contact record type has additional address fields:

nametypedescription
typestring, always AddressA phone number record.
nameoptional stringThe label associated with the number.
CountryCodeoptional stringA country code.
Countryoptional stringA country name.
ZIPoptional stringA zip or postal code.
Stateoptional stringA state name or abbreviation.
Cityoptional stringA city name.
Municipalityoptional stringA municipality name.
SubLocalityoptional stringA neighbourhood or area name.
Streetoptional stringA street address name.

Sample data

{
  "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

call attributes

nametypedescription
idstringItem ID.
data_typestring, always callItem data type ID.
call_typestringOne of: Phone, FaceTime Video, FaceTime Audio.
addressstringThe second party of the call. Could be a phone number, Apple ID, or other identifier. For group calls, it will relate to the handle that started the call.
participantsoptional list of participant objectsFor group calls, a list of all call participants.
durationfloatThe duration of the call.
answeredboolWhether the call was answered.
from_meboolWhether the call was outgoing or incoming.
videoboolWhether the call was a video call or not.
datedatetimeWhen the call was made.
line_idoptional stringThe identifier of the SIM line the call went over. Currently present on iOS Phone calls from iOS 14. Use with the lines filter.
lineoptional stringThe phone number of that line, where the device has it.
line_labeloptional stringThe name the user gave the line, such as Work, if any.

call.participant attributes

nametypedescription
handlestringThe handle associated with the participant, e.g. phone number, WhatsApp ID, Apple ID, etc.
nameoptional stringThe name related to the handle.
numberoptional stringThe phone number related to the handle.
answeredboolWhether or not the participant answered the call.

Sample data

{
  "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

event attributes

nametypedescription
idstringItem ID.
data_typestring, always eventItem data type ID.
unique_identifieroptional stringItem UID for deduplicating across multiple event data sources.
calendaroptional stringCalendar name.
calendar_uidoptional stringCalendar UID.
calendar_storeoptional stringCalendar store type, i.e. iCloud, Default.
summaryoptional stringThe event summary or title.
descriptionoptional stringThe event description.
start_dateoptional datetimeWhen the event begins.
end_dateoptional datetimeWhen the event finishes.
start_time_zoneoptional stringThe timezone of start_date.
end_time_zoneoptional stringThe timeone of end_date.
all_daybooleanWhether the event lasts an entire day.
travel_timeoptional durationThe event's travel time duration.
recurrenceoptional nested event.recurrenceThe event's recurrence settings.
locationoptional stringWhere the event is taking place.
start_locationoptional stringWhere the event is starting from.
attendeesoptional list of stringsNames of event attendees.
attached_urloptional stringA URL associated with the event.
creation_dateoptional datetimeWhen the event was created. Not set if default calendar entry, such as public holidays.

event.recurrence attributes

nametypedescription
intervalintegerThe count of repeat to recurr at, i.e. 1 Yearly (once every 1 year).
repeatstringOne of: OneTime, Daily, Weekly, Monthly, Yearly.
repeat_end_dateoptional datetimeWhen to stop recurring.

Sample data

{
  "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
}

Note

{
  "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"
}

Visit

A record of a website page visit.

Attributes

nametypedescription
data_typestring, always visitItem data type ID.
urlstringThe URL of the page visited.
titlestringThe visited page's title.
date_createddatetimeWhen the visit occurred.
{
  "data_type": "visit",
  "url": "https://reincubate.com/",
  "title": "Reincubate: the app data company",
  "date_created": "2020-01-01T00:00:00.000000Z"
}

A HTTP cookie.

Attributes

nametypedescription
data_typestring, always cookieItem data type ID.
namestringThe cookie's name.
valuestringThe cookie's value.
domainstringThe cookie's domain specifier.
pathstringThe cookie's path specifier.
flagsstringAny flags set on the cookie.
creation_datedatetimeWhen the cookie was created.
expiry_datedatetimeWhen the cookie expires.
{
  "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"
}

Location

Data attributes

nametypedescription
data_typestring, always locationA data type identifier.
latitudefloatThe location's latitude coordinate.
longitudefloatThe location's longitude coordinate.
altitudefloatThe location's altitude coordinate.
horizontal_accuracyfloatThe horizontal accuracy for the measurement.
vertical_accuracyfloatThe vertical accuracy for the measurement.
position_typestringIdentifier for the measurement method used.
date_createddatetimeWhen the measurement was made.

Sample data

{
  "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"
}

Voicemail

Represents a voicemail message from the device.

Attributes

nametypedescription
rowidintThe unique identifier for the voicemail within its database.
filenamestringThe name of the audio file containing the voicemail.
file_idstringIdentifier used to request the audio file from the API.
file_pathstringThe path of the voicemail file relative to the backup.
datestringThe date and time the voicemail was received (ISO 8601 format).
tokenstringStatus token for the voicemail (e.g., "Complete").
senderstringThe phone number of the caller who left the voicemail.
callback_numstringThe callback number associated with the voicemail.
durationintThe duration of the voicemail in seconds.
expirationstring, optionalThe expiration date of the voicemail (ISO 8601 format).
trashed_datestring or intThe date the voicemail was moved to trash, or 0 if not trashed.
flagsintSystem flags associated with the voicemail.
sim_slotstring, optionalThe SIM slot identifier for multi-SIM devices (e.g., "A-98ACC814-BDB0-51F8-A098-CB63A6A60E9F"). null for single-SIM devices or the default SIM slot.
transcriptstring, optionalThe text transcript of the voicemail, if available. Transcripts are generated by iOS for visual voicemail.

Example

{
  "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,
  "transcript": "Hi, this is John. Please give me a call back when you get a chance. Thanks, bye."
}

Example (Multi-SIM device)

{
  "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"
}

Verwandte Artikel

Brauchst du Hilfe?

Wir bemühen uns, alle Nachrichten innerhalb eines Werktags zu beantworten.

support@reincubate.com
Logo des King's Award for Enterprise

King's Award for Enterprise: Reincubate hat die höchste offizielle Wirtschaftsauszeichnung des Vereinigten Königreichs viermal gewonnen, zuletzt in Anerkennung des herausragenden Wachstums des Unternehmens in den vergangenen drei Jahren.

Unsere Beziehungen zu Nutzern und Partnern stehen im Mittelpunkt unserer Werte und der Produkte, die wir entwickeln. Lies unsere Bewertungen, um zu erfahren, was sie über uns sagen.

Nach ISO 27001 zertifiziert durch das Centre for Assessment, akkreditiert durch UKAS

© 2008-2026 Reincubate Ltd. Alle Rechte vorbehalten. Eingetragen in England und Wales unter der Nr. 5189175, USt-IdNr. GB151788978. Camo®, Streamlight® und Reincubate® sind eingetragene Marken. Patente angemeldet.

Hilfe