Publishing

Bulk publishing

Send groups of posts with one request

When you have dozens or hundreds of posts ready — a content calendar for a quarter, a migration from another tool, a batch of AI-generated content — bulk publishing gets them all scheduled in one action.

Dashboard: CSV import

1

Prepare a CSV

Columns we accept: content, integrations (comma-separated integration IDs or platform names), schedule_at (ISO 8601), optional media URLs, optional post_type.

bulk.csv
content,integrations,schedule_at,post_type
"Launching v2 today!",x;linkedin,2026-05-01T09:00:00Z,
"Thread on scaling tips…",x,2026-05-02T14:00:00Z,thread
"Behind the scenes reel",instagram;tiktok,2026-05-03T18:00:00Z,reel
2

Upload from the Posts list

Click Import → CSV. We parse, validate, and show a preview. Rows with errors are flagged with the reason; valid rows are scheduled.

3

Review and confirm

The preview shows every post’s destination, content snippet, and resolved time. Hit Confirm and all valid rows become scheduled posts at once.

Imports are all-or-nothing for validation

If any row fails validation, you can choose to skip that row and import the rest, or cancel and fix the CSV. Partial imports never leave you with half a launch.

API: group endpoint

For programmatic use, POST /v1/posts/grouptakes an array of posts in one request. Up to 50 per call. Scheduled atomically — either every post is created, or none are.

json
{
  "posts": [
    {
      "content": "Day 1 of launch week",
      "integrations": ["int_x_abc"],
      "schedule_at": "2026-05-01T09:00:00Z"
    },
    {
      "content": "Day 2 of launch week",
      "integrations": ["int_x_abc"],
      "schedule_at": "2026-05-02T09:00:00Z"
    }
  ]
}

The response is an array of created posts:

json
{
  "posts": [
    { "id": "po_abc", "status": "scheduled", "schedule_at": "…" },
    { "id": "po_def", "status": "scheduled", "schedule_at": "…" }
  ]
}

Canceling a group

All posts from one POST /v1/posts/group call share a group_id. Cancel the entire group with a single call:

curl
curl -X DELETE https://api.openpost.so/v1/posts/group/grp_xyz \
  -H "Authorization: Bearer $OP_KEY"

Rate limits

Bulk creation counts against your per-workspace API rate limit of 300 req/min (same on all plans). With the 50-post cap per call, that is up to 15,000 posts per minute when pacing requests tightly. If you need more, contact support.

Last updated April 2026 Edit this page