Bulk social media posting API for high-volume publishing
Create and schedule thousands of social media posts through API loops or CSV import, with per-post status tracking so failures do not block the whole run.
Last updated: May 2026
1const campaignPosts = [2 { platform: "INSTAGRAM", text: "Launch day is here.", uploadIds: ["upload_img_1"] },3 { platform: "LINKEDIN", text: "We shipped something big today." },4 { platform: "TWITTER", text: "Live now. Check it out." }5];67const results = [];89for (const { platform, ...data } of campaignPosts) {10 const response = await fetch("https://api.bundle.social/api/v1/post", {11 method: "POST",12 headers: {13 "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY,14 "Content-Type": "application/json"15 },16 body: JSON.stringify({17 teamId: "team_123",18 postDate: "2026-05-14T10:00:00.000Z",19 status: "SCHEDULED",20 socialAccountTypes: [platform],21 data: { [platform]: data }22 })23 });2425 results.push(await response.json());26}Managing bulk posts natively
What bundle.social handles
Bulk posting is just scheduling at scale
bundle.social's post API is designed to handle volume. Loop through your campaign plan, create each post, and check status from the same dashboard your team already uses. For large runs, limit concurrency and space requests so platform and API rate limits stay predictable.
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
Built for bulk social posting at production scale
One endpoint, looped. Per-post status, error isolation, and multi-account support built in.
Loop-based volume posting
Send one request per post in a loop using the same endpoint your dashboard uses. No special bulk mode or batch API needed.
Bulk CSV import
Upload a CSV where each row becomes one scheduled post. Failed rows surface their own errors and do not block the rest of the import.
Per-post status isolation
Each post tracks its own scheduled, processing, posted, and error states so a single failure does not cascade through the batch.
Multi-account scheduling
Route posts to different social accounts per request without managing separate auth connections or API credentials.
Parallel platform targeting
A single post payload can target multiple platforms in one call so bulk volume does not multiply your request count.
Dashboard review for teams
Marketing and account managers can review bulk campaigns and approve drafts without making API calls directly.
Retry and error visibility
Failed posts surface in the status workflow so your team can fix and requeue without losing context or rebuilding the batch.
Developer example
Schedule a batch of platform-specific posts
Examples use bundle.social's public API shape: API key authentication, a post date, selected social account types, and platform-specific data.
1const posts = [2 { platform: "INSTAGRAM", text: "New drop is live.", uploadIds: ["upload_img_1"], type: "POST" },3 { platform: "TIKTOK", type: "VIDEO", uploadIds: ["upload_vid_1"], privacyLevel: "PUBLIC_TO_EVERYONE" },4 { platform: "LINKEDIN", text: "We shipped a new product today. Here is what changed." },5 { platform: "TWITTER", text: "Live now - link in bio." }6];78const results = [];910for (const { platform, ...data } of posts) {11 const response = await fetch("https://api.bundle.social/api/v1/post", {12 method: "POST",13 headers: {14 "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY,15 "Content-Type": "application/json"16 },17 body: JSON.stringify({18 teamId: "team_123",19 postDate: "2026-05-14T10:00:00.000Z",20 status: "SCHEDULED",21 socialAccountTypes: [platform],22 data: { [platform]: data }23 })24 });2526 results.push(await response.json());27}Supported content
Honest limitations
- Rate limits apply per API key. Space high-volume bulk operations across time to avoid hitting platform or API limits.
- Each post still requires platform-specific data for channels with unique content models.
- Media should be uploaded before bulk post creation so upload IDs are ready to reference.
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 there a dedicated bulk post endpoint?
For API-driven runs, use the standard POST /api/v1/post endpoint in a loop. For spreadsheet-driven workflows, use the CSV import flow so each row becomes its own scheduled post.
Can I bulk schedule posts from a CSV?
Yes. CSV import lets teams upload rows of social posts, map fields, and review row-level failures without blocking the rest of the import.
How do I handle failures in a bulk run?
Each post returns its own status. Check the response for each request and retry failed posts individually rather than re-running the entire batch.
Can I bulk-schedule to multiple platforms at once?
Yes. Each post request can include multiple socialAccountTypes and platform-specific data blocks in a single call.
Is this useful for AI content tools?
Yes. AI tools that generate campaign content can call the post API in a loop for each piece of content without needing a special bulk mode.
What rate limits apply?
Rate limits depend on your plan. For high-volume use cases, limit concurrency, space requests across time, and contact the team to discuss volume needs.