List posts
Returns a paginated list of posts.
Returns a paginated list of posts.
Authorization
ApiKeyAuth AuthorizationBearer <token>
PublishQ API key sent as Authorization: Bearer pq_live_....
In: header
Query Parameters
page?integer
Page number (starts from 1).
Default
1Range
0 < valuelimit?integer
Page size. Max 100.
Default
20Range
0 < value <= 100Response Body
application/json
application/json
application/json
curl -X GET "https://publishq.com/api/v1/posts"{
"posts": [
{
"id": "2b3c4d5e-6f7a-8901-bcde-f12345678901",
"content": "Check out our latest product update!",
"status": "SCHEDULED",
"mediaIds": [
"f6a7b8c9-d0e1-2345-6789-abcdef012345"
],
"scheduledAt": "2026-04-05T14:00:00Z",
"createdAt": "2026-04-01T08:30:00Z",
"accounts": [
{
"accountId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"platform": "TWITTER",
"accountName": "@publishq",
"status": "SCHEDULED",
"postOverrides": {
"content": "New product update just dropped 🔥 Thread below 👇"
}
},
{
"accountId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"platform": "YOUTUBE",
"accountName": "PublishQ Channel",
"status": "SCHEDULED",
"postOverrides": {
"content": "Product Update April 2026"
},
"platformSpecificSettings": {
"description": "Full walkthrough of our latest features. Timestamps below.\n\n0:00 Intro\n0:45 New API\n2:30 Dashboard updates",
"privacyStatus": "public"
}
},
{
"accountId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"platform": "TIKTOK",
"accountName": "publishq",
"status": "SCHEDULED",
"postOverrides": {
"thumbnailTimestamp": 3500
},
"platformSpecificSettings": {
"privacyLevel": "PUBLIC_TO_EVERYONE",
"disableComment": false,
"disableDuet": false,
"disableStitch": false,
"brandContentToggle": false,
"brandOrganicToggle": false
}
},
{
"accountId": "d4e5f6a7-b8c9-0123-def0-1234567890ab",
"platform": "INSTAGRAM",
"accountName": "publishq_official",
"status": "SCHEDULED",
"platformSpecificSettings": {
"postType": "REEL"
}
},
{
"accountId": "e5f6a7b8-c9d0-1234-5678-9abcdef01234",
"platform": "BLUESKY",
"accountName": "@publishq.bsky.social",
"status": "SCHEDULED"
}
]
},
{
"id": "9f8e7d6c-5b4a-3210-fedc-ba0987654321",
"content": "Just shipped our new API — schedule posts to 8 platforms with one call 🚀",
"status": "PUBLISHED",
"mediaIds": [
"d4c3b2a1-0987-6543-21fe-dcba09876543"
],
"publishedAt": "2026-04-01T12:01:23Z",
"createdAt": "2026-03-30T10:00:00Z",
"accounts": [
{
"accountId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"platform": "TWITTER",
"accountName": "@publishq",
"status": "PUBLISHED",
"externalUrl": "https://x.com/publishq/status/1234567890",
"publishedAt": "2026-04-01T12:01:05Z"
},
{
"accountId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"platform": "LINKEDIN",
"accountName": "PublishQ Inc.",
"status": "PUBLISHED",
"externalUrl": "https://www.linkedin.com/feed/update/urn:li:share:7654321",
"publishedAt": "2026-04-01T12:01:23Z"
}
]
},
{
"id": "1a2b3c4d-5e6f-7890-abcd-ef1234567890",
"content": "Happy holidays from the team! 🎄",
"status": "FAILED",
"error": "Publishing failed on 1 account: @oldhandle (Twitter). Check accounts[].errorMessage for details.",
"mediaIds": [
"e5f6a7b8-c9d0-1234-5678-9abcdef01234"
],
"createdAt": "2026-03-30T09:00:00Z",
"accounts": [
{
"accountId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"platform": "TWITTER",
"accountName": "@oldhandle",
"status": "FAILED",
"errorMessage": "Token expired. Please reconnect your Twitter account."
},
{
"accountId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"platform": "INSTAGRAM",
"accountName": "publishq_official",
"status": "PUBLISHED",
"externalUrl": "https://www.instagram.com/p/ABC123/",
"publishedAt": "2026-04-01T12:01:10Z",
"platformSpecificSettings": {
"postType": "REEL"
}
},
{
"accountId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"platform": "LINKEDIN",
"accountName": "PublishQ Inc.",
"status": "PUBLISHED",
"externalUrl": "https://www.linkedin.com/feed/update/urn:li:share:9876543",
"publishedAt": "2026-04-01T12:01:15Z"
}
]
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 3,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}{
"error": {
"title": "Unauthorized",
"status": 401,
"code": "missing_auth",
"message": "Missing Authorization header",
"instance": "/api/v1/posts"
}
}{
"error": {
"title": "Too Many Requests",
"status": 429,
"code": "rate_limit_exceeded",
"message": "Too Many Requests",
"instance": "/api/v1/posts",
"details": {
"retryAfter": 60
}
}
}Get post GET
Get one post by its PublishQ post ID. Returns the post details and the connected account metadata needed to identify where it belongs.
Remove account from post DELETE
Removes one account from an existing post so it will no longer be published there. Other accounts in the same post are not changed.