Posts Data Structures
All data structures used in the Posts API endpoint.
Paginated Posts
Paginated posts response
Paginated Posts
objectPaginated posts response
pageintegerrequiredCurrent page number (1-indexed)
limitintegerrequiredNumber of items per page
totalintegerrequiredTotal number of items across all pages
totalPagesintegerrequiredTotal number of pages
hasNextbooleanrequiredWhether there is a next page
hasPrevbooleanrequiredWhether there is a previous page
Post
A post with associated metrics, account, and creator information
Post
objectA post with associated metrics, account, and creator information
idstringrequiredUnique post identifier
workspaceIdstringrequiredWorkspace identifier
accountIdstringrequiredAccount identifier
slugintegerrequiredPost slug (numeric identifier)
platformPostIdstringrequiredPlatform-specific post ID
platformAccountPlatformrequiredtypePostTyperequiredpostUrlstringrequiredURL to the post on the platform
thumbnailUrlstring | nullThumbnail image URL
videoUrlstring | nullVideo URL (if applicable)
captionstring | nullPost caption text
mentionsstring[]Array of mentioned usernames
hashtagsstring[]Array of hashtags
isPaidPartnershipbooleanrequiredWhether this is a paid partnership post
postedAtstring (date-time)requiredISO 8601 timestamp when the post was published
durationMsintegerrequiredPost duration in milliseconds
soundTitlestring | nullSound/music title
soundAuthorstring | nullSound/music author
isOriginalSoundbooleanrequiredWhether this uses original sound
isTrackedbooleanrequiredWhether this post is being tracked for statistics
createdAtstring (date-time)requiredISO 8601 timestamp when the post was created in the system
updatedAtstring (date-time)requiredISO 8601 timestamp when the post was last updated
viewsintegerrequiredTotal views count
likesintegerrequiredTotal likes count
commentsintegerrequiredTotal comments count
sharesinteger | nullTotal shares count
savesinteger | nullTotal saves count
engagementRatenumberrequiredEngagement rate percentage
revenueMinnumberrequiredMinimum revenue estimate
revenueMaxnumberrequiredMaximum revenue estimate
rpmMinnumberrequiredMinimum revenue per mille (revenue per 1000 views)
rpmMaxnumberrequiredMaximum revenue per mille (revenue per 1000 views)
costnumberrequiredTotal cost
cpmnumberrequiredCost per mille (cost per 1000 views)
profitMinnumberrequiredMinimum profit estimate
profitMaxnumberrequiredMaximum profit estimate
costSummaryobject[]Payment cost summary breakdown
statsobject[]Array of post statistics over time
accountobjectrequiredAccount information
creatorobjectrequiredCreator information
trackingStartedAtstring (date-time) | nullISO 8601 timestamp when tracking started
lastStatsAtstring (date-time) | nullISO 8601 timestamp of the last stats update
limitedDatabooleanrequiredWhether the post has limited data available
Post Type
Post content type
Post Type
stringPost content type
interface PaginatedPosts {
/** Array of posts */
items: Post[];
/** Current page number (1-indexed) */
page: number;
/** Number of items per page */
limit: number;
/** Total number of items across all pages */
total: number;
/** Total number of pages */
totalPages: number;
/** Whether there is a next page */
hasNext: boolean;
/** Whether there is a previous page */
hasPrev: boolean;
}
interface Post {
/** Unique post identifier */
id: string;
/** Workspace identifier */
workspaceId: string;
/** Account identifier */
accountId: string;
/** Post slug (numeric identifier) */
slug: number;
/** Platform-specific post ID */
platformPostId: string;
platform: AccountPlatform;
type: PostType;
/** URL to the post on the platform */
postUrl: string;
/** Thumbnail image URL */
thumbnailUrl?: string;
/** Video URL (if applicable) */
videoUrl?: string;
/** Post caption text */
caption?: string;
/** Array of mentioned usernames */
mentions?: string[];
/** Array of hashtags */
hashtags?: string[];
/** Whether this is a paid partnership post */
isPaidPartnership: boolean;
/** ISO 8601 timestamp when the post was published */
postedAt: string;
/** Post duration in milliseconds */
durationMs: number;
/** Sound/music title */
soundTitle?: string;
/** Sound/music author */
soundAuthor?: string;
/** Whether this uses original sound */
isOriginalSound: boolean;
/** Whether this post is being tracked for statistics */
isTracked: boolean;
/** ISO 8601 timestamp when the post was created in the system */
createdAt: string;
/** ISO 8601 timestamp when the post was last updated */
updatedAt: string;
/** Total views count */
views: number;
/** Total likes count */
likes: number;
/** Total comments count */
comments: number;
/** Total shares count */
shares?: number;
/** Total saves count */
saves?: number;
/** Engagement rate percentage */
engagementRate: number;
/** Minimum revenue estimate */
revenueMin: number;
/** Maximum revenue estimate */
revenueMax: number;
/** Minimum revenue per mille (revenue per 1000 views) */
rpmMin: number;
/** Maximum revenue per mille (revenue per 1000 views) */
rpmMax: number;
/** Total cost */
cost: number;
/** Cost per mille (cost per 1000 views) */
cpm: number;
/** Minimum profit estimate */
profitMin: number;
/** Maximum profit estimate */
profitMax: number;
/** Payment cost summary breakdown */
costSummary?: object[];
/** Array of post statistics over time */
stats?: object[];
/** Account information */
account: object;
/** Creator information */
creator: object;
/** ISO 8601 timestamp when tracking started */
trackingStartedAt?: string;
/** ISO 8601 timestamp of the last stats update */
lastStatsAt?: string;
/** Whether the post has limited data available */
limitedData: boolean;
}
type PostType = "video" | "photo" | "carousel";
type AccountPlatform = "tiktok" | "instagram" | "youtube";interface PaginatedPosts {
/** Array of posts */
items: Post[];
/** Current page number (1-indexed) */
page: number;
/** Number of items per page */
limit: number;
/** Total number of items across all pages */
total: number;
/** Total number of pages */
totalPages: number;
/** Whether there is a next page */
hasNext: boolean;
/** Whether there is a previous page */
hasPrev: boolean;
}
interface Post {
/** Unique post identifier */
id: string;
/** Workspace identifier */
workspaceId: string;
/** Account identifier */
accountId: string;
/** Post slug (numeric identifier) */
slug: number;
/** Platform-specific post ID */
platformPostId: string;
platform: AccountPlatform;
type: PostType;
/** URL to the post on the platform */
postUrl: string;
/** Thumbnail image URL */
thumbnailUrl?: string;
/** Video URL (if applicable) */
videoUrl?: string;
/** Post caption text */
caption?: string;
/** Array of mentioned usernames */
mentions?: string[];
/** Array of hashtags */
hashtags?: string[];
/** Whether this is a paid partnership post */
isPaidPartnership: boolean;
/** ISO 8601 timestamp when the post was published */
postedAt: string;
/** Post duration in milliseconds */
durationMs: number;
/** Sound/music title */
soundTitle?: string;
/** Sound/music author */
soundAuthor?: string;
/** Whether this uses original sound */
isOriginalSound: boolean;
/** Whether this post is being tracked for statistics */
isTracked: boolean;
/** ISO 8601 timestamp when the post was created in the system */
createdAt: string;
/** ISO 8601 timestamp when the post was last updated */
updatedAt: string;
/** Total views count */
views: number;
/** Total likes count */
likes: number;
/** Total comments count */
comments: number;
/** Total shares count */
shares?: number;
/** Total saves count */
saves?: number;
/** Engagement rate percentage */
engagementRate: number;
/** Minimum revenue estimate */
revenueMin: number;
/** Maximum revenue estimate */
revenueMax: number;
/** Minimum revenue per mille (revenue per 1000 views) */
rpmMin: number;
/** Maximum revenue per mille (revenue per 1000 views) */
rpmMax: number;
/** Total cost */
cost: number;
/** Cost per mille (cost per 1000 views) */
cpm: number;
/** Minimum profit estimate */
profitMin: number;
/** Maximum profit estimate */
profitMax: number;
/** Payment cost summary breakdown */
costSummary?: object[];
/** Array of post statistics over time */
stats?: object[];
/** Account information */
account: object;
/** Creator information */
creator: object;
/** ISO 8601 timestamp when tracking started */
trackingStartedAt?: string;
/** ISO 8601 timestamp of the last stats update */
lastStatsAt?: string;
/** Whether the post has limited data available */
limitedData: boolean;
}
type PostType = "video" | "photo" | "carousel";
type AccountPlatform = "tiktok" | "instagram" | "youtube";