Platforms
What each platform accepts, generated from the declarations PostAtom enforces when it validates a post. A platform appears here when its adapter exists, not when it is planned — an empty row would be a promise.
| Platform | Post kinds | Characters | Images | Video | Platform-side scheduling | Comments | Metrics |
|---|---|---|---|---|---|---|---|
| Bluesky | text, image, video, thread | 300 | 4 × 1 MB | 100 MB · 180s | No | Yes | Yes |
| Mastodon | text, image, video, thread | 500 set per account | 4 × 10 MB | 40 MB · 300s | Yes | Yes | Yes |
| Facebook Pages | text, image, video, carousel | 63206 | 10 × 10 MB | 10000 MB · 14400s | Yes | Yes | Yes |
| X | text, image, video, thread | 280 set per account | 4 × 5 MB | 512 MB · 140s | No | Yes | Yes |
| image, video, carousel, story | 2200 | 10 × 8 MB | 1000 MB · 90s | No | Yes | Yes | |
| Threads | text, image, video, carousel, thread | 500 | 20 × 8 MB | 1000 MB · 300s | No | Yes | Yes |
| TikTok | video | 2200 | — | 4000 MB · 60s | No | No | Yes |
| text, image, video, carousel | 3000 | 20 × 10 MB | 5000 MB · 1800s | No | No | Yes | |
| text | 40000 | — | — | No | Yes | Yes | |
| image, video, carousel | 500 | 5 × 20 MB | 2000 MB · 900s | No | No | Yes | |
| YouTube | video | 5000 | — | 128000 MB · 43200s | Yes | Yes | Yes |
| Google Business Profile | text, image | 1500 | 1 × 5 MB | — | No | No | Yes |
| Sandbox | text, image, video, thread | 500 | 4 × 5 MB | 100 MB · 180s | No | Yes | Yes |
What each one asks of you
Bluesky
Access Nothing to apply for.
- The limit is 300 graphemes, so an emoji or an accented character counts once, not once per byte.
- Images are re-encoded to fit a one megabyte ceiling before upload.
- Bluesky publishes no impression or reach figure, so those are reported as unknown rather than zero.
- There is no platform-side scheduling; PostNode holds a scheduled post until its moment.
Mastodon
Access Your account’s own server, named when you connect.
- Limits are set by the server your account is on, so the numbers here are the stock defaults and the real ones are read from your server when you connect.
- Scheduled posts are handed to your server to hold, which means they still publish if PostNode is down.
- A thread is not handed over, because each post has to reference the one before it.
- Mastodon publishes no impression or reach figure.
Facebook Pages
Access A Facebook Page you administer, through Meta app review.
- Posts go to a Page rather than to a personal profile; Meta offers no way to post to a profile.
- Scheduling is genuinely the platform’s: the post is created unpublished with an instant and Facebook publishes it itself.
- Comments arrive by push rather than by polling, so a reply can be answered in seconds.
- A Page connection ends when the person who made it loses their role on the Page or changes their password, which is why reconnecting is offered rather than a retry.
- A post’s likes, comments and shares are read with the posting permissions. Its views, reach and clicks need Meta’s read_insights permission, which a deployment asks for only once Meta has granted it; until then they are not reported.
X
Access An X developer account on a paid API plan.
- X charges its API by the post, so posting here costs money per post rather than being covered by a subscription.
- The limit is 280 characters unless the account has a subscription, in which case it is far higher; the real figure is read from the account when it connects.
- A post too close to something the account posted recently is rejected by X as a duplicate, and rewording it is the only fix.
- There is no platform-side scheduling, so a scheduled post is held by PostNode until its moment.
- X publishes impressions, and nothing that means reach, so reach is reported as unknown rather than zero.
Access An Instagram Business or Creator account linked to a Facebook Page, through Meta app review.
- A personal Instagram account cannot publish through the API at all; converting it to a Business or Creator account and linking it to a Page is what makes it possible.
- Every post needs media: there is no text-only Instagram post.
- Images have to be JPEG, and Instagram fetches them from a link PostNode mints rather than taking an upload.
- A video is not posted by the call that sends it: Instagram processes it first, which can take minutes, and the post appears when it finishes.
- A hundred posts per account per rolling 24 hours, and the remaining allowance is read from Instagram rather than assumed.
- Instagram’s figures for a post can be two days behind, so a post is first measured two days after it goes out.
Threads
Access A Threads profile, through Meta tech provider verification.
- The limit is 500 characters.
- Threads publishes in two steps like Instagram, so a video appears when Threads has finished processing it.
- Replies are polled rather than pushed, because Threads publishes no comment webhook that has been confirmed to exist.
- The daily allowance is read from Threads per profile rather than assumed.
TikTok
Access A TikTok developer account whose content posting has passed TikTok’s audit.
- Video only.
- Until TikTok has audited the application, every post it makes is private — visible only to the account that posted it — whatever was asked for, and PostNode says so on the post rather than reporting an ordinary success.
- Six requests a minute per account, which is the tightest limit of any platform here, so a burst of posts is spread rather than sent at once.
- The longest video an account may post is read from TikTok, because it differs by account.
- TikTok publishes no comment API here, so comments are not read.
- A video’s figures need TikTok’s video.list scope, which a deployment asks for only once TikTok has approved it; until then they are not reported.
Access A LinkedIn account; posting as an organization needs LinkedIn’s partner agreement.
- A LinkedIn connection lasts 60 days. Without LinkedIn’s partner agreement it cannot be renewed automatically, so the account has to be authorized again — PostNode warns before it lapses.
- Posting as an organization page needs that partner agreement; posting as a person does not.
- Comments belong to LinkedIn’s partner-gated API, so they are not read.
- A post’s figures need LinkedIn’s Community Management API, which a deployment uses only once LinkedIn has granted it; until then they are not reported.
- There is no platform-side scheduling, so a scheduled post is held by PostNode until its moment.
Access A commercial agreement with Reddit, which has to be negotiated before anybody may post through it.
- Text and link posts only; an image post goes through an upload flow this integration does not offer.
- Every post names a subreddit, and a title, which Reddit requires and a post body does not supply.
- Each subreddit sets its own rules — required flair, banned domains, title formats — and they are read and checked before a post is sent, because a removal is charged to the account that posted.
- Reddit has no follower count, and karma is not one, so an account reports none.
- There is no platform-side scheduling, so a scheduled post is held by PostNode until its moment.
Access A Pinterest business account, and a PostNode application with standard access.
- A Pin is an image or a video; there is no text-only post, so every Pin needs media.
- Every Pin belongs to a board, and the board is named per post rather than assumed.
- Images are fetched by Pinterest from a short-lived link PostNode mints for each attempt, rather than uploaded.
- Pinterest reports impressions, saves, clicks, reactions and comments for the last ninety days at most, and nothing that means reach or shares.
- While a PostNode application is on trial access, Pins it creates are visible only to their creator.
YouTube
Access A Google account with a YouTube channel.
- Video only. A post’s text becomes the description, and its first line the title unless one is given.
- Scheduling is genuinely the platform’s: the video is uploaded private with a publish instant and YouTube makes it public itself.
- YouTube meters its allowances per application rather than per channel, so every PostNode customer shares them. Uploads have a daily allowance of their own, which YouTube enforces; a refusal waits for the daily reset rather than failing the post.
- Moving or stopping a scheduled video, and posting its first comment, each cost 50 of the 10,000 units YouTube allows a day for everything but uploads. A move is refused once the day’s units are spent; a stop is still asked for.
- YouTube publishes view, like and comment counts, and no impression or reach figure.
Google Business Profile
Access A Google Business Profile location, through Google’s Business Profile API access request.
- A local post is text and at most one image; there is no video and no platform-side scheduling.
- One consent can reach several locations at once, each connected as its own account, because a local post always belongs to one location.
- The upload allowance is shared by every PostNode customer at once, because Google meters it per Cloud project rather than per location. A refusal waits for the next minute rather than failing the post.
- Google retired per-post metrics in 2023 with no replacement, so what is reported is the location’s own aggregate views, website clicks and call clicks — not this one post’s.
Sandbox
Access Available to every workspace with a test key.
- Nothing is published anywhere. A sandbox post exercises the whole pipeline and stops short of a timeline.
Why some platforms are not here yet
Several large platforms gate third-party publishing behind a review that cannot be filed until a working integration exists, and two of them restrict what an unreviewed application may do in ways that would be invisible to you and useless in practice — posts created but visible only to their author. PostAtom does not list a platform until an account connected through it can genuinely publish.