Ship to Threads before the Meta App Review queue moves.
One REST call posts text, images, videos, and carousels to Threads. PostPulse owns the Meta audit, manages the 60-day token, and adds scheduling Meta's API doesn't have. 10 free publications on signup. No card.
Two kinds of people land on this page.
The Threads API only opened up in mid-2024 and it still rides on Meta's developer platform. You either tried it already, or you're about to. Pick the panel that fits.
Then you know. The threads_content_publish scope is gated behind App Review. Until Meta approves you, your app can only post to your own account and hand-registered testers. Tokens expire at 60 days. Posting is a multi-step container API. Rate limits cap you at 250 posts per user per 24 hours.
Your hell ends here. PostPulse holds the Meta audit. Scheduling is one field. Carousels are one request. We catch broken media before Threads does.
The 6 things you'd build yourself
Each line below is a real ticket the Threads API hands you on day one. PostPulse handles all of them.
Meta App Review
The threads_basic and threads_content_publish scopes both require manual review. Use-case justification, screencasts, privacy policy URLs, data-deletion endpoints. Multi-day reviews, and over-requesting permissions can get your app flagged.
Tester-only sandbox
Until App Review approves you, you can only publish to your own account and accounts manually registered as testers in your Meta developer app. You can't onboard real users yet.
The 250 / 24h ceiling
Meta caps Threads at 250 posts and 1,000 replies per user every rolling 24 hours, plus a per-app call budget that scales with your impressions. You build the tracking, the back-pressure, the user-facing error.
The container API
Every Threads post goes through container creation → status polling → publish. Carousels add a per-item container step. You write the polling, the status switch, the carousel ordering.
Long-lived token rotation
Threads access tokens expire after 60 days. You implement the short-lived → long-lived exchange, the refresh endpoint, the storage, and the replay logic for posts that landed during a refresh window.
Scheduling and observability
Threads has no native "publish at" parameter. You build a queue, a cron, a retry ladder, alerting for failures, and a dashboard so you know what shipped.
scheduledTime is a field. 14 webhook events for the rest.One API call. That's it.
Drop a public image or video URL into attachmentPaths (or skip it for a text-only post). PostPulse downloads, hands it to Threads, and publishes at the time you set. Prefer to upload bytes? Use a binary upload or a presigned URL — both work the same way.
curl -X POST https://api.post-pulse.com/v1/posts \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"scheduledTime": "2026-06-01T10:00:00Z",
"isDraft": false,
"publications": [{
"socialMediaAccountId": 123,
"platformSettings": {
"type": "THREADS",
"topicTag": "buildinpublic"
},
"posts": [{
"content": "Day 47. Shipped via API. No Meta App Review on my side.",
"attachmentPaths": ["https://your-cdn.com/screenshot.png"]
}]
}]
}'attachmentPaths — the same request publishes them as one Threads carousel post.Everything Threads lets you publish — actually shipped.
Each capability below maps to a real field on a real request. No roadmap items.
Up to 500 characters of text. Single image (JPG / PNG, ≤ 8 MB) or single MP4 video (≤ 5 min). Same /v1/posts request shape as every other platform.
Attach multiple images and / or MP4 videos in attachmentPaths and PostPulse stitches them into a single Threads carousel container automatically.
Set topicTag explicitly (up to 100 chars) or leave it empty — PostPulse falls back to the first non-numeric hashtag in your text, matching the native Threads behaviour.
Pass an ISO-8601 scheduledTime and PostPulse fires the publish at the exact second you ask for. The native Threads API has no scheduling — that's all logic you'd otherwise own.
Pull views, likes, replies, reposts, quotes, and shares per published post. We map Meta's metric IDs to a clean schema across every PostPulse-supported platform.
Per-post, per-publication, and per-schedule outcomes — plus media-import lifecycle events — fired straight to your URL the moment they happen. See the Webhooks reference.
What you ship over six weeks
Both columns assume you know your stack. Only one has you doing undifferentiated platform plumbing.
- Day 1–3 · Register Meta developer account · configure app · set OAuth redirect URLs
- Week 1 · Implement OAuth · short-lived → long-lived token swap · 60-day refresh
- Week 2 · Build the container API flow · status polling · carousel ordering
- Week 2–3 · Submit App Review for
threads_content_publish· justify use case · wait - Week 4–6 · Iterate on rejection. Resubmit. Wait again.
- Week 6+ · Approved. Now ship a queue, retry, scheduling, webhook receiver, alerts.
- Minute 0 · Sign up
- Minute 2 · 10 free credits
- Minute 5 · Connect a Threads account via OAuth
- Minute 8 · First post live · webhook calls your URL the second it lands
- Day 2+ · Build the actual product. Stop thinking about Threads.
Built for indie hackers. Scales for the rest.
Three private-label paths plus a white-label tier. Start free — pick a plan only when the product makes sense.
- 10 publications, free
- No credit card required
- Every feature unlocked
- Connect unlimited Threads accounts
- One credit = one published post
- No subscription, no expiry
- All features included
- Buy credits anytime
- Unlimited publishing per seat
- 1 seat = 1 connected Threads account
- Add or remove seats anytime
- Annual billing also available
Capability matrix · PostPulse vs. native Threads API
What you'd build yourself vs. what's already shipped.
| Capability | PostPulse | Native Threads / Meta API |
|---|---|---|
| Meta App Review | ✓ Done by us | ✗ Manual review · resubmits common |
| Real-user posting | ✓ Day one | Tester accounts only until approved |
| Token refresh (60-day) | ✓ Handled server-side | Implement + monitor per user |
| Text · image · video · carousel | ✓ One endpoint | Container API · per-item polling |
| Topic tag handling | ✓ Auto-pick or explicit | Explicit only — you build the fallback |
| Pre-flight validation | ✓ Size · format · char · tag | Errors only after you've taken the user's request |
| Scheduling | ✓ scheduledTime field | Build your own queue + cron |
| Real-time post status | ✓ 14 webhook events | Poll yourself |
| Threads Insights | ✓ Views · likes · replies · reposts · quotes · shares | Available — your own implementation |
| White-label / Connect for end users | ✓ Included | Build your own OAuth bridge |
| Same API for 8 other platforms | ✓ Instagram · TikTok · YouTube · LinkedIn · X · FB · Telegram · Bluesky | 9 separate integrations |
Why developers ship Threads with PostPulse
Reviewed on Product HuntI use PostPulse with an AI agent via their MCP server. My agent literally posts to social media on its own now. Didn’t expect that to work as smoothly as it did.
$5/month for what would otherwise require a full backend engineer to maintain? Easy yes. The REST API is clean and well-documented too, which is rare.
Tried to get TikTok API access myself. Three weeks, two rejections. Switched to PostPulse and was posting to TikTok the same day. Wish I hadn’t wasted that time.
I’m a Make.com power user and needed to post to 5 platforms from one scenario. The native PostPulse app for Make connected everything in one afternoon. Would’ve taken me weeks to do manually.
I built an n8n automation for a client and needed to add social publishing. The official PostPulse n8n node was literally drag and drop. No headache.
Saved me months of dev work. I was about to start integrating Instagram and TikTok APIs separately — then I found out Meta’s app review alone can take months. PostPulse just handled all of that. Shipped social posting in under a week.
The most flexible pricing model on the market!
I'm building an AI content factory as a side hustle. I'm still in the experimentation phase, so I don't have the budget for expensive tools — but I also needed to get everything up and running quickly, so I integrated with a ready-to-go API instead. PostPulse offers a flexible pay-as-you-go model that let me experiment first without commitment — and now that we have stable traffic, I’ve switched to their $5/month subscription.
Best support on the market — the founder personally emailed me when I hit a client error and walked me through the fix.
We optimized the posting to 20 twitter accounts. It was a problem to manage such a number, but through the platform everything works out perfectly. Very convenient dashboard for tracking errors. Great product.
Threads API · FAQ
Stop waiting on Meta. Start shipping Threads.
10 free publications. No credit card. Connect a Threads account, publish your first post, fire your first webhook — all under 10 minutes.