Core resource
Posts
Create one unified post with deterministic targets, platform options, safe retries, and asynchronous delivery.
8
Endpoint summary
All operations in this resource, with the minimum accepted key scope.
Method & endpointPurposeScope
GET
/api/postsList and filter posts
readPOST
/api/postsCreate a draft, scheduled, queued, or immediate post
publishGET
/api/posts/{id}Get aggregate and target status
readPATCH
/api/posts/{id}Update a draft or scheduled post
publishDELETE
/api/posts/{id}Cancel a draft or scheduled post
publishPOST
/api/posts/{id}/publishPublish a draft immediately
publishGET
/api/posts/{id}/logsRead the sanitized delivery timeline
readGET
/api/posts/statsRead post analytics snapshots
read01
Create a post
Pass profile IDs for deterministic routing. A stable
Idempotency-Key makes the logical request safe to retry for 72 hours.Publish nowPostGate API
curl -X POST "https://postgate.studio/api/posts?profile_group_id=grp_acme123" \
-H "Authorization: Bearer $POSTGATE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: launch-post-001" \
-d '{
"post": { "body": "Launch day. 🚀" },
"profiles": ["pro_instagram123", "pro_linkedin456"],
"media": ["https://cdn.example.com/launch.jpg"]
}'02
One endpoint, four publishing modes
draft: true saves for approval. An ISO 8601 scheduled_at publishes at a fixed instant. scheduled_at: "queue" selects the next recurring slot. With none of those fields, delivery starts immediately.03
Add platform options without forking the request
Place provider-specific fields under
post.options.<platform>. Use body_overrides when a target needs different copy while the rest of the post remains shared.Platform-specific optionsPostGate API
{
"post": {
"body": "Watch the full launch story.",
"options": {
"pinterest": { "board_id": "12345", "title": "Launch story" },
"linkedin": { "visibility": "PUBLIC" },
"body_overrides": { "instagram": "Launch story ✨" }
}
},
"profiles": ["pro_pinterest", "pro_linkedin", "pro_instagram"]
}04
Read targets, not only the aggregate
The post status summarizes the request. The
targets array is the operational truth for each destination: status, attempt count, next retry, error, platform ID, and permalink.Partial is a successful terminal result
A
partial post has at least one published target and at least one failed or skipped target. Preserve the successful permalinks and act only on failed destinations.