---
title: "Edit all occurrences, pause or resume"
method: PATCH
path: "/api/recurring/{id}"
---

# Edit all occurrences, pause or resume

`PATCH /api/recurring/{id}`

## Request

- Base URL: `https://postwire.io`
- URL: `https://postwire.io/api/recurring/{id}`
- Auth: HTTP bearer

Changing the content, the rule, the networks or the guard replaces every waiting occurrence that was not edited by hand; the edited ones stay. status paused cancels the waiting occurrences (not the edited ones); active puts them back.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `platforms` string[]
  - `text` string: The post, when there is one text.
  - `variants` union[]: Texts used in turn: occurrence n uses variant ((n-1) mod count) + 1.
    - union
      - string
      - object
        - `text` string
        - `per_platform` object
  - `rule` object: When it repeats. Daylight saving: a time that does not exist on the day clocks go forward runs that much later (02:30 -> 03:30); a time that happens twice runs the first time.
    - `freq` 'daily' | 'weekly' | 'monthly', required
    - `interval` integer: Every N days / weeks / months, counted from start.
    - `days` string[]: weekly: the weekdays (default: the start date's).
    - `month_days` integer[]: monthly: days of the month; -1 = the last day. 31 falls on the last day of shorter months.
    - `times` string[]: 24-hour HH:MM, 1-4 a day. Default 09:00.
    - `timezone` string: IANA name. Default: the brand's queue timezone, else UTC.
    - `start` string, date: First day (default today); also the anchor of every N.
    - `until` string, date: Last day, inclusive.
    - `count` integer: Stop after N occurrences.
  - `guard_days` integer: When an occurrence is published, a network where the same text went out in the last N days (3-hour margin) is skipped, with code duplicate_recent in its result. 0 = off.
  - `per_platform` object
  - `media` object[]
  - `photo_url` string
  - `video_url` string
  - `options` object
  - `title` string
  - `label` string
  - `brand_id` string, uuid
  - `status` 'active' | 'paused'

## Response `200`

{ ok, recurring, replaced, queued_now, warnings }

## Other responses

- `404`: not_found

---

[API](https://skmtc.dev/postwire/apis/postwire-api.md) · [All operations](https://skmtc.dev/postwire/apis/postwire-api/llms.txt) · [OpenAPI document](https://skmtc.dev/postwire/apis/postwire-api/revisions/513a409ab8f7?raw)
