X / Twitter API

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

API key authScheduled publishing14 platforms
Quick start
API request
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

X pricing and access rules can change project economics quickly, especially for URL-heavy or high-volume products.
OAuth, media uploads, retry logic, and account mapping become your responsibility.
If you later add LinkedIn, Instagram, or Threads, you start another integration from scratch.
Analytics availability and API access depend on X plan, account, and endpoint limits.

What bundle.social handles

Create X posts through the same API shape used for other supported platforms.
Reference uploaded media IDs instead of building the media lifecycle in your app.
Use bundle.social scheduling and status states around the post lifecycle.
Expand from X-only publishing to LinkedIn, Instagram, Threads, Reddit, and more without a rewrite.

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.

01

Create an API key

Generate an organization API key in the dashboard and use it with the x-api-key header.

02

Connect accounts

Connect each social account once. bundle.social keeps the account mapping ready for future posts.

03

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.

TypeScript
API request
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

Text postsImagesVideosGIF uploadsReply settingsScheduled posts

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.