# 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