Publishing Methods

A concise guide to all content publishing methods available via the Publer API. Choose the method that best fits your workflow, from instant publishing to automated recycling and recurring schedules.

Available Methods

Method
Use Case
Key Parameters
Business Value

Publish content right away

No scheduled_at

Time-sensitive announcements, breaking news

Publish at specific date/time

scheduled_at

Content calendar planning, timed campaigns

Save for later use

state: draft

Workspace collaboration, content preparation

Automatically scheduling posts

auto: true

Engagement optimization, workload reduction

Reuse content multiple times

recycling object

Evergreen content, extended reach

Create repeating posts

recurring object

Regular updates, consistent presence

Immediate Publishing

Send your post to networks right away.

Endpoint:

POST /api/v1/posts/schedule/publish

Request example:

{
  "bulk": {
    "state": "scheduled",
    "posts": [
      {
        "networks": {
          "facebook": {
            "type": "status",
            "text": "Breaking news update!"
          }
        },
        "accounts": [
          {
            "id": "66db83154e299efa19a2d8eb"
            // No scheduled_at parameter
          }
        ]
      }
    ]
  }
}

Implementation Notes

  • Omit scheduled_at entirely

  • Content is processed immediately via the schedule/publish endpoint

  • Supports all content types and network-specific options

Learn more about immediate publishing


Scheduled Publishing

Plan posts for future dates and times across multiple networks.

Endpoint:

POST /api/v1/posts/schedule

Request example:

{
  "bulk": {
    "state": "scheduled",
    "posts": [
      {
        "networks": {
          "facebook": {
            "type": "status",
            "text": "Scheduled announcement for next week!"
          }
        },
        "accounts": [
          {
            "id": "66db83154e299efa19a2d8eb",
            "scheduled_at": "2025-05-15T14:30:00Z"
          }
        ]
      }
    ]
  }
}

Implementation Notes

  • Include a valid ISO 8601 scheduled_at timestamp

  • Times must be at least 1 minute in the future

  • Supports timezone offsets

  • Each account can have its own scheduled_at

Learn more about scheduled publishing


Draft Posts

Save work-in-progress content for review or refinement.

Endpoint:

POST /api/v1/posts/schedule

Request example (private draft):

{
  "bulk": {
    "state": "draft_private",
    "posts": [
      {
        "networks": {
          "facebook": {
            "type": "status",
            "text": "Draft post for later review"
          }
        },
        "accounts": [
          {
            "id": "66f509f7db2797026a37ba76"
          }
        ]
      }
    ]
  }
}

Visibility Options

State Value

Description

Access Control

draft_private

Private draft

Only accessible to the creator

draft_public or draft

Workspace-visible draft

Available to all workspace members with appropriate permissions

Learn more about draft posts


Auto-Scheduling

Let Publer pick the best posting times within a date range.

Endpoint:

POST /api/v1/posts/schedule

Before auto-scheduling, you need to keep in mind that:

  • You need a posting schedule. Posting schedules are account-specific. You can have only one posting schedule per account, however, it can consist of many time slots.

  • If you want the same posting schedule across multiple social accounts, you can do so by Duplicating Settings.

Request example:

{
  "bulk": {
    "state": "scheduled",
    "posts": [
      {
        "networks": {
          "facebook": {
            "type": "status",
            "text": "Autoschedule post"
          }
        },
        "accounts": [
          {
            "id": "66f509f7db2797026a37ba76"
          }
        ],
        "share_next": false,
        "range": {
          "start_date": "2025-05-23T07:45:00.000Z",
          "end_date": "2025-05-31T07:45:00.000Z"
        },
        "auto": true
      }
    ]
  }
}

Key Auto-Scheduling Parameters

Parameter

Type

Required

Description

auto

boolean

Yes

Set to true to enable auto-scheduling

range.start_date

string

Yes

ISO 8601 timestamp for earliest possible posting time

range.end_date

string

No

ISO 8601 timestamp for latest possible posting time

share_next

boolean

No

When true, uses next available optimal slot

Learn more about auto-scheduling


Recycling Content

Automatically repost content multiple times on a defined cadence.

Endpoint:

POST /api/v1/posts/schedule

To Recycle a post:

  • First, you need to create a post and a posting schedule. Click here to learn how to set up a new time slot for your posts.

Request example:

{
  "bulk": {
    "state": "scheduled",
    "posts": [
      {
        "networks": {
          "default": {
            "type": "status",
            "text": "This content will be recycled multiple times"
          }
        },
        "accounts": [
          {
            "id": "66f509f7db2797026a37ba76",
            "labels": [""]
          }
        ],
        "range": {
          "start_date": "2025-05-23T07:45:00.000Z",
          "end_date": null
        },
        "recycling": {
          "solo": true,
          "gap": 2,
          "gap_freq": "Week",
          "start_date": "2025-06-01",
          "expire_count": "3",
          "expire_date": "2025-07-15"
        }
      }
    ]
  }
}

Key recycling parameters:

Parameter

Type

Description

recycling.solo

boolean

When true, recycles as individual post; otherwise groups with other recycled content

recycling.gap

number

Frequency number (1, 2, 3, etc.)

recycling.gap_freq

string

Frequency unit (Day, Week, or Month)

recycling.start_date

string

Date to begin recycling (ISO 8601 format)

recycling.expire_count

string or number

Maximum number of times to recycle

recycling.expire_date

string

Date to stop recycling (ISO 8601 format, alternative to count)

Learn more about recycle posts


Recurring Posts

Schedule content to repeat on a predefined pattern.

Endpoint:

POST /api/v1/posts/schedule

Request example:

{
  "bulk": {
    "state": "recurring",
    "posts": [
      {
        "networks": {
          "default": {
            "type": "status",
            "text": "Weekly update post"
          }
        },
        "accounts": [
          {
            "id": "66f509f7db2797026a37ba76"
          }
        ],
        "recurring": {
          "start_date": "2025-05-01T03:45-04:00",
          "end_date": "2025-06-01T03:45-04:00",
          "repeat": "weekly",
          "days_of_week": [1, 5],
          "repeat_rate": 1
        }
      }
    ]
  }
}

Parameter

Type

Required

Description

state

string

Yes

Must be set to recurring

recurring.start_date

string

Yes

First occurrence date (ISO 8601 format)

recurring.end_date

string

No

Last occurrence date (ISO 8601 format)

recurring.repeat

string

Yes

Frequency type: daily, weekly, or monthly

recurring.days_of_week

array

For weekly

Array of weekdays (1=Monday, 7=Sunday)

recurring.repeat_rate

number

No

How often to repeat (e.g., 1=every week, 2=every other week)

recurring.time

string

No

Fixed time for posts (format: "HH:MM")

Learn more about recurring posts


Response Handling

All publishing methods return a job ID for asynchronous processing:

{
   "job_id": "6810dec617eae6d55d7a5e5b"
}

Checking Job Status

Always verify success by checking the job status:

GET /api/v1/job_status/6810dec617eae6d55d7a5e5b

Example success response:

{
    "status": "complete",
    "payload": {
        "failures": {}
    },
    "plan": {
        // Current user's plan details
    }
}

Job Status Values

Status

Description

Next Action

working

Job is still being processed

Wait and check again

complete

Job finished (check failures object for partial failures)

Review results

failed

Job failed completely

Check error details and retry

Advanced Usage Tips

  • Network-specific content: Override content for specific platforms

  • Multi-account publishing: Target multiple accounts in a single request

Last updated

Was this helpful?