Skip to main content
Canonical objects returned by the Genviral Partner API. These structures are designed for easy consumption by OpenClaw agents, AI automation pipelines, and custom integrations.

Partner API Key

Represents the credential you create in API Keys. Every key is single-scope: either workspace or personal.

Social Account (BYO + Hosted)

Returned by GET /accounts and referenced when scheduling posts. Account IDs are UUIDs.

Account Capabilities

Returned under account.capabilities by GET /accounts.

Post

Created via POST /posts, retrieved via GET /posts and GET /posts/{id}.
Top-level tiktok and pinterest settings are v1 convenience aliases. New multi-platform clients should prefer canonical provider settings under settings.<provider> in create/update requests.

Media

Returned as submitted to POST /posts and PATCH /posts/{id}, or null for text-only posts: When BYO accounts are present, Genviral re-hosts the assets behind the scenes so these URLs point to first-party Cloudflare R2 buckets. Hosted-only posts reuse the URLs you provided once reachability is confirmed.

TikTok Settings

Optional settings persisted from POST /posts / PATCH /posts/{id} under the tiktok field. These apply only when all targeted accounts are TikTok BYO accounts.

Pinterest Settings

Optional settings persisted from POST /posts / PATCH /posts/{id} under the pinterest field. These apply only when at least one targeted account is Pinterest.

Account States

Each post stores a normalized state for every targeted account (from social_post_accounts):

Folder

Returned by folder endpoints under /api/partner/v1/folders*.

Stats Snapshot

Analytics endpoints (and UI exports) reuse the same structures outlined in other/docs/product/integrations/ugcinc/data-structures/account-stat.md and post-stat.md.

Analytics Summary

Returned by GET /api/partner/v1/analytics/summary.

Analytics Target

Returned by GET /api/partner/v1/analytics/targets and target-management endpoints.

Analytics Refresh

Returned by POST /api/partner/v1/analytics/targets/{id}/refresh and GET /api/partner/v1/analytics/refreshes/{id}.
When available, GET /api/partner/v1/analytics/summary/posts returns both analyticsId, genviralPostId, and externalId. Use genviralPostId or externalId as the preferred correlation fields for mapping analytics rows back to the originating Partner API post. analyticsId and legacy id are the analytics-dataset row ID, not the post-creation ID.