REST API
Platforms
Every channel and its rules, read from the same source we validate against.
This endpoint is the honest answer to 'what are the limits'. It is the same table the validator uses, so it cannot drift from behaviour.
GET/v1/platforms
Every channel, its limits, and whether it is live.
Limits today
| Name | Type | Description |
|---|---|---|
Threads | 500 | images 20 · video 1 · text alone ok · in platform review, testers only |
Instagram | 2,200 | images 10 · media required · coming |
YouTube | 5,000 + title 100 | video 1 · media required · in platform review, testers only |
Facebook | 63,206 | images 10 · text alone ok · coming |
How a character is counted
Every character counts as 1, except code points above U+FFFF (mostly emoji) which count as 4. Do not use string length: "a😀".length is 3 but it counts as 5. GET /v1/platforms returns the same rule per channel as charCount, so you can check before publishing instead of after it fails.
Your own limits come from GET /v1/me
This table is what each channel allows. What your account allows is a different number, and GET /v1/me returns it as limits: how many channels you can connect and how many requests a minute you get. **These are beta values and they will change.** Read them at runtime instead of writing them into your code.
Common questions
What is the character limit on each channel?
The table above has it, and it is generated from the same table the validator reads. If a limit changes in the product it changes here in the same commit, so this page cannot drift from behaviour.
What happens if I go over a limit?
The call is refused with content_too_long before anything is published, and the response carries the channel, the limit and your actual length so the caller can shorten and retry.
Do I have to pick the strictest limit myself?
Only if you want to. Publishing to several channels at once checks each one against its own limit, so you find out which channel refused rather than guessing at a single number.