API reference
List posts
List your posts with per-network delivery status. Filter by status.
GET
/api/v1/postsRequires a Bearer API key — see authentication.
Returns your posts, most recent first, each with its status and metrics. Filter by one or more statuses, and cap the result count with limit.
Query parameters
statusstringoptionalComma-separated statuses to include:
draft, scheduled, publishing, published. Unknown values are ignored; omit to return all.limitintegeroptionalMaximum number of posts to return.
Request
Send the request to GET /api/v1/posts. Set your key in the environment as POSTMYISH_KEY to run these as-is.
curl "https://postmyish.com/api/v1/posts?status=scheduled,published&limit=20" \
-H "Authorization: Bearer $POSTMYISH_KEY"Response
{
"data": [
{
"id": "post_7d1a9c8b",
"caption": "We just shipped v2 🚀",
"platforms": ["x", "linkedin", "bluesky"],
"status": "published",
"has_media": false,
"scheduled_at": null,
"published_at": 1752566400000,
"reach": 0,
"engagement_rate": 0
}
]
}Response fields
dataarray<object>The list of posts.
idstringUnique identifier for the post.
captionstringThe caption text as stored.
platformsarray<string>The network ids this post targets.
statusstringOne of
draft, scheduled, publishing, or published.has_mediabooleanWhether media is attached to the post.
scheduled_atinteger | nullUnix milliseconds the post is scheduled to publish, or
null.published_atinteger | nullUnix milliseconds the post was published, or
null.reachintegerTotal reach reported back by the networks. Starts at 0 and only grows once a network reports.
engagement_ratenumberBlended engagement rate as a percentage, rounded to two decimals. Starts at 0.
Try it
Run this endpoint live with your own key. The key is kept in your browser (local storage) and sent straight to the API — nothing passes through the docs.