Get Post
Retrieve one post by ID with full per-platform status, media and scheduling details from the AdaptlyPost REST API.
https://post.adaptlypost.com/post/api/v1/social-posts/:idReturns the full details of a specific post, including per-platform status, published URLs, and error messages if any platform failed.
Platform Status
Each platform in the platforms array has its own status. A post's top-level status reflects the aggregate, it will be COMPLETED if at least one platform succeeded, PARTIAL_FAILURE if some platforms failed, and FAILED only if all platforms failed.
Response fields
| Field | Description |
|---|---|
id | Post ID |
userId | The member who created the post |
status | DRAFT, SCHEDULED, PENDING, PUBLISHING, COMPLETED, PARTIAL_FAILURE or FAILED |
contentType | TEXT, IMAGE, VIDEO, CAROUSEL or DOCUMENT |
text | The default text for every platform |
scheduledAt, timezone | When the post is set to go out (ISO 8601), and the IANA timezone sent with it. scheduledAt is left out when the post has no time |
mediaUrls, mediaAltTexts | The media as submitted and its alt text per image, in the same order. Shared by every platform entry |
thumbnailUrl, thumbnailTimestampMs | The video thumbnail URL, or the frame picked as thumbnail in milliseconds, when one was sent |
recurringPostId, occurrenceAt | Set only on a post created by a recurring series. See the section on recurring posts below |
platforms | One entry per account the post goes to, with the fields below. A story added with shareToStory is an entry of its own, with instagramPostType or facebookPostType STORY |
createdAt, updatedAt | When the post was created and last changed |
Platform entry fields
| Field | Description |
|---|---|
id | Platform entry ID. POST /api/v1/social-posts/:id/retry accepts it in platformIds |
platform | FACEBOOK, INSTAGRAM, THREADS, TIKTOK, TWITTER, BLUESKY, MASTODON, LINKEDIN, PINTEREST, YOUTUBE, GOOGLE_BUSINESS or TELEGRAM. TELEGRAM only appears on posts created in the app |
status | PENDING, PUBLISHING, PUBLISHED or FAILED |
connectionId | The account id from /social-accounts |
pageId, facebookPageExternalId | FACEBOOK only. The Facebook page id, the same value as pageId on /social-accounts |
accountName | Name of the connected account |
text | The text sent to this platform, after platformTexts is applied |
platformPostId | The post's ID on the platform, once published |
postUrl | Public link to the published post, set once the platform has published it, on every platform. Instagram and Facebook stories expire after 24 hours, so for them it links to the profile or page that posted them |
errorMessage | Why this platform failed |
publishedAt | When this platform published the post |
mediaUrls, mediaAltTexts, previewUrls | The media and alt text sent to this platform, and the previews we host. See the section on media previews below |
thumbnailUrl, thumbnailTimestampMs | The thumbnail image or frame set for this platform through platformThumbnails. Absent when the platform uses the post thumbnail |
mediaAspectRatio, mediaAspectRatioFit | The shape set for this platform through platformAspectRatios (SQUARE, PORTRAIT, VERTICAL or LANDSCAPE) and how it was reached (CROP or PAD). Absent when the images went out as uploaded |
firstComment, firstCommentStatus, firstCommentId, firstCommentError, firstCommentPublishedAt | The first comment set for this platform and how it went. firstCommentStatus is PENDING until the comment goes out, then PUBLISHED with firstCommentId and firstCommentPublishedAt, or FAILED with firstCommentError. A failed comment leaves the post published. All null when the platform has no first comment |
tiktokDraftFallback | TikTok only. true when TikTok's daily direct-posting limit was hit and the content went to the TikTok inbox as a draft instead |
instagramTrialGraduation | Instagram only. MANUAL or SS_PERFORMANCE when the reel publishes as a trial reel. See Platform Configs |
instagramCollaborators | Instagram only. The usernames invited as collaborators. See Platform Configs |
instagramUsername | Instagram only. The Instagram handle the entry was published from, set once it publishes |
instagramAudioId, instagramAudioTitle, instagramAudioArtist, instagramAudioVolume, instagramVideoVolume | Instagram only. The audio added to the Reel through instagramConfigs[].audio, with its title, artist and both volumes |
facebookTextFormatPresetId | Facebook only. The text background sent with the post. See Platform Configs |
linkedinDocumentTitle | LinkedIn only. The title of a DOCUMENT post, when one was set |
twitterKeepLinks | X only. true when links in the X text were asked to stay clickable. Only honored for AppSumo lifetime deals |
googleBusiness* | Google Business Profile only. The post type, button, event and offer settings from googleBusinessConfigs, for example googleBusinessTopicType, googleBusinessCallToActionType or googleBusinessEventStart. See Platform Configs |
pinterest*, tiktok*, instagram*, facebook*, youtube* | The platform config the entry was created with, for example pinterestBoardId, tiktokPrivacyLevel, instagramPostType, facebookPostType or youtubePrivacyStatus. See Platform Configs |
Media Previews
Each platform has a previewUrls array with preview images we host (WebP, up to 720px, a still frame for videos). It is filled in shortly after publishing starts and normally holds one entry per media item, where an empty string means that item could not be rendered. A post whose media had already expired gets a single cover image instead. After publishing, mediaUrls may be replaced by the platform's own CDN links, which expire within days, and the uploaded source files are removed. Use previewUrls for anything you display later.
Recurring Posts
A post created by a recurring series has two more fields. recurringPostId is the series it belongs to. occurrenceAt is the series date it fills, and it stays the same when you reschedule the post. Other posts leave both fields out. Deleting one post of a series skips that date, and the series continues.
curl --request GET \
--url https://post.adaptlypost.com/post/api/v1/social-posts/post_xyz789 \
--header 'Authorization: Bearer <api-key>'{
"id": "post_xyz789",
"contentType": "IMAGE",
"text": "Check out our new product launch!",
"status": "COMPLETED",
"scheduledAt": "2026-03-14T14:00:00Z",
"timezone": "America/New_York",
"mediaUrls": ["https://cdn.adaptlypost.com/social-media-posts/uuid/photo.jpg"],
"platforms": [
{
"id": "pp_001",
"platform": "TWITTER",
"status": "PUBLISHED",
"accountName": "@yourhandle",
"platformPostId": "1234567890",
"postUrl": "https://x.com/i/status/1234567890",
"publishedAt": "2026-03-14T14:00:02Z",
"mediaUrls": ["https://cdn.adaptlypost.com/social-media-posts/uuid/photo.jpg"],
"previewUrls": ["https://cdn.adaptlypost.com/social-media-posts/previews/post_xyz789/1f0c9a7e2b4d6a8c0e1f.webp"]
},
{
"id": "pp_003",
"platform": "TIKTOK",
"status": "PUBLISHED",
"accountName": "@yourtiktok",
"tiktokDraftFallback": true,
"publishedAt": "2026-03-14T14:00:05Z",
"mediaUrls": ["https://cdn.adaptlypost.com/social-media-posts/uuid/photo.jpg"],
"previewUrls": ["https://cdn.adaptlypost.com/social-media-posts/previews/post_xyz789/1f0c9a7e2b4d6a8c0e1f.webp"]
},
{
"id": "pp_002",
"platform": "LINKEDIN",
"status": "FAILED",
"accountName": "Your Company",
"errorMessage": "Image format not supported",
"mediaUrls": ["https://cdn.adaptlypost.com/social-media-posts/uuid/photo.jpg"],
"previewUrls": ["https://cdn.adaptlypost.com/social-media-posts/previews/post_xyz789/1f0c9a7e2b4d6a8c0e1f.webp"]
}
],
"createdAt": "2026-03-14T13:55:00Z",
"updatedAt": "2026-03-14T14:00:10Z"
}