> 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 dynamically by asking a question.

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

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
