---
title: "Pause a recurring post"
method: POST
path: "/recurring-posts/{id}/pause"
tags: ["Recurring posts"]
---

# Pause a recurring post

`POST /recurring-posts/{id}/pause`

## Request

- Base URL: `https://post.adaptlypost.com/post/api/v1`
- URL: `https://post.adaptlypost.com/post/api/v1/recurring-posts/{id}/pause`
- Auth: HTTP bearer

Stops creating occurrences and deletes the upcoming scheduled post. Requires the `posts.draft` permission.

## Path parameters

- `id` string, required

## Headers

- `X-Workspace-Id` string

## Response `200`

The paused recurring post

- RecurringPost
  - `id` string
  - `userId` string
  - `status` 'ACTIVE' | 'PAUSED' | 'ENDED'
  - `pauseReason` 'USER' | 'CONSECUTIVE_FAILURES' | 'SUBSCRIPTION_INACTIVE' | 'ACCESS_LOST' | 'CONNECTION_REMOVED' | 'INVALID_CONTENT'
  - `lastError` string
  - `frequency` 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'YEARLY'
  - `interval` integer
  - `weekdays` string[]
  - `startsAt` string, date-time
  - `timezone` string
  - `endsOn` string, date-time
  - `maxOccurrences` integer
  - `nextOccurrenceAt` string, date-time: The next occurrence that does not exist as a post yet. Absent once the series has ended
  - `occurrenceCount` integer: Posts created by the series so far
  - `contentType` 'TEXT' | 'IMAGE' | 'VIDEO' | 'CAROUSEL' | 'DOCUMENT': `CAROUSEL` takes 2 or more items in `mediaUrls`, up to 4 on TWITTER, BLUESKY and MASTODON, 5 on PINTEREST, 10 on INSTAGRAM, FACEBOOK and THREADS, 20 on LINKEDIN, 30 on TUMBLR and 35 on TIKTOK. A TIKTOK carousel takes JPEG or WebP photos only. INSTAGRAM and THREADS accept images and videos in the same carousel; every other platform takes images only, and YOUTUBE has no carousel. `DOCUMENT` publishes one PDF, PPT, PPTX, DOC or DOCX file (max 100 MB, 300 pages) as a LinkedIn document post, and is LinkedIn only: any other platform in the same request is rejected with a 400
  - `text` string
  - `mediaUrls` string[]
  - `mediaAltTexts` string[]
  - `thumbnailUrl` string
  - `thumbnailTimestampMs` number: Video frame timestamp (ms) used as the thumbnail
  - `platformTypes` PlatformType[]
  - `platforms` PostPlatform[]
    - `id` string
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `platform` 'FACEBOOK' | 'INSTAGRAM' | 'THREADS' | 'TIKTOK' | 'TWITTER' | 'BLUESKY' | 'LINKEDIN' | 'PINTEREST' | 'YOUTUBE' | 'MASTODON' | 'TELEGRAM' | 'GOOGLE_BUSINESS' | 'TUMBLR'
    - `status` 'PENDING' | 'PUBLISHING' | 'PUBLISHED' | 'FAILED'
    - `connectionId` string
    - `pageId` string: For FACEBOOK, the Facebook page id — the same value as `pageId` on /social-accounts, and identical to `facebookPageExternalId` below. Posts created before that id was recorded return the account `id` from /social-accounts instead
    - `accountName` string
    - `text` string
    - `platformPostId` string
    - `postUrl` string: Public link to the published post, set once the post is published. Instagram and Facebook stories expire after 24 hours, so for them it links to the profile or page that posted them
    - `errorMessage` string
    - `publishedAt` string, date-time
    - `mediaUrls` string[]: The media as submitted. After publishing, some platforms replace these with their own CDN links, which expire, and the uploaded source files are removed. Use `previewUrls` for anything you display later
    - `mediaAltTexts` string[]
    - `mediaAspectRatio` 'SQUARE' | 'PORTRAIT' | 'VERTICAL' | 'LANDSCAPE': The aspect ratio chosen for this platform through `platformAspectRatios`; absent when the images went out as uploaded
    - `mediaAspectRatioFit` 'CROP' | 'PAD'
    - `thumbnailUrl` string: The thumbnail image set for this platform through `platformThumbnails`; absent when the platform uses the post-level thumbnail
    - `thumbnailTimestampMs` integer: The video frame (ms) set for this platform through `platformThumbnails`
    - `previewUrls` string[]: Preview images we host (WebP, up to 720px), a still frame for videos, filled in shortly after publishing starts. They stay available after the source files and the platform links in mediaUrls are gone. Normally one entry per media item, where an empty string means that item could not be rendered; a post recovered after its media expired carries a single cover instead
    - `firstComment` string: The first comment set through `firstComments`
    - `firstCommentStatus` 'PENDING' | 'PUBLISHED' | 'FAILED'
    - `firstCommentId` string: The platform's id of the published comment
    - `firstCommentError` string: Why the first comment failed
    - `firstCommentPublishedAt` string, date-time
    - `pinterestBoardId` string
    - `pinterestTitle` string
    - `pinterestLink` string
    - `tiktokTitle` string
    - `tiktokCaption` string
    - `tiktokPrivacyLevel` string
    - `tiktokAllowComments` boolean
    - `tiktokAllowDuet` boolean
    - `tiktokAllowStitch` boolean
    - `tiktokSendAsDraft` boolean
    - `tiktokAiGenerated` boolean
    - `tiktokBrandedContent` boolean
    - `tiktokBrandedOwnBrand` boolean
    - `tiktokAutoAddMusic` boolean
    - `tiktokDraftFallback` boolean: TikTok's daily active-user cap was hit, so the content was delivered to the TikTok inbox as a draft instead of published directly
    - `instagramPostType` string
    - `instagramTrialGraduation` 'MANUAL' | 'SS_PERFORMANCE': Set when this Instagram reel publishes as a trial reel; see `InstagramPostConfig.trialGraduation`
    - `instagramCollaborators` string[]: Instagram usernames invited as collaborators; see `InstagramPostConfig.collaborators`
    - `instagramAiGenerated` boolean: Set when the Instagram post carries the AI info label; see `InstagramPostConfig.aiGenerated`
    - `instagramUsername` string: The Instagram handle the entry was published from. Set once an INSTAGRAM entry publishes
    - `instagramAudioId` string
    - `instagramAudioTitle` string
    - `instagramAudioArtist` string
    - `instagramAudioVolume` integer
    - `instagramVideoVolume` integer
    - `facebookPostType` string
    - `facebookVideoTitle` string
    - `facebookTextFormatPresetId` string: The Facebook text background sent with the post; see `FacebookPostConfig.textFormatPresetId`
    - `facebookImageLayout` 'GRID' | 'CAROUSEL': See `FacebookPostConfig.imageLayout`
    - `facebookCarouselCards` FacebookCarouselCard[]: The carousel cards, one per image; see `FacebookPostConfig.carouselCards`
      - `link` string, uri, required: The http or https URL the card opens
      - `title` string: The card's headline. Without it Facebook uses the linked page's title
      - `description` string: The line under the headline, such as a price or the domain. Without it Facebook uses the linked page
    - `facebookPageExternalId` string: The Facebook page id this platform entry publishes to. Always set for FACEBOOK entries created since the id was recorded
    - `youtubePostType` string
    - `youtubeVideoTitle` string
    - `youtubeTags` string[]
    - `youtubePrivacyStatus` string
    - `youtubeLicense` string
    - `youtubeNotifySubscribers` boolean
    - `youtubeAllowEmbedding` boolean
    - `youtubeMadeForKids` boolean
    - `youtubeCategoryId` string
    - `youtubePlaylistId` string
    - `linkedinDocumentTitle` string: The title set for a LinkedIn `DOCUMENT` post, when one was given
    - `linkedinReshareOf` string: The LinkedIn post URN this account reshares, when the post is a reshare
    - `twitterKeepLinks` boolean: Whether links in this X post stay clickable. Only honored for AppSumo lifetime deals
    - `googleBusinessTopicType` string
    - `googleBusinessCallToActionType` string
    - `googleBusinessCallToActionUrl` string
    - `googleBusinessEventTitle` string
    - `googleBusinessEventStart` string
    - `googleBusinessEventEnd` string
    - `googleBusinessOfferCouponCode` string
    - `googleBusinessOfferRedeemUrl` string
    - `googleBusinessOfferTerms` string
    - `tumblrTags` string[]
    - `tumblrTitle` string
    - `tumblrSourceUrl` string
  - `createdAt` string, date-time
  - `updatedAt` string, date-time

## Other responses

- `401`: Invalid or missing API key
- `403`: The key's role does not hold `posts.draft`
- `404`: Recurring post not found
- `429`: Rate limit exceeded

## Changes

- **2026-10-19** `8390a5fa9a0d`: 2 info
  - added the optional property `platforms/items/facebookCarouselCards` to the response with the `200` status
  - added the optional property `platforms/items/facebookImageLayout` to the response with the `200` status

[Operation history](https://skmtc.dev/adaptlypost/apis/adaptlypost-public-api/changes/recurring-posts/:id/pause/post.md)

---

[API](https://skmtc.dev/adaptlypost/apis/adaptlypost-public-api.md) · [All operations](https://skmtc.dev/adaptlypost/apis/adaptlypost-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adaptlypost/apis/adaptlypost-public-api/revisions/8390a5fa9a0d?raw)
