putty
API ReferenceArtifacts

Approve a draft and publish it

**The only route that calls Zernio's create-post.** A user clicking Approve in the dashboard lands here; a model or an external MCP caller never does, which is why the tool hands back an `approveUrl` instead. Sends `scheduledFor` when the draft has one and `publishNow` when it does not, and moves the row out of `draft` before the call so a crash mid-publish cannot leave something a retry would post twice. Requires the caller's own Privy session: an `sk-` key cannot publish on a user's behalf, exactly as it cannot sign a transaction.

POST
/social/posts/{id}/approve

The only route that calls Zernio's create-post. A user clicking Approve in the dashboard lands here; a model or an external MCP caller never does, which is why the tool hands back an approveUrl instead. Sends scheduledFor when the draft has one and publishNow when it does not, and moves the row out of draft before the call so a crash mid-publish cannot leave something a retry would post twice. Requires the caller's own Privy session: an sk- key cannot publish on a user's behalf, exactly as it cannot sign a transaction.

Authorization

bearerAuth
AuthorizationBearer <token>

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

Path Parameters

id*string

The publish request id.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/social/posts/string/approve"
{  "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"}