List posts
Changed onReturns a paginated list of posts. Published posts include platformPostUrl with the public URL on each platform. A query parameter that is not listed here returns 400 naming it and the accepted parameters, so a misspelled filter never silently returns the unfiltered list.
Request
- Base URL: https://zernio.com/api
- URL: https://zernio.com/api/v1/posts
- Auth: HTTP bearer
Query parameters
Page number (1-based)
Page size. Values above the maximum return 400 rather than being clamped.
Row offset. Takes precedence over page when both are sent; the response pagination.page is derived from it.
Opaque cursor from a previous response's pagination.nextCursor. Returns the page that follows it in the same sortBy order, and takes precedence over page and offset. Each cursor page costs the same however deep it is, unlike page/offset, which get slower the further you go; prefer it to walk a long history. Send the same filters and sortBy as the request that issued it: a cursor from another sortBy returns 400. Not available with sortBy=status or sortBy=platform, or with source=external.
Comma-separated list of post fields to return. Each post then carries _id plus only these fields, which makes large pages much cheaper: leave out platforms, content, mediaItems or metadata when you do not need them. Accepted: userId, title, content, mediaItems, platforms, scheduledFor, timezone, status, tags, hashtags, mentions, visibility, metadata, recycling, recycledFromPostId, queuedFromProfile, queueId, createdAt, updatedAt. An unknown field returns 400 naming it. fields=_id returns ids only. Omit it (or send it empty) for the full post. Not available with source=external.
Which collection to read. zernio (default) returns posts authored through Zernio. external returns posts synced from the platform (existing/historical posts that were published outside Zernio). Combine with accountId and paginate via page/limit to walk the full synced history (we keep up to the last ~12 months per account).
Filter posts to a specific profile (24-char hex ObjectId). Omit it, or send all or an empty value, to list posts across every profile.
Filter posts to those created by a specific team user (24-char hex ObjectId).
Zero-padded YYYY-MM-DD, or a full ISO 8601 datetime. An empty value means no date filter; any other malformed value returns 400. The same name the other date-window filters use (ads, analytics).
Zero-padded YYYY-MM-DD, or a full ISO 8601 datetime. An empty value means no date filter; any other malformed value returns 400. The same name the other date-window filters use (ads, analytics).
Alias of fromDate, kept for existing callers
Alias of toDate, kept for existing callers
Search posts by text content.
Comma-separated tags (at most 20). Returns only posts carrying every listed tag, matched exactly and case-sensitively against the tags set when the post was created. An empty value means no tag filter. tag is accepted as an alias.
Sort order for results.
Filter posts to those published via a specific account (24-char hex ObjectId).
Response
Paginated posts
Example response
{
"posts": [
{
"mediaItems": [
{
"subtitles": [
{
"url": "https://media.zernio.com/temp/walkthrough.en.srt",
"language": "en"
}
]
}
],
"platforms": [
{
"platform": "twitter",
"customMedia": [
{
"subtitles": [
{
"url": "https://media.zernio.com/temp/walkthrough.en.srt",
"language": "en"
}
]
}
],
"status": "pending",
"platformPostId": "1234567890123456789",
"platformPostUrl": "https://twitter.com/acmecorp/status/1234567890123456789"
}
]
}
]
}Changes
- warning
added the new
pending_approvalenum value to the//response property for the response status - info
added the new enum value
pending_approvalto thequeryrequest parameterstatus
- warning
- warning
added the new
webflowenum value to the/////////response property for the response status
- warning