> For the complete documentation index, see [llms.txt](https://publer.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://publer.com/docs/posting/create-posts/publishing-methods/recycling-posts.md).

# Recycling Posts

Automatically re-share a post on a regular cadence. Recycling is ideal for evergreen content, reminders, and promotional campaigns.

### Endpoint

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

### Request Headers

<table><thead><tr><th width="207.5693359375">Header</th><th width="101.125732421875">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 `recycling` object in your payload:

```json
{
  "bulk": {
    "state": "scheduled",
    "posts": [
      {
        "networks": {
          "facebook": {
            "type": "status",
            "text": "This content will be recycled multiple times."
          }
        },
        "accounts": [
          { "id": "66f509f7db2797026a37ba76" }
        ],
        "recycling": {
          "solo": true,
          "gap": 2,
          "gap_freq": "Week",
          "start_date": "2025-06-01",
          "expire_count": 3
        }
      }
    ]
  }
}
```

### Recycling Parameters

<table><thead><tr><th width="140.06024169921875">Field</th><th width="101.87750244140625">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>solo</code></td><td>boolean</td><td><code>true</code> to recycle this post individually (not grouped)</td></tr><tr><td><code>gap</code></td><td>number</td><td>Interval between reposts (e.g., <code>2</code> for every 2 units)</td></tr><tr><td><code>gap_freq</code></td><td>string</td><td>Unit of interval: <code>Day</code>, <code>Week</code>, or <code>Month</code></td></tr><tr><td><code>start_date</code></td><td>string</td><td>ISO date when recycling begins (e.g., <code>YYYY-MM-DD</code>)</td></tr><tr><td><code>expire_count</code></td><td>number</td><td>Maximum number of reposts</td></tr><tr><td><code>expire_date</code></td><td>string</td><td>ISO date to stop recycling (alternative to <code>expire_count</code>)</td></tr></tbody></table>

### Examples

#### Basic Recycling

Recycle every 2 weeks, up to 3 times:

```json
{
  "bulk": {
    "state": "scheduled",
    "posts": [{
      "networks": {
        "facebook": { "type": "status", "text": "Evergreen reminder!" }
      },
      "accounts": [{ "id": "66f509f7db2797026a37ba76" }],
      "recycling": {
        "gap": 2,
        "gap_freq": "Week",
        "expire_count": 3
      }
    }]
  }
}
```

#### Recycling with Expiration Date

Recycle monthly until end of year:

```json
{
  "bulk": {
    "state": "scheduled",
    "posts": [{
      "networks": {
        "default": { "type": "status", "text": "Monthly promotion reminder!" }
      },
      "accounts": [{ "id": "66f509f7db2797026a37ba76" }],
      "recycling": {
        "gap": 1,
        "gap_freq": "Month",
        "start_date": "2025-06-01",
        "expire_date": "2025-12-31"
      }
    }]
  }
}
```

### How It Works

1. Create a post with `recycling` settings.
2. Publer queues the post for reuse.
3. After each `gap` interval, the post is republished.
4. Recycling stops when `expire_count` or `expire_date` is reached.

### Platform Limitations

Due to API limitations and anti-spam policies, recycling has some platform-specific constraints:

<table data-header-hidden><thead><tr><th width="200.61279296875"></th><th width="181.296630859375"></th><th></th></tr></thead><tbody><tr><td>Platform</td><td>Recycling 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

* Promote evergreen blog posts or resources.
* Remind followers of ongoing events or offers.
* Keep your feed active with minimal manual effort.

### Best Practices

* Vary content slightly using Spintax to avoid spam filters.
* Choose sensible intervals—don’t recycle too frequently.
* Always set an expiration (`expire_count` or `expire_date`).
* Monitor engagement metrics to adjust recycling strategy.

### Recycling vs. Recurring

* **Recycling** fills open slots based on `gap` and `gap_freq`—ideal for evergreen content.
* **Recurring** publishes at exact times on a fixed repeat schedule (e.g., every Monday at 9 AM).

### Related Topics

* [Recurring Posts](/docs/posting/create-posts/publishing-methods/recurring-posts.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://publer.com/docs/posting/create-posts/publishing-methods/recycling-posts.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
