# Manual Scheduling

Schedule posts for future publication across one or more social networks using the Publer API.

### Endpoint

```html
POST /api/v1/posts/schedule
```

### Request Headers

<table><thead><tr><th width="201.383544921875">Header</th><th width="132.5247802734375">Required</th><th>Description</th></tr></thead><tbody><tr><td>Authorization</td><td>Yes</td><td><code>Bearer-API YOUR_API_KEY</code></td></tr><tr><td>Publer-Workspace-Id</td><td>Yes</td><td>Workspace ID for scheduling posts</td></tr><tr><td>Content-Type</td><td>Yes</td><td><code>application/json</code></td></tr><tr><td>Accept</td><td>No</td><td><code>application/json</code> (default)</td></tr></tbody></table>

### Request Body

Include a valid ISO 8601 `scheduled_at` timestamp under each account:

```json
{
  "bulk": {
    "state": "scheduled",
    "posts": [
      {
        "networks": {
          // network provider as key, e.g., facebook, twitter, etc
          "facebook": {
            "type": "status",
            "text": "This post was scheduled through the Publer API! #ScheduledContent"
          }
        },
        "accounts": [
          {
            "id": "66db83154e299efa19a2d8eb",
            "scheduled_at": "2025-06-01T09:00:00Z"
          }
        ]
      }
    ]
  }
}

```

### Sample Request

```bash
curl -X POST https://app.publer.com/api/v1/posts/schedule \
  -H "Authorization: Bearer-API YOUR_API_KEY" \
  -H "Publer-Workspace-Id: YOUR_WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "bulk": {
      "state": "scheduled",
      "posts": [{
        "networks": {
          "facebook": {
            "type": "status",
            "text": "This post was scheduled through the Publer API! #ScheduledContent"
          }
        },
        "accounts": [{
          "id": "66db83154e299efa19a2d8eb",
          "scheduled_at": "2025-06-01T09:00:00Z"
        }]
      }]
    }
  }'
```

### Sample Response

**Status**: 200 OK

```json
{
  "job_id": "6810dec617eae6d55d7a5e5b"
}
```

### Key Fields

* **state**\
  Must be set to `"scheduled"` for future publishing.
* **accounts\[].scheduled\_at**\
  ISO 8601 timestamp (with `Z` or offset) specifying when to publish.
* **networks**\
  Per-platform content configuration (e.g., `facebook`, `twitter`, `linkedin`).

### Important Considerations

#### Time Formats

* Use full ISO 8601 format, including timezone (e.g., `2025-06-01T09:00:00+02:00`).
* Timestamps must be at least 1 minute in the future.

### Best Practices

* **Buffer Time**: Space posts 1–2 minutes apart to avoid collisions.
* **Timezone Awareness**: Schedule using your audience’s local time.
* **Batch Scheduling**: Combine related posts in a single request for efficiency.
* **Verify**: Poll `/api/v1/job_status/{job_id}` to confirm scheduling success.

### Related Topics

* [Content Types](https://publer.com/docs/posting/create-posts/content-types) - Details on different content formats
* [Auto-Scheduling](https://publer.com/docs/posting/create-posts/publishing-methods/auto-scheduling) - Advanced AI-based scheduling options
* [Recurring Posts](https://publer.com/docs/posting/create-posts/publishing-methods/recurring-posts) - Setting up repeating content
* [Network Reference](https://publer.com/docs/posting/create-posts/networks) - Platform-specific scheduling limitations
