# 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](/docs/posting/create-posts/content-types.md) - Details on different content formats
* [Auto-Scheduling](/docs/posting/create-posts/publishing-methods/auto-scheduling.md) - Advanced AI-based scheduling options
* [Recurring Posts](/docs/posting/create-posts/publishing-methods/recurring-posts.md) - Setting up repeating content
* [Network Reference](/docs/posting/create-posts/networks.md) - Platform-specific scheduling limitations


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://publer.com/docs/posting/create-posts/publishing-methods/manual-scheduling.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
