Tweets & Threads
Publish single posts or coordinated X threads through the same PostZen endpoint.
Stop wrestling with X drafts, media reviews, and publishing status. PostZen keeps X planning, scheduling, and campaign context in one calm workflow.
No credit card required
import PostZen from '@postzen/node';
const postzen = new PostZen();
await postzen.posts.createPost({
body: {
content: 'Shipping today with PostZen!',
publishNow: true,
platforms: [{
platform: 'twitter',
accountId: 'your-x-account-id',
}],
},
});WHY POSTZEN?
X API brings its own authentication, rate limits, media rules, and maintenance. PostZen replaces it with one predictable integration.

2.3M+ posts
2,000+ usersFEATURES
One complete API for X formats, controls, and scheduled publishing

Publish single posts or coordinated X threads through the same PostZen endpoint.
Attach images to X posts without building a separate media-upload workflow.
Publish native video or GIF media while PostZen handles hosting and processing.
Keep mentions, hashtags, and destination links intact in every scheduled post.
Send an X variant alongside Instagram, LinkedIn, Threads, and other networks in one request.
Publish at a precise time or add posts to your automatic publishing queue.
Three steps to integrate the X Upload API

Sign up for PostZen and grab your API key from the dashboard.

Authorize your X account once. We manage OAuth, permissions, and publishing access for you.

POST to /v1/posts with X selected and your content or media. Done.
CODE EXAMPLE
One POST request to /v1/post — send a file or a public URL
const response = await fetch("https://api.postzen.dev/v1/posts", {
method: "POST",
headers: {
"Authorization": "Bearer POSTZEN_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
platforms: [{ platform: "x", accountId: "your-x-account-id" }],
content: "Building the future with calm campaign workflows",
mediaItems: [{ url: "https://cdn.example.com/launch-image.jpg" }],
scheduledFor: "2026-06-15T19:00:00Z",
tags: ["launch", "x"]
})
});
const result = await response.json();
console.log("Scheduled successfully:", result.post._id);Still have questions?
X API pricing changes frequently and can include usage-based access, legacy paid tiers, or enterprise plans depending on your account. PostZen Free includes 2 accounts and 20 posts; paid plans start at $19 per month. X usage is billed at cost on every plan and requires a card.
X's API can require paid access, developer portal approval, media upload handling, thread chaining, and ongoing API maintenance. PostZen abstracts that complexity with one simple endpoint for scheduling posts on X and other supported platforms.
Not yet. Each API call publishes a single post to X today. Thread chaining is on our roadmap.
Not yet. PostZen focuses on publishing and scheduling today. DM support is on our roadmap.
Yes. PostZen supports all X media types: images, videos, and GIFs. We handle the multi-step media upload process that X's API requires.
Join the 2,000+ users who chose PostZen over building around disconnected platform tools. Same reliability, 10x less code.