iMessage has tons of different items and internally they are fairly inconsistent. To create uniform types out of chaos, I created a wrapping system. All chat items are contained within an object describing which type of item it is.

Chat Item Container


All chat items extend the properties below! They are not listed in their individual tables, but they do possess these properties.

Shared Properties


All Chat Items

Date Item

Sender Item

Participant Change Item

Attachment Item

Status Item