List posts
Returns posts created for the profiles available to the API key, newest first. Read-only and read-write API keys are accepted. Published posts include a platformPostUrl for each published platform target. Results are capped to the 1000 most recent matching posts.
Authorization
bearerAuth PostZen API key.
In: header
Query Parameters
Filter posts by profile id.
Filter posts to those targeting a specific connected account.
Filter posts to those with a target on this platform. twitter is accepted as an alias for x.
Filter posts by status.
Only include posts scheduled on or after this ISO 8601 timestamp. Posts without a scheduled time are excluded when a date filter is supplied.
Only include posts scheduled on or before this ISO 8601 timestamp. Posts without a scheduled time are excluded when a date filter is supplied.
Sort order. createdAt sorts by creation time (newest first). scheduledFor sorts by scheduled time (newest first) and excludes posts without a scheduled time.
1-based page number. Defaults to 1.
Page size. Defaults to 20.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/posts"{ "posts": [ { "_id": "jx58t2kqm4wr9v3n7c1zp6bs0dh5fg8y", "title": "Launch post", "content": "We shipped the new release.", "status": "published", "scheduledFor": null, "timezone": "UTC", "platforms": [ { "platform": "twitter", "accountId": { "_id": "j97kp4mw2xnv6r1t8c3zq5bs9fh0yg4d", "platform": "twitter", "username": "acme", "displayName": "Acme", "isActive": true }, "status": "published", "platformPostUrl": "https://x.com/acme/status/1934567890123456789" } ] } ], "pagination": { "page": 1, "limit": 20, "total": 1, "totalPages": 1 }}{ "error": "JSON body is required"}{ "error": "Unauthorized"}{ "error": "API key requires read_write permission"}{ "error": "Not found"}{ "error": "rate_limited", "retryAfter": 30}Bulk upload posts from CSV POST
Validates and creates up to 500 posts from a CSV file. This endpoint requires a read-write API key. Each data row targets every connected account for the selected platforms on one profile. Set `dryRun=true` to validate without billing checks, media ingestion, or writes. A mixed success/failure response uses HTTP 207; all-success and all-failure responses use HTTP 200. | CSV column | Purpose | | --- | --- | | `post_content` | Required base post text. | | `platforms` | Required comma-separated platforms: `instagram`, `facebook`, `threads`, `tiktok`, `linkedin`, `x`, `youtube`, `pinterest`, `bluesky`, or `telegram`; `twitter` aliases `x`. | | `profiles` | Required single profile id or unique profile name. | | `schedule_time` | Required column. Use `YYYY-MM-DD HH:mm[:ss]` in `tz`, or ISO 8601 with an explicit offset. May be empty for draft, publish-now, or queue rows. | | `tz` | IANA timezone; defaults to `UTC`. | | `media_urls` | Comma-separated HTTP(S) URLs, up to 10 per row and 50 distinct URLs per upload. | | `is_draft`, `publish_now`, `use_queue` | Mutually exclusive boolean mode flags. With none set, the row is scheduled. | | `title`, `tags`, `hashtags`, `mentions`, `visibility` | General title, comma-separated tags, appended hashtags/mentions, and YouTube visibility. | | `custom_content_<platform>` | Platform-specific content override; `custom_content_twitter` targets X. | | `youtube_title`, `youtube_description` | YouTube title and description override. | | `facebook_first_comment`, `linkedin_first_comment` | First comments. | | `instagram_content_type`, `instagram_collaborators`, `instagram_first_comment` | Instagram post type, collaborators, and first comment. | | `tiktok_privacy`, `tiktok_allow_comments`, `tiktok_allow_duet`, `tiktok_allow_stitch`, `tiktok_brand_partner`, `tiktok_organic_brand`, `tiktok_draft`, `tiktok_description` | TikTok publishing options. | | `telegram_parse_mode`, `telegram_disable_web_page_preview`, `telegram_disable_notification`, `telegram_protect_content` | Telegram publishing options. | | `pinterest_title`, `pinterest_link`, `pinterest_board_id` | Pinterest pin options. |
Create a post POST
Creates a draft, scheduled post, or immediate post. This endpoint requires a read-write API key. Provide exactly one creation mode: `publishNow`, `scheduledFor`, or `isDraft`.