Help CenterImport posts from a CSV file

Import posts from a CSV file

Use a CSV file when your posts are already in a spreadsheet. CSV import creates text posts only — to post images or video in bulk, use Create many posts from files.

Prepare your CSV file

The first row must be the column names. Only content is required.

Column Required What to put in it
content Yes The post text, up to 10,000 characters. It must also fit every selected platform's limit.
scheduled_at No When to publish. Leave empty to save the post as a draft.
first_comment No A first comment, up to 5,000 characters

Example:

content,scheduled_at,first_comment
"Monday tip: batch your content on Sunday.",2026-09-21T09:00:00+06:00,
"New blog post is live!",2026-09-22T09:00:00+06:00,"Read it here: https://example.com"

Rules:

  • Up to 100 rows and 1 MB.
  • Always add your time zone offset to scheduled_at, like +06:00 in the example. A time without an offset is read as UTC.
  • Keep each caption on one line. A caption with line breaks inside it is split into broken rows.
  • Column names are not case sensitive.

Import the file

  1. In the left menu, click Posts.
  2. Click Bulk Schedule, then Import a CSV.
  3. Drop your file into Upload CSV file, or click to browse. Click Next.
  4. Check the CSV Preview. It shows the columns it found and the first 5 rows. Fix any yellow warning, then click Next.
  5. In Post to accounts, select the channels. Every row goes to all the channels you select.
  6. Under Schedule strategy, choose Use dates from CSV.
  7. Click Import.

You see Import started. The import runs in the background. A progress bar on the Posts page shows how many rows are done. When it finishes you see Import Complete with the number of imported and failed posts.

Good to know

  • Choose Use dates from CSV. The Auto-fill schedule template option currently saves every row as a draft without a time.
  • A platforms column is ignored. Pick the channels in step 5 instead.
  • The import tells you how many rows failed, but not which ones. Compare the posts on the Posts page with your file to find the missing rows. The usual reasons are a caption that is too long for a platform, or an empty content.