Create a post draft
Creates a `PublishRequest` in the `draft` state. **This route never calls Zernio.** The dashboard renders a preview per platform from `platforms` and shows the `approveUrl`; only a click on that link — `POST /social/posts/{id}/approve` — reaches Zernio's create-post. Pass `scheduledFor` to schedule, or omit it to publish as soon as the user approves. Media go to Zernio as short-lived signed Garage URLs minted at approval time, so the asset ids here are putty-internal and never leave putty as a path.
Creates a PublishRequest in the draft state. This route never calls Zernio. The dashboard renders a preview per platform from platforms and shows the approveUrl; only a click on that link — POST /social/posts/{id}/approve — reaches Zernio's create-post. Pass scheduledFor to schedule, or omit it to publish as soon as the user approves. Media go to Zernio as short-lived signed Garage URLs minted at approval time, so the asset ids here are putty-internal and never leave putty as a path.
Authorization
bearerAuth A bearer token. The Account routes accept a Privy access token; the MCP transport accepts an sk- API key issued by POST /account/api-keys.
In: header
Request Body
application/json
The draft to create.
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/social/posts" \ -H "Content-Type: application/json" \ -d '{ "platforms": [ { "accountId": "string", "platform": "string", "text": "string" } ] }'{ "id": "string", "projectId": "string", "platforms": [ { "accountId": "string", "platform": "string", "text": "string" } ], "assetIds": [ "string" ], "scheduledFor": "string", "status": "draft", "zernioPostId": "string", "lastError": "string", "approveUrl": "string", "createdAt": "string", "updatedAt": "string"}List your posts and scheduled queue GET
Returns the caller's posts, newest first: drafts awaiting approval, the scheduled queue, and posts already published or failed. Each entry carries the per-platform text the Publish page previews, the putty asset ids, and an `approveUrl` for a draft.
Read one post GET
Returns one of the caller's posts. A post that belongs to another user answers the same 404 as one that does not exist.