Skip to main content
GET
/
api
/
partner
/
v1
/
posts
curl --request GET \
  --url 'https://www.genviral.io/api/partner/v1/posts?status=scheduled&limit=20' \
  --header 'Authorization: Bearer <token>'
{
  "ok": true,
  "code": 200,
  "message": "Posts retrieved",
  "data": {
    "summary": {
      "total": 193,
      "pending": 58,
      "published": 120,
      "by_status": {
        "draft": 15,
        "pending": 12,
        "scheduled": 46,
        "posted": 118,
        "failed": 4
      }
    },
    "posts": [
      {
        "id": "post_789",
        "caption": "Holiday drops start Monday!",
        "status": "deleted",
        "scheduled_at": "2025-02-01T15:00:00Z",
        "created_at": "2025-01-20T12:05:11.205Z",
        "media": {
          "type": "video",
          "url": "https://cdn.example.com/video.mp4"
        },
        "music_url": null,
        "accounts": {
          "total": 2,
          "states": [
            {
              "account_id": "0f4f54d4-8cce-4fb7-8c7b-befbcb8af812",
              "status": "deleted",
              "published_at": null,
              "error_message": null,
              "last_attempted_at": null,
              "published_url": null
            },
            {
              "account_id": "6b0c8c9c-55ac-4fcb-85ec-70b5a8b0d089",
              "status": "scheduled",
              "published_at": null,
              "error_message": null,
              "last_attempted_at": null,
              "published_url": null
            }
          ]
        }
      }
    ]
  }
}
Fetch the latest posts for the workspace along with a summary.
Only posts that include deliveries for accounts owned by the authenticated workspace are returned. Hosted and BYO accounts are both supported, and deliveries for accounts outside the workspace are filtered out automatically.

Query Parameters

status
string
Filter by status: draft, pending, scheduled, posted, failed, partial, retry. When omitted, all statuses are returned.
limit
number
default:"20"
Number of posts to return. Values below 1 are treated as 1; values above 100 are clamped to 100.
since
string
ISO timestamp. Only include posts created on or after this time.
until
string
ISO timestamp. Only include posts created on or before this time.
since and until must be valid ISO 8601 strings. Invalid values return a 400 response with error_code set to invalid_since or invalid_until.

Response

Returns a summary object with counts and a posts array.
summary
object
Workspace-wide counters.
posts
array
List of post objects.
status mirrors the live provider status for hosted deliveries (e.g. deleted, void). Each account entry in accounts.states uses the same provider-facing string so the UI and partner API stay aligned.
curl --request GET \
  --url 'https://www.genviral.io/api/partner/v1/posts?status=scheduled&limit=20' \
  --header 'Authorization: Bearer <token>'
{
  "ok": true,
  "code": 200,
  "message": "Posts retrieved",
  "data": {
    "summary": {
      "total": 193,
      "pending": 58,
      "published": 120,
      "by_status": {
        "draft": 15,
        "pending": 12,
        "scheduled": 46,
        "posted": 118,
        "failed": 4
      }
    },
    "posts": [
      {
        "id": "post_789",
        "caption": "Holiday drops start Monday!",
        "status": "deleted",
        "scheduled_at": "2025-02-01T15:00:00Z",
        "created_at": "2025-01-20T12:05:11.205Z",
        "media": {
          "type": "video",
          "url": "https://cdn.example.com/video.mp4"
        },
        "music_url": null,
        "accounts": {
          "total": 2,
          "states": [
            {
              "account_id": "0f4f54d4-8cce-4fb7-8c7b-befbcb8af812",
              "status": "deleted",
              "published_at": null,
              "error_message": null,
              "last_attempted_at": null,
              "published_url": null
            },
            {
              "account_id": "6b0c8c9c-55ac-4fcb-85ec-70b5a8b0d089",
              "status": "scheduled",
              "published_at": null,
              "error_message": null,
              "last_attempted_at": null,
              "published_url": null
            }
          ]
        }
      }
    ]
  }
}

Error Responses

  • 400 invalid_since or 400 invalid_until — query params failed ISO parsing
  • 401/403 — authentication failed or the key lacks workspace access
  • 500 list_failed — Database query or summary computation failed