# Recurring Posts

Automatically publish the same post at regular intervals, indefinitely or until a specified stop condition.

### Endpoint

```bash
POST /api/v1/posts/schedule
```

### Request Headers

<table><thead><tr><th width="185.65020751953125">Header</th><th width="105.73382568359375">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>Your workspace identifier</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 `recurring` object under each post:

```json
{
  "bulk": {
    "state": "recurring",
    "posts": [
      {
        "networks": {
          "default": {
            "type": "status",
            "text": "Weekly reminder: Check our latest updates every Monday!"
          }
        },
        "accounts": [
          { "id": "ACCOUNT_ID" }
        ],
        "recurring": {
          "start_date": "2025-06-05T13:29+02:00",
          "end_date": "2025-07-21T13:29+02:00",
          "repeat": "weekly",
          "days_of_week": [
            1,
            4,
            6
          ],
          "repeat_rate": 1
        }
      }
    ]
  }
}
```

#### Key Fields

* `state`: must be `"recurring"` for recurring posts

#### Recurring Parameters

<table><thead><tr><th width="153.646728515625">Parameter</th><th width="84.1544189453125">Type</th><th width="273.3671875">Description</th><th>Example</th></tr></thead><tbody><tr><td><code>start_date</code></td><td>string</td><td>ISO 8601 timestamp for the first occurrence</td><td><pre><code>2025-06-05T13:29+02:00
</code></pre></td></tr><tr><td><code>end_date</code></td><td>string</td><td>ISO 8601 timestamp to stop recurrence (optional)</td><td><pre><code><strong>2025-07-21T13:29+02:00
</strong></code></pre></td></tr><tr><td><code>repeat</code></td><td>string</td><td>The interval unit for repetition. Supported values: <code>"daily"</code>, <code>"weekly"</code>, <code>"monthly"</code>, <code>yearly</code></td><td><code>"weekly"</code></td></tr><tr><td><code>repeat_rate</code></td><td>integer</td><td>How often to repeat in the chosen interval.<br>For example, <code>6</code> with <code>"weekly"</code> means every 6 weeks.</td><td><code>6</code></td></tr><tr><td><code>days_of_week[]</code></td><td>array</td><td>For weekly repeats, which days to schedule on.<br>Values: <code>[0, 1, 2, 3, 4, 5, 6]</code></td><td><code>[0,4]</code></td></tr></tbody></table>

### Examples

#### Weekly Recurring Post

```json
{
  "bulk": {
    "state": "recurring",
    "posts": [{
      "networks": {
        "facebook": {
          "type": "status",
          "text": "Weekly reminder: Check our latest updates every Monday!"
        }
      },
      "accounts": [{
        "id": "66f509f7db2797026a37ba76"
      }],
      "recurring": {   
        "start_date": "2025-06-05T13:29+02:00",
          "end_date": "2025-07-21T13:29+02:00",
          "repeat": "weekly",
          "days_of_week": [
            1
          ],
          "repeat_rate": 1
      }
    }]
  }
}
```

#### Biweekly Recurring with Limit

Every other Tuesday and Thursday:

```json
{
  "bulk": {
    "state": "recurring",
    "posts": [{
      "networks": {
        "facebook": {
          "type": "status",
          "text": "Biweekly product update: See what's improved!"
        }
      },
      "accounts": [{
        "id": "66f509f7db2797026a37ba76"
      }],
      "recurring": {
        
        "start_date": "2025-06-05T13:29+02:00",
        "end_date": "2025-07-21T13:29+02:00",
        "repeat": "weekly",
        "days_of_week": [
          1,
          3,
        ],
        "repeat_rate": 1
      }
    }]
  }
}
```

### How It Works

To create a recurring post, specify the recurrence parameters inside the `recurring` object:

* **`start_date`**: The date and time for the first occurrence.
* **`end_date`**: The last date and time for recurring posts to be generated.
* **`repeat`**: The repeat interval unit: `"daily"`, `"weekly"`, `"monthly"` or `"yearly"`.
* **`repeat_rate`**: Frequency of the interval. For example, `1` with `"weekly"` means every week, `2` means every other week, etc.
* **`days_of_week`**: Which days of the week to post on (e.g., `[1, 3]` for Tuesday and Thursday).

### Platform Support

<table data-header-hidden><thead><tr><th width="198.1650390625"></th><th width="169.7955322265625"></th><th></th></tr></thead><tbody><tr><td>Platform</td><td>Recurring Support</td><td>Notes</td></tr><tr><td>Facebook</td><td>Full support</td><td>No special requirements</td></tr><tr><td>Instagram</td><td>Full support</td><td>No special requirements</td></tr><tr><td>LinkedIn</td><td>Full support</td><td>No special requirements</td></tr><tr><td>Twitter</td><td>Limited</td><td>Requires 10+ variations using Spintax Generator</td></tr><tr><td>Pinterest</td><td>Limited</td><td>Requires 10+ variations using Spintax Generator</td></tr><tr><td>Google Business Profile</td><td>Limited</td><td>Requires 10+ variations using Spintax Generator</td></tr><tr><td>YouTube</td><td>Not supported</td><td>API limitations</td></tr><tr><td>TikTok</td><td>Not supported</td><td>API limitations</td></tr><tr><td>WordPress</td><td>Not supported</td><td>API limitations</td></tr></tbody></table>

### Use Cases

* Regular reminders (e.g., weekly tips).
* Monthly newsletters or reports.
* Annual event notifications (e.g., holidays).
* Routine promotions or offers.

### Best Practices

* **Evergreen Content**: Use for timeless messages that benefit from repetition.
* **Stop Conditions**: Always set `end_date` to avoid indefinite runs.
* **Combine Actions**: Add follow-up comments or auto-deletion for full lifecycle management.
* **Audience Consideration**: Avoid fatigue by spacing posts appropriately.

### Recurring vs. Recycling

* **Recurring Posts**: Fixed dates/times on a repeating schedule.
* **Recycling Posts**: Fills open slots based on your posting calendar.

### Related Topics

* [Recycling Posts](/docs/posting/create-posts/publishing-methods/recycling-posts.md)
* [Scheduled Publishing](/docs/posting/create-posts/publishing-methods/manual-scheduling.md)
* [Auto-Scheduling](/docs/posting/create-posts/publishing-methods/auto-scheduling.md)


---

# 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/recurring-posts.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.
