API Reference / Posts

Publish a post

PostPiper API: publish an X, LinkedIn, or Pinterest draft immediately to the connected account. No request body; returns updated post status.

POSThttps://api.postpiper.ai/v1/posts/{postId}/publish

The draft needs a connected account for its platform. X supports text or images; LinkedIn requires text of 1–3,000 characters and supports up to 20 JPEG or PNG images from media_urls. Pinterest requires a public Board, title, description up to 800 characters and exactly one JPEG/PNG image. The endpoint takes no request body.

An uncertain upstream failure can mean the post already exists. Check the platform account before retrying.

Path and query parameters

NameTypeDescription
postIdUUID, requiredID of an owned draft.

Example request

Terminal
curl -X POST -H "Authorization: Bearer $POSTPIPER_API_KEY" "https://api.postpiper.ai/v1/posts/<post-uuid>/publish"

Response

200 OK. Returns a published post. The platform ID and URL may be null even after success.

JSON
{
  "post": {
    "id": "<post-uuid>",
    "content": "Hello from PostPiper",
    "media_urls": [],
    "asset_ids": [],
    "platform": "x",
    "status": "published",
    "account_id": "<account-uuid>",
    "created_at": "2030-10-12T01:00:00.000Z",
    "published_at": "2030-10-12T01:01:00.000Z",
    "platform_post_id": "<platform-id>",
    "platform_post_url": "https://x.com/example/status/123"
  }
}

Errors

  • 400X_AUTH_EXPIRED or LINKEDIN_AUTH_EXPIRED.
  • 401Missing or invalid API key.
  • 403API key lacks the required scope.
  • 409POST_NOT_DRAFT.
  • 429Platform rate limit.
  • 502X_PUBLISH_FAILED or LINKEDIN_PUBLISH_FAILED; the outcome may be uncertain.