# Notes **Notes** represent a post, article or message of some kind, and are one of the [5 types of pushable object](objects). ## Schema - type: "note" - self: uri(note) required - created: timestamp required - modified: timestamp optional - author: uri(actor) required - summary: string optional - plainContent: string required - formattedContent: object optional default={} - (mimetype): string many - language: locale required - mentions: array(uri(actor)) optional default=[] - inReplyTo: uri(note) optional - threadApex: uri(note) optional <sup>[1](#footnotes)</sup> - privacy: object required - scope: "public" | "followers" | "mutuals" | "none" required - alsoVisibleTo: array(uri(actor)) optional default=[] - indexable: boolean required - canReshare: "all" | "followers" | "mutuals" | "none" optional default="all" - canReply: "all" | "followers" | "mutuals" | "none" optional default="all" - canOtherInteract: "all" | "followers" | "mutuals" | "none" optional default="all" - attachments: array(object) optional default=[] - type: mimetype required - href: uri required - description: string optional - extensions: object optional default={} - (uri): any many ## Example ```json { "type": "note", "self": "https://social.example/note/234", "created": "2025-01-02T08:34:41+00:00", "modified": "2025-01-02T08:38:54+00:00", "author": "https://social.example/user/winter", "plainContent": "omg hi!", "formattedContent": { "text/markdown": "**omg** hi!", "text/html": "<b>omg</b> hi!" }, "language": "en_GB", "mentions": [], "inReplyTo": "https://antisocial.example/note/141", "threadApex": "https://social.example/note/230", "privacy": { "scope": "public", "indexable": true, "canReshare": "none" }, "attachments": [], "extensions": [] } ``` ## Footnotes <sup>[1]</sup> if threadApex is not specified it’s assumed that this note is itself the thread apex, so equivalent to writing the same uri as in self. however you should always put null / not specify it in that case, rather than putting the note’s own uri