Recycling posts
Recycling a post asks Crier to put it out again every so often: an evergreen blog post every month, an offer every week. Each time a copy is created: a new post with its own id and recycledFrom pointing at the original.
Turn it on
Section titled “Turn it on”curl -X PUT "https://api.usecrier.com/v1/posts/pst_7q1w0e/recycling" \ -H "Authorization: Bearer $CRIER_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "every": 2, "unit": "week", "maxCopies": 6, "timezone": "Europe/Madrid", "variations": [ "Our autumn jacket is back 🍂", "The jacket you ask for the most, in stock again" ] }'const res = await fetch('https://api.usecrier.com/v1/posts/pst_7q1w0e/recycling', { method: 'PUT', headers: { Authorization: `Bearer ${process.env.CRIER_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ "every": 2, "unit": "week", "maxCopies": 6, "timezone": "Europe/Madrid", "variations": [ "Our autumn jacket is back 🍂", "The jacket you ask for the most, in stock again" ] }),});const { data } = await res.json();import os, requests
res = requests.put( "https://api.usecrier.com/v1/posts/pst_7q1w0e/recycling", headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"}, json={ "every": 2, "unit": "week", "maxCopies": 6, "timezone": "Europe/Madrid", "variations": [ "Our autumn jacket is back 🍂", "The jacket you ask for the most, in stock again" ] },)data = res.json()["data"]| Field | What it does |
|---|---|
every and unit |
Every how many weeks (week) or months (month). From 1 to 52. |
startAt |
When the first copy goes out. By default, one interval after the post’s date. |
maxCopies |
Stop after this many copies (up to 100). |
until |
Stop after this date. |
variations |
2 to 20 texts used in turn instead of the original. A target’s own text still wins. |
timezone |
The time zone the interval is counted in, so copies keep their local time when the clocks change. UTC by default. |
Follow it and stop it
Section titled “Follow it and stop it”The original post carries recycling with the rule, whether it is active, how many copies went out and when the next one does (nextAt). Each copy fires the post.recycled webhook when it is created, then the usual post events (post.published, post.failed…).
curl -X DELETE "https://api.usecrier.com/v1/posts/pst_7q1w0e/recycling" \ -H "Authorization: Bearer $CRIER_API_KEY"await fetch('https://api.usecrier.com/v1/posts/pst_7q1w0e/recycling', { method: 'DELETE', headers: { Authorization: `Bearer ${process.env.CRIER_API_KEY}`, },});import os, requests
requests.delete( "https://api.usecrier.com/v1/posts/pst_7q1w0e/recycling", headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"},)Only original posts with a date, on networks that accept repeated content, can be recycled. Copies cannot be recycled themselves.
© 2026 Crier by TWOFACES ·usecrier.com ·Dashboard ·soporte@twofacesco.com