API Reference
Posts
Create, update, delete, and query feed posts.
Post routes cover the full lifecycle of feed posts — creating, updating, deleting, and querying engagement data.
List posts
Retrieve posts for an account:
const [error, posts] = await account.request("GET /posts", {
query: { limit: 20 },
})
if (!error) {
for (const post of posts.list) {
console.log(post.text, `👍 ${post.likesCount} ❤️ ${post.tipsAmount}`)
}
}Get a single post
const [error, post] = await account.request("GET /posts/:id", {
pathParams: { id: "11111" },
})
if (!error) {
console.log(post.text, post.media)
}Create a post
const [error, post] = await account.request("POST /posts", {
body: {
text: markdownToHtml("New post!"),
mediaFiles: [mediaId1, mediaId2],
},
})
if (!error) {
console.log("Created post:", post.id)
}Update a post
const [error, post] = await account.request("PUT /posts/:id", {
pathParams: { id: "11111" },
body: {
text: markdownToHtml("Updated caption"),
},
})Delete a post
const [error] = await account.request("DELETE /posts/:id", {
pathParams: { id: "11111" },
})Post analytics
Engagement chart
const [error, chart] = await account.request("GET /posts/chart", {
query: { startDate: "2026-01-01", endDate: "2026-03-31" },
})Top-performing posts
const [error, top] = await account.request("GET /posts/top", {
query: { period: "month" },
})
if (!error) {
for (const post of top.list) {
console.log(post.text, `$${post.tipsAmount}`)
}
}Scheduled posts
List scheduled posts
const [error, schedules] = await account.request(
"GET /schedules/posts",
{ query: { limit: 20 } },
)Collect post stats
Trigger a stats collection for specific posts:
const [error] = await account.request("POST /posts/stats-collect", {
body: { postIds: ["11111", "22222", "33333"] },
})