Text, images, video
Post text, images, and videos.
Threads' API requires Instagram Business account linking, Facebook app review, and media container polling. Zernio skips all of that with one endpoint for text, images, and video posts.

Spent the weekend rebuilding our onboarding. Three screens instead of nine.


Profile
defaultThreads
Sign up for free, get your API key and connect Threads accounts through our OAuth flow.

POST /v1/posts
const { data } = await zernio.posts.createPost({ body: { content: 'Shipping today 🚀', mediaItems: [{ url: 'https://cdn.acme.com/launch.jpg' }], platforms: [ { platform: 'threads', accountId: 'acc_8f2a' }, ], scheduledFor: '2027-01-15T14:30:00', timezone: 'Europe/Madrid', }, });
Send content to Threads from one REST endpoint, right away or scheduled.

post.failed
Webhook sent to your app
Mon, 18 Jan
09:00, Europe/Madrid
Shipping today 🚀
Fri, 15 Jan at 14:30
Follow each post from scheduled to published, with a webhook when one fails.
| Endpoint | What it does |
|---|---|
POST/v1/posts | Create or schedule a Threads post (text, image, or video) |
GET/v1/posts/{id} | Get status and details of a Threads post |
DELETE/v1/posts/{id} | Cancel a scheduled Threads post |
GET/v1/profiles | List all connected Threads accounts |
Zernio transcodes and optimizes media for Threads's requirements automatically.
| Type | Format | Max size | Notes |
|---|---|---|---|
| Image | JPEG, PNG | 8 MB | Up to 10 images per post |
| Video | MP4, MOV | 1 GB | Up to 5 min duration |
| Text | UTF-8 | 500 chars | Links auto-embedded |
Threads API has rate limits tied to Instagram's Graph API. Zernio manages these limits automatically, ensuring reliable posting.
Post text, images, and videos.
Schedule posts for your best times.
Manage several Threads accounts from one API key.
Get notified the moment a post publishes or fails.
Attach several images to one post.
Chain replies into a thread.
Works with the Instagram account linked to Threads.
Plain JSON back from every Threads call, with the IDs and statuses your app needs to follow up.
cURL
$
{
"post": {
"_id": "65f1c0a9e2b5af0012ab34cd",
"status": "published",
"content": "Just shipped something cool! What do you think? 🚀",
"platforms": [{
"platform": "threads",
"accountId": { "_id": "acc_abc123", "username": "@yourhandle" },
"status": "published",
"platformPostId": "3456789012345678901",
"platformPostUrl": "https://threads.net/@yourhandle/post/ABC123"
}],
"publishedAt": "2025-01-10T10:30:00Z"
},
"message": "Post published successfully"
}Free tier available. No credit card required.