# Threads

Formats, media and text limits, options, inbox and analytics on Threads.

Publish `feed` and `carousel` to Threads, read every post's numbers, and answer comments once Meta approves Rizamo's access. Set a target's `format`, or leave it out and Rizamo picks one from the files.

## Formats [#formats]

| Format | Files | Text |
| --- | --- | --- |
| `feed` | Text alone, or 1 image or video | 500 |
| `carousel` | 2 to 20 images or videos | 500 |

## Media [#media]

Rizamo takes JPEG, PNG, WebP, MP4 and MOV files up to 4 GB. What Threads takes:

- **Images:** JPEG or PNG, up to 8 MB, up to 1,440 px wide, 1:10 to 10:1 on `feed` and `carousel`.
- **Video:** H.264 or HEVC with AAC audio, 23 to 60 frames a second, up to 1,920 px wide.

| Format | Length | Size |
| --- | --- | --- |
| `feed` | 1 s to 5 min | up to 1 GB |
| `carousel` | 1 s to 5 min | up to 1 GB |

## What Rizamo does to files [#what-rizamo-does-to-files]

- **Images:** another type becomes JPEG or PNG; a larger file is compressed under 8 MB; a wider one is made 1,440 px wide; `feed` and `carousel` images outside 1:10 to 10:1 are fitted to it over a blurred copy of themselves.
- **Video:** one Threads does not take as it is (its codec, frame rate, width or size) is converted to H.264 and AAC within those limits; one whose header is not at the front only has it moved there, for streaming. Its length cannot change: a video too short or too long for the format is refused when it is attached.
- Your file itself never changes: the copy is made when the post goes out, and each target's `changes` says what was done.

## Text [#text]

- Up to 500, counted in characters, each emoji as its bytes in UTF-8 (a 😀 counts 4). Rizamo counts the same way, so `POST /v1/posts/validate` refuses what Threads would.
- A first comment takes up to 500 characters.
- Up to 5 different links in a post, a link card included.

## Options [#options]

Under `options.threads` on a target. Each says which formats take it.

| Option | Type | What it does |
| --- | --- | --- |
| `linkAttachment` | string | Text posts (no image or video) without a poll: a link shown as a preview card. Left out, Threads makes the card from the first link in the text. A post takes at most 5 different links, this one included. |
| `poll` | object | Text posts (no image or video) without a link card: a poll. Threads decides when it ends. |
| `topicTag` | string | The post's topic, 1 to 50 characters, without periods (.) or ampersands (&). One per post. |
| `replyControl` | `everyone`, `accounts_you_follow`, `mentioned_only`, `parent_post_author_only`, `followers_only` | Who may reply: everyone (Threads' default), accounts_you_follow, mentioned_only, parent_post_author_only or followers_only. On a chain, every post of it. |
| `quotePostId` | string | Quote another Threads post, by its id on Threads (a network post's `networkPostId`). |
| `isAiGenerated` | boolean | Labels the post as made with AI (Threads' "AI info"): text, image, video and carousel posts, and every post of its chain. |

## First comment [#first-comment]

`firstComment` goes out right after the post, as the post's first reply, a post of the profile's own, up to 500 characters. Not with a chain: its next part is the first reply. One it would not take is refused when the post is made (`400`), with the reason. If it fails once the post is live, the post stays published.

## Chains [#chains]

`chain` publishes up to 24 more posts after the first, each a reply to the one before, each with its own text and files. A part that fails stops the rest; the parts before it stay live, and publishing the post again goes on from the part that failed. `chainResults` says how each part went.

## After publishing [#after-publishing]

- **Edits:** Threads does not change a live post's text: an update to a live post is `not_supported`.
- **Deleting:** deleting a post takes it off Threads when the account's `capabilities` include `delete_posts`. Each target's `removal` says what happened. It needs `threads_delete`, which Threads gives only to its testers until Meta reviews Rizamo's access.

## Inbox [#inbox]

Replies to the profile's posts are its comments. A profile cannot read or answer replies through Rizamo yet: Threads gives them only to its testers until Meta approves Rizamo's access to replies. A Threads tester who did not allow replies when logging in can log in again and allow them.

- Replies to comments: up to 500 characters. They go out in the background: a reply is `sending`, then `sent` or `failed`.
- Messages: none. Threads has no messaging API.
- Mentions are not read yet.

| Action | People's comments | The account's own |
| --- | --- | --- |
| Hide | yes | no |
| Delete | no | yes |
| Like | no | no |

## Comment automations [#comment-automations]

Comment automations work on Instagram accounts and Facebook Pages only.

## Daily caps [#daily-caps]

Up to 250 posts an account in 24 hours, counting posts published. A post over a cap waits for room ([Limits](/limits#publishing)).

## Analytics [#analytics]

Days run on Pacific time (`America/Los_Angeles`). On connecting, Rizamo reads back the posts of the last 12 months (up to 500) and 365 days of the account's numbers. [How Rizamo reads numbers](/analytics).

### Posts [#posts]

| Metric | Threads' name | Formats | Note |
| --- | --- | --- | --- |
| `views` | `views` | all | Needs `threads_manage_insights` |
| `likes` | `likes` | all | Needs `threads_manage_insights` |
| `comments` | `replies` | all | Needs `threads_manage_insights` |
| `reposts` | `reposts` | all | Needs `threads_manage_insights` |
| `quotes` | `quotes` | all | Needs `threads_manage_insights` |
| `shares` | `shares` | all | Needs `threads_manage_insights` |
| `engagements` | Rizamo adds up `likes`, `comments`, `reposts`, `quotes` and `shares` | all | Needs `threads_manage_insights` |

### Account [#account]

| Metric | Threads' name | Note |
| --- | --- | --- |
| `views` | `views` | Needs `threads_manage_insights` |
| `engagements` | `likes`, `comments`, `reposts` and `quotes` added up | Needs `threads_manage_insights` |
| `likes` | `likes` | Needs `threads_manage_insights` |
| `comments` | `replies` | Needs `threads_manage_insights` |
| `reposts` | `reposts` | Needs `threads_manage_insights` |
| `quotes` | `quotes` | Needs `threads_manage_insights` |
| `clicks` | `clicks` | Needs `threads_manage_insights` |

Its audience: who follows the account, by age, gender, country and city, for accounts with 100 followers or more.

No `reach`, `saves` or `clicks` on its posts.
