Skip to main content
Posts

Retry Post

Re-publish the platform targets that failed on a post, now or on a schedule.

When a post publishes to several platforms and one of them fails, you don't have to rebuild the whole request. Retry re-sends only the platforms that failed, using the original post content and media. Platforms that already published are never touched.

Endpoint

POST https://api.postpeer.dev/v1/posts/{postId}/retry

Path Parameters

ParameterTypeDescription
postIdstringThe ID of the post to retry

Body Parameters

Both fields are optional. Omit the body to retry immediately.

ParameterTypeDescription
scheduledForstringISO 8601 time to schedule the retry. Omit to retry right away.
timezonestringIANA timezone for the scheduled retry (e.g. America/New_York). Defaults UTC.

How it works

  • Only platform targets with a failed status are re-published. Already-published platforms are skipped, so you never double-post.
  • The retry reuses the original post's content, media, and per-platform settings. You don't resend the payload.
  • Credits are charged for the retried platforms (they were refunded when they failed), and refunded again if the retry fails too.

Retry now

curl -X POST "https://api.postpeer.dev/v1/posts/post_abc123/retry" \
  -H "x-access-key: YOUR_API_KEY"
import PostPeer from '@postpeer/node';

const client = new PostPeer();
await client.posts.retry({ path: { postId: 'post_abc123' } });
from postpeer import PostPeer

with PostPeer() as client:
    client.posts.retry(post_id="post_abc123")

Schedule the retry

curl -X POST "https://api.postpeer.dev/v1/posts/post_abc123/retry" \
  -H "x-access-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "scheduledFor": "2026-01-01T15:00:00Z",
    "timezone": "America/New_York"
  }'
import PostPeer from '@postpeer/node';

const client = new PostPeer();
await client.posts.retry({
	path: { postId: 'post_abc123' },
	body: {
		scheduledFor: '2026-01-01T15:00:00Z',
		timezone: 'America/New_York',
	},
});
from postpeer import PostPeer

with PostPeer() as client:
    client.posts.retry(
        post_id="post_abc123",
        scheduled_for="2026-01-01T15:00:00Z",
        timezone="America/New_York",
    )

Response

The response matches Create Post: status is pending / publishing for an immediate retry, or scheduled when you pass scheduledFor.

{
	"success": true,
	"status": "scheduled",
	"postId": "post_abc123",
	"scheduledFor": "2026-01-01T15:00:00.000Z",
	"platforms": [{ "platform": "linkedin", "success": true }]
}

Status Codes

CodeMeaning
202Retry accepted (publishing now or scheduled)
400No failed platforms to retry, or scheduledFor is not in the future
402Not enough credits to retry the failed platforms
404Post not found

On this page