X / Twitter API alternative for posting and scheduling
Create and schedule X/Twitter posts with bundle.social while reducing the maintenance work around OAuth, media, queues, status tracking, and future cross-platform publishing.
Last updated: May 2026
1const response = await fetch("https://api.bundle.social/api/v1/post", {2 method: "POST",3 headers: {4 "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY,5 "Content-Type": "application/json"6 },7 body: JSON.stringify({8 teamId: "team_123",9 title: "X product launch",10 postDate: "2026-05-12T14:00:00.000Z",11 status: "SCHEDULED",12 socialAccountTypes: ["TWITTER"],13 data: {14 TWITTER: {15 text: "Launching today: one API workflow for social scheduling.",16 uploadIds: ["upload_hero_image"]17 }18 }19 })20});X API direct
What bundle.social handles
Use X publishing as one channel, not a one-off build
bundle.social works best when X is part of a broader publishing workflow. You can start with scheduled X posts, then add LinkedIn, Instagram, Threads, Reddit, and more without rebuilding the foundation.
Workflow
How it works
Connect accounts once, then create and schedule posts with channel-specific fields from one API.
Create an API key
Generate an organization API key in the dashboard and use it with the x-api-key header.
Connect accounts
Connect each social account once. bundle.social keeps the account mapping ready for future posts.
Create or schedule posts
Send one request with the publish date, selected channels, and the fields each platform needs.
Capabilities
X/Twitter scheduling without the API maintenance
Schedule X posts with the same workflow used for every other channel, with media, status, and multi-platform support included.
API key auth, no OAuth per request
Use a single x-api-key header for X post creation. Users still connect X accounts through the hosted OAuth flow; bundle.social handles token storage and refresh.
Media upload references
Attach images, videos, and GIFs by upload ID rather than managing the X media upload lifecycle directly.
Scheduling and queuing
Set a postDate to schedule X posts in advance, or push to a queue through the dashboard without extra logic.
Post status tracking
Track scheduled, processing, posted, retrying, and error states without building your own state machine around the X API.
Multi-platform ready
Start with X and expand to LinkedIn, Instagram, Threads, Reddit, and more using the same post endpoint and API shape.
Dashboard for non-technical teams
Marketing teams can review, approve, and monitor X posts in the same calendar as every other channel.
Platform specifics
X API specifics that vary by subscription tier
X publishing is text-first, but account tier, media limits, and reply controls affect what your product can promise.
Character limits vary
Free and Basic accounts are limited to 280 characters, while Premium and Premium+ accounts can support up to 25,000 characters.
Video duration varies
Free and Basic accounts are limited to 140 second videos. Premium tiers can support videos up to 10 minutes.
Reply settings are explicit
The TWITTER payload can set replySettings for everyone, following, mentioned users, subscribers, or verified accounts where the connected account supports it.
Developer example
Schedule an X/Twitter post
Examples use bundle.social's public API shape: API key authentication, a post date, selected social account types, and platform-specific data.
1const response = await fetch("https://api.bundle.social/api/v1/post", {2 method: "POST",3 headers: {4 "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY,5 "Content-Type": "application/json"6 },7 body: JSON.stringify({8 teamId: "team_123",9 title: "X product launch",10 postDate: "2026-05-12T14:00:00.000Z",11 status: "SCHEDULED",12 socialAccountTypes: ["TWITTER"],13 data: {14 TWITTER: {15 text: "Launching today: one API workflow for social scheduling.",16 uploadIds: ["upload_hero_image"]17 }18 }19 })20});Supported content
Honest limitations
- X character limits still depend on account subscription level.
Guarantees
Developer-first infrastructure
2% error rate
We handle the platform edge cases, media processing, and rate limits so your requests succeed.
Verbose errors
When native APIs fail, we return human-readable error messages and actionable recovery steps.
Flat pricing
No per-post counting. Predictable pricing for teams managing many users, workspaces, and connected accounts.
Same-day support
Direct access to the engineers building the API. We respond to technical issues the same day. Sometimes the same hour. Test us c;
FAQ
Questions developers ask before building
Is bundle.social a Twitter API replacement?
It is an API layer for products that need X publishing and scheduling. It does not remove X's rules, but it can reduce the code you maintain around posting workflows.
Can I schedule tweets through the API?
Yes. Create a post with status SCHEDULED, a future postDate, socialAccountTypes set to TWITTER, and TWITTER-specific data.
Can I post images or videos to X?
Yes. Upload media to bundle.social first, then include upload IDs in the TWITTER payload.
Does this also post to other platforms?
Yes. The same post creation workflow can include other supported social account types with their own platform data.
Do I still need to understand X rules?
Yes. bundle.social simplifies implementation, but X still controls account eligibility, content policy, character limits, and API behavior.
X API errors
Troubleshoot X publishing failures, permissions, media validation, rate limits, and retry decisions.
Social Media API
See the broader multi-platform API pattern.
LinkedIn API
Compare X workflows with B2B social publishing.
Instagram API
Add visual content and Reels workflows to the same product.