Skip to Content

Posts API

List, create, and manage posts programmatically.

List Posts

Retrieve all posts in a workspace.

GET /rest/v1/posts?workspace_id=eq.<workspace-id>&select=*

Query Parameters

ParameterTypeDescription
workspace_iduuidRequired. Filter by workspace
statusstringFilter by status: NONE, PENDING, RUNNING, SUCCESS, FAILURE
orderstringSort order (e.g., created_at.desc)

Response

[ { "id": 1, "workspace_id": "uuid", "automation_id": 1, "channel_id": 5, "status": "SUCCESS", "content": { "content": "Check out these marketing tips...", "media": [ { "type": "image", "url": "https://..." } ] }, "external_id": "platform-post-id", "link": "https://instagram.com/p/...", "created_at": "2025-01-01T00:00:00Z", "published_at": "2025-01-01T00:01:00Z" } ]

Get Post

Retrieve a single post with related data.

GET /rest/v1/posts?id=eq.<id>&select=*,channels(*,connections(*)),automations(*)

Update Post

Update a post’s content before publishing.

PATCH /rest/v1/posts?id=eq.<id> Content-Type: application/json { "content": { "content": "Updated post text", "media": [] } }

Content Structure

The content field is a JSON object whose shape depends on the target platform:

Social Post

{ "content": "Post text", "media": [{ "type": "image", "url": "https://..." }] }

Blog Post

{ "title": "Article Title", "content": "<h2>Introduction</h2><p>...</p>", "excerpt": "Short summary", "tags": ["marketing", "social-media"], "media": [{ "type": "image", "url": "https://..." }] }

Discord Post

{ "content": "Message text", "media": [{ "type": "image", "url": "https://..." }], "embed": { "title": "Embed Title", "description": "Embed description", "url": "https://..." } }

Delete Post

DELETE /rest/v1/posts?id=eq.<id>

Post Statuses

StatusDescription
NONECreated but not queued
PENDINGQueued for publishing
RUNNINGCurrently being published
SUCCESSPublished successfully
FAILUREPublishing failed
Last updated on