curl --request GET \
--url https://www.genviral.io/api/partner/v1/posts/11111111-1111-1111-1111-111111111111 \
--header 'Authorization: Bearer <token>'
{
"ok": true,
"code": 200,
"message": "Post retrieved",
"data": {
"id": "11111111-1111-1111-1111-111111111111",
"caption": "Holiday drops start Monday!",
"status": "scheduled",
"scheduled_at": "2025-02-01T15:00:00Z",
"created_at": "2025-01-20T12:05:11.205Z",
"media": null,
"music_url": null,
"tiktok": null,
"pinterest": {
"board_id": "123456789012345678",
"title": "Dinner board",
"link": "https://example.com/recipes",
"tags": ["Italian recipes", "easy dinner"]
},
"settings": {
"youtube": { "title": "Holiday drops", "privacy": "unlisted" }
},
"accounts": {
"total": 2,
"states": [
{
"account_id": "0f4f54d4-8cce-4fb7-8c7b-befbcb8af812",
"platform": "pinterest",
"username": "dinnerboard",
"status": "scheduled",
"published_at": null,
"error_message": null,
"last_attempted_at": null,
"published_url": null
},
{
"account_id": "6b0c8c9c-55ac-4fcb-85ec-70b5a8b0d089",
"platform": "youtube",
"username": "HolidayDrops",
"status": "scheduled",
"published_at": null,
"error_message": null,
"last_attempted_at": null,
"published_url": null
}
]
}
}
}
Posts
Get Post
Retrieve details for a specific post
GET
/
api
/
partner
/
v1
/
posts
/
{postId}
curl --request GET \
--url https://www.genviral.io/api/partner/v1/posts/11111111-1111-1111-1111-111111111111 \
--header 'Authorization: Bearer <token>'
{
"ok": true,
"code": 200,
"message": "Post retrieved",
"data": {
"id": "11111111-1111-1111-1111-111111111111",
"caption": "Holiday drops start Monday!",
"status": "scheduled",
"scheduled_at": "2025-02-01T15:00:00Z",
"created_at": "2025-01-20T12:05:11.205Z",
"media": null,
"music_url": null,
"tiktok": null,
"pinterest": {
"board_id": "123456789012345678",
"title": "Dinner board",
"link": "https://example.com/recipes",
"tags": ["Italian recipes", "easy dinner"]
},
"settings": {
"youtube": { "title": "Holiday drops", "privacy": "unlisted" }
},
"accounts": {
"total": 2,
"states": [
{
"account_id": "0f4f54d4-8cce-4fb7-8c7b-befbcb8af812",
"platform": "pinterest",
"username": "dinnerboard",
"status": "scheduled",
"published_at": null,
"error_message": null,
"last_attempted_at": null,
"published_url": null
},
{
"account_id": "6b0c8c9c-55ac-4fcb-85ec-70b5a8b0d089",
"platform": "youtube",
"username": "HolidayDrops",
"status": "scheduled",
"published_at": null,
"error_message": null,
"last_attempted_at": null,
"published_url": null
}
]
}
}
}
Return the canonical status for a single post, including every account’s state (
pending, posted, failed, retry metadata, published URLs, etc.) plus normalized media metadata. Media mirrors the create payload (type + url/urls) or returns null for text-only posts, and surfaces music_url alongside it.
Path Parameters
string
required
The UUID of the post to retrieve (e.g.,
11111111-1111-1111-1111-111111111111).Response
string
Post ID.
string
Post caption.
string
Overall status of the post.
object | null
string | null
TikTok post URL when music is applied;
null otherwise.object | null
Optional TikTok settings when present on the post; otherwise
null.object | null
Optional Pinterest settings (
board_id, link, title, tags) when present on the post;
otherwise null.object | null
The stored
settings.<provider> objects (for example youtube and instagram) in the same
shape you send them, or null when the post has none. TikTok and Pinterest stay in tiktok and
pinterest. Read these before an update: tiktok, pinterest and settings.youtube replace
the stored object on PATCH, so send the whole object with your change applied.object
curl --request GET \
--url https://www.genviral.io/api/partner/v1/posts/11111111-1111-1111-1111-111111111111 \
--header 'Authorization: Bearer <token>'
{
"ok": true,
"code": 200,
"message": "Post retrieved",
"data": {
"id": "11111111-1111-1111-1111-111111111111",
"caption": "Holiday drops start Monday!",
"status": "scheduled",
"scheduled_at": "2025-02-01T15:00:00Z",
"created_at": "2025-01-20T12:05:11.205Z",
"media": null,
"music_url": null,
"tiktok": null,
"pinterest": {
"board_id": "123456789012345678",
"title": "Dinner board",
"link": "https://example.com/recipes",
"tags": ["Italian recipes", "easy dinner"]
},
"settings": {
"youtube": { "title": "Holiday drops", "privacy": "unlisted" }
},
"accounts": {
"total": 2,
"states": [
{
"account_id": "0f4f54d4-8cce-4fb7-8c7b-befbcb8af812",
"platform": "pinterest",
"username": "dinnerboard",
"status": "scheduled",
"published_at": null,
"error_message": null,
"last_attempted_at": null,
"published_url": null
},
{
"account_id": "6b0c8c9c-55ac-4fcb-85ec-70b5a8b0d089",
"platform": "youtube",
"username": "HolidayDrops",
"status": "scheduled",
"published_at": null,
"error_message": null,
"last_attempted_at": null,
"published_url": null
}
]
}
}
}
Error Responses
401- authentication failed (missing/invalid/revoked token)402 subscription_required- active Creator/Professional/Business plan required403 tier_not_allowed- Scheduler tier cannot use Partner API404 not_found- post does not exist in the authenticated key scope500 get_failed- unexpected database/serialization error
