Skip to content
Connect an agent

Overview

Schemas

Every named request and response type of the API, with its fields. Each endpoint page links the types it uses.

TL;DR

QuestionAnswer
What is a schema?The shape of a JSON body: its fields, their types, and which are required.
Where is the one an endpoint uses?On the endpoint's page, whose request and response types link here.
How many are there?51.

Post

FieldTypeRequiredDescription
idstringyes
status"scheduled" | "publishing" | "published" | "partially_published" | "failed" | "cancelled"yes
contentstringyes
mediaIdsstring[]yes
platformOverridesobjectyes
platformOverrides.xobjectno
platformOverrides.x.contentstringno
platformOverrides.instagramobjectno
platformOverrides.instagram.contentstringno
platformOverrides.facebookobjectno
platformOverrides.facebook.contentstringno
platformOverrides.threadsobjectno
platformOverrides.threads.contentstringno
platformOverrides.linkedinobjectno
platformOverrides.linkedin.contentstringno
platformOverrides.tiktokobjectno
platformOverrides.tiktok.contentstringno
platformOverrides.youtubeobjectno
platformOverrides.youtube.contentstringno
platformOverrides.pinterestobjectno
platformOverrides.pinterest.contentstringno
platformOverrides.blueskyobjectno
platformOverrides.bluesky.contentstringno
platformOverrides.mastodonobjectno
platformOverrides.mastodon.contentstringno
platformOverrides.discordobjectno
platformOverrides.discord.contentstringno
platformOverrides.farcasterobjectno
platformOverrides.farcaster.contentstringno
publishAtstringyes
createdAtstringyes
updatedAtstringyes
targetsPostTarget[]yes
targets[].idstringyes
targets[].accountIdstringyes
targets[].platformPlatformyes
targets[].status"pending" | "publishing" | "published" | "failed" | "cancelled"yes
targets[].platformPostIdstring | nullyes
targets[].urlstring | nullyes
targets[].errorobject | nullyes
targets[].error.codestringyes
targets[].error.messagestringyes
targets[].publishedAtstring | nullyes

PostTarget

FieldTypeRequiredDescription
idstringyes
accountIdstringyes
platformPlatformyes
status"pending" | "publishing" | "published" | "failed" | "cancelled"yes
platformPostIdstring | nullyes
urlstring | nullyes
errorobject | nullyes
error.codestringyes
error.messagestringyes
publishedAtstring | nullyes

Platform

"x" \| "instagram" \| "facebook" \| "threads" \| "linkedin" \| "tiktok" \| "youtube" \| "pinterest" \| "bluesky" \| "mastodon" \| "discord" \| "farcaster"

Error

FieldTypeRequiredDescription
errorobjectyes
error.code"unauthorized" | "forbidden" | "validation_failed" | "not_found" | "unknown_accounts" | "platform_not_supported" | "media_required" | "account_needs_reconnect" | "not_configured" | "connect_failed" | "platform_error" | "post_not_editable" | "unknown_variable" | "rate_limited" | "unsupported_media" | "media_too_large" | "unknown_media" | "media_not_ready" | "text_too_long" | "publish_at_in_past" | "idempotency_key_reused" | "internal_error"yes
error.messagestringyes
error.detailsanyno

PostList

FieldTypeRequiredDescription
dataPostSummary[]yes
data[].idstringyes
data[].status"scheduled" | "publishing" | "published" | "partially_published" | "failed" | "cancelled"yes
data[].contentstringyes
data[].mediaIdsstring[]yes
data[].platformOverridesobjectyes
data[].platformOverrides.xobjectno
data[].platformOverrides.instagramobjectno
data[].platformOverrides.facebookobjectno
data[].platformOverrides.threadsobjectno
data[].platformOverrides.linkedinobjectno
data[].platformOverrides.tiktokobjectno
data[].platformOverrides.youtubeobjectno
data[].platformOverrides.pinterestobjectno
data[].platformOverrides.blueskyobjectno
data[].platformOverrides.mastodonobjectno
data[].platformOverrides.discordobjectno
data[].platformOverrides.farcasterobjectno
data[].publishAtstringyes
data[].createdAtstringyes
data[].updatedAtstringyes
hasMorebooleanyes

PostSummary

FieldTypeRequiredDescription
idstringyes
status"scheduled" | "publishing" | "published" | "partially_published" | "failed" | "cancelled"yes
contentstringyes
mediaIdsstring[]yes
platformOverridesobjectyes
platformOverrides.xobjectno
platformOverrides.x.contentstringno
platformOverrides.instagramobjectno
platformOverrides.instagram.contentstringno
platformOverrides.facebookobjectno
platformOverrides.facebook.contentstringno
platformOverrides.threadsobjectno
platformOverrides.threads.contentstringno
platformOverrides.linkedinobjectno
platformOverrides.linkedin.contentstringno
platformOverrides.tiktokobjectno
platformOverrides.tiktok.contentstringno
platformOverrides.youtubeobjectno
platformOverrides.youtube.contentstringno
platformOverrides.pinterestobjectno
platformOverrides.pinterest.contentstringno
platformOverrides.blueskyobjectno
platformOverrides.bluesky.contentstringno
platformOverrides.mastodonobjectno
platformOverrides.mastodon.contentstringno
platformOverrides.discordobjectno
platformOverrides.discord.contentstringno
platformOverrides.farcasterobjectno
platformOverrides.farcaster.contentstringno
publishAtstringyes
createdAtstringyes
updatedAtstringyes

AccountList

FieldTypeRequiredDescription
dataAccount[]yes
data[].idstringyes
data[].platformPlatformyes
data[].platformUserIdstringyes
data[].usernamestring | nullyes
data[].profileIdstring | nullyes
data[].status"active" | "needs_reconnect" | "disconnected"yesneeds_reconnect: the platform refused the token; start a reconnect.
data[].renewal"automatic" | "manual" | "not_needed"yesautomatic: Flung refreshes the token before it expires, until reconnectBy if set. manual: only a reconnect renews it, by reconnectBy. not_needed: the token does not expire.
data[].tokenExpiresAtstring | nullyesWhen the current access token expires. Flung renews automatic ones about a day before.
data[].reconnectBystring | nullyesThe last moment the account works without a reconnect; null when it renews indefinitely. Flung sends account.reconnect_required_soon a week before.
data[].defaultBoardobject | nullyesPinterest only: where pins go unless a post picks another board.
data[].defaultBoard.idstringyes
data[].defaultBoard.namestring | nullyes
data[].inboxobjectyesReading comments and mentions into GET /v1/inbox.
data[].inbox.enabledboolean | nullyesWhether comments and mentions are read. null is the platform's default: on, except X, where reading costs money.
data[].inbox.readAtstring | nullyes
data[].inbox.errorstring | nullyesWhy the last read failed, such as a missing permission.
data[].createdAtstringyes
data[].updatedAtstringyes

Account

FieldTypeRequiredDescription
idstringyes
platformPlatformyes
platformUserIdstringyes
usernamestring | nullyes
profileIdstring | nullyes
status"active" | "needs_reconnect" | "disconnected"yesneeds_reconnect: the platform refused the token; start a reconnect.
renewal"automatic" | "manual" | "not_needed"yesautomatic: Flung refreshes the token before it expires, until reconnectBy if set. manual: only a reconnect renews it, by reconnectBy. not_needed: the token does not expire.
tokenExpiresAtstring | nullyesWhen the current access token expires. Flung renews automatic ones about a day before.
reconnectBystring | nullyesThe last moment the account works without a reconnect; null when it renews indefinitely. Flung sends account.reconnect_required_soon a week before.
defaultBoardobject | nullyesPinterest only: where pins go unless a post picks another board.
defaultBoard.idstringyes
defaultBoard.namestring | nullyes
inboxobjectyesReading comments and mentions into GET /v1/inbox.
inbox.enabledboolean | nullyesWhether comments and mentions are read. null is the platform's default: on, except X, where reading costs money.
inbox.readAtstring | nullyes
inbox.errorstring | nullyesWhy the last read failed, such as a missing permission.
createdAtstringyes
updatedAtstringyes

RefreshResult

FieldTypeRequiredDescription
result"refreshed" | "not_needed" | "reconnect_required" | "failed"yesrefreshed: a new token is stored. not_needed: this account has nothing to refresh. reconnect_required: the platform refused; the account is now needs_reconnect. failed: a temporary platform failure; try again later.
accountAccountyes
account.idstringyes
account.platformPlatformyes
account.platformUserIdstringyes
account.usernamestring | nullyes
account.profileIdstring | nullyes
account.status"active" | "needs_reconnect" | "disconnected"yesneeds_reconnect: the platform refused the token; start a reconnect.
account.renewal"automatic" | "manual" | "not_needed"yesautomatic: Flung refreshes the token before it expires, until reconnectBy if set. manual: only a reconnect renews it, by reconnectBy. not_needed: the token does not expire.
account.tokenExpiresAtstring | nullyesWhen the current access token expires. Flung renews automatic ones about a day before.
account.reconnectBystring | nullyesThe last moment the account works without a reconnect; null when it renews indefinitely. Flung sends account.reconnect_required_soon a week before.
account.defaultBoardobject | nullyesPinterest only: where pins go unless a post picks another board.
account.defaultBoard.idstringyes
account.defaultBoard.namestring | nullyes
account.inboxobjectyesReading comments and mentions into GET /v1/inbox.
account.inbox.enabledboolean | nullyesWhether comments and mentions are read. null is the platform's default: on, except X, where reading costs money.
account.inbox.readAtstring | nullyes
account.inbox.errorstring | nullyesWhy the last read failed, such as a missing permission.
account.createdAtstringyes
account.updatedAtstringyes

BoardList

FieldTypeRequiredDescription
dataBoard[]yes
data[].idstringyes
data[].namestringyes

Board

FieldTypeRequiredDescription
idstringyes
namestringyes

PostingOptions

FieldTypeRequiredDescription
creatorNamestring | nullyes
privacyLevelsstring[]yesThe audiences this account may post to now; pass one as platformOverrides.tiktok.privacyLevel.
commentsDisabledbooleanyesThe creator turned comments off; posts cannot allow them.
duetDisabledbooleanyes
stitchDisabledbooleanyes
maxVideoSecondsinteger | nullyes

CreatedWebhookEndpoint

FieldTypeRequiredDescription
idstringyes
urlstringyes
eventsstring[]yes
enabledbooleanyes
createdAtstringyes
secretstringyesThe signing secret (Standard Webhooks, whsec_...). Shown only in this response; store it now.

WebhookEvent

"post.published" \| "post.partially_published" \| "post.failed" \| "target.published" \| "target.failed" \| "account.connected" \| "account.disconnected" \| "account.token_refresh_failed" \| "account.reconnect_required_soon" \| "inbox.received"

WebhookEndpointList

FieldTypeRequiredDescription
dataWebhookEndpoint[]yes
data[].idstringyes
data[].urlstringyes
data[].eventsstring[]yes
data[].enabledbooleanyes
data[].createdAtstringyes

WebhookEndpoint

FieldTypeRequiredDescription
idstringyes
urlstringyes
eventsstring[]yes
enabledbooleanyes
createdAtstringyes

RotatedSecret

FieldTypeRequiredDescription
secretstringyesThe new signing secret. Shown only in this response.
previousSecretExpiresAtstringyesUntil then, deliveries carry signatures from both secrets.

PingSent

FieldTypeRequiredDescription
eventIdstringyes

WebhookDeliveryList

FieldTypeRequiredDescription
dataWebhookDelivery[]yes
data[].idstringyes
data[].eventIdstringyes
data[].eventTypestringyesAn event type, or webhook.ping for a test.
data[].status"pending" | "delivered" | "failed"yespending while retries remain.
data[].attemptsintegeryes
data[].responseStatusinteger | nullyes
data[].lastErrorstring | nullyes
data[].createdAtstringyes
data[].updatedAtstringyes
hasMorebooleanyes

WebhookDelivery

FieldTypeRequiredDescription
idstringyes
eventIdstringyes
eventTypestringyesAn event type, or webhook.ping for a test.
status"pending" | "delivered" | "failed"yespending while retries remain.
attemptsintegeryes
responseStatusinteger | nullyes
lastErrorstring | nullyes
createdAtstringyes
updatedAtstringyes

ConnectToken

FieldTypeRequiredDescription
tokenstringyesHand this to the page (<flung-connect token>). It can only list, connect, reconnect and disconnect accounts.
expiresAtstringyes
originsstring[]yes
profileIdstring | nullyes
platformsarray | nullyes

ConnectSession

FieldTypeRequiredDescription
idstringyes
platformPlatformyes
accountIdstring | nullyesThe account being reconnected; null for a new connection.
status"pending" | "connected" | "failed" | "expired"yespending until the person finishes on the platform; expired when they did not by expiresAt.
authorizationUrlstring | nullyesSend the person here: the platform's own consent page. Null once the session has ended.
expiresAtstringyesThe person must finish by then.
accountIdsstring[]yesThe accounts stored, once connected. Facebook connects one per page.
errorobject | nullyesWhy it failed: access_denied, wrong_account, platform_error and so on.
error.codestringyes
error.messagestringyes
createdAtstringyes
completedAtstring | nullyes

CreatedApiKey

FieldTypeRequiredDescription
idstringyes
namestringyes
prefixstringyesThe start of the key, to tell keys apart.
scopesstring[]yes
lastUsedAtstring | nullyes
expiresAtstring | nullyes
revokedAtstring | nullyes
createdAtstringyes
keystringyesThe secret key. Shown only in this response; store it now.

ApiKeyList

FieldTypeRequiredDescription
dataApiKey[]yes
data[].idstringyes
data[].namestringyes
data[].prefixstringyesThe start of the key, to tell keys apart.
data[].scopesstring[]yes
data[].lastUsedAtstring | nullyes
data[].expiresAtstring | nullyes
data[].revokedAtstring | nullyes
data[].createdAtstringyes

ApiKey

FieldTypeRequiredDescription
idstringyes
namestringyes
prefixstringyesThe start of the key, to tell keys apart.
scopesstring[]yes
lastUsedAtstring | nullyes
expiresAtstring | nullyes
revokedAtstring | nullyes
createdAtstringyes

Me

FieldTypeRequiredDescription
workspaceIdstringyes
via"api_key" | "oauth"yesHow this request authenticated.
userIdstring | nullyesThe person who approved the app, for an OAuth token; null for an API key.
emailstring | nullyes

MemberList

FieldTypeRequiredDescription
dataMember[]yes
data[].userIdstringyes
data[].emailstringyes
data[].role"owner" | "member"yesowner may add and remove members; both may connect apps to the workspace.
data[].createdAtstringyes

Member

FieldTypeRequiredDescription
userIdstringyes
emailstringyes
role"owner" | "member"yesowner may add and remove members; both may connect apps to the workspace.
createdAtstringyes

MediaUpload

FieldTypeRequiredDescription
idstringyes
contentTypeMediaTypeyesWhat the file really is, read from its first bytes once uploaded.
filenamestring | nullyes
bytesinteger | nullyes
status"pending" | "processing" | "ready" | "failed"yespending until its bytes arrive; ready once a post can use it.
previewobject | nullyesVideos only, where previews are set up: a thumbnail. Read the file again while processing.
preview.status"processing" | "ready" | "failed" | "skipped"yesskipped when the video is over 100 MB or this month's thumbnail allowance is used up. Posts never wait for a preview; they use the file as uploaded.
preview.thumbnailUrlstring | nullyesA JPEG frame one second in, 640 pixels wide, at an address that does not expire.
preview.hlsUrlstring | nullyesAlways null for now: streaming versions are not made.
preview.dashUrlstring | nullyesAlways null for now.
preview.durationSecondsnumber | nullyesAlways null for now.
createdAtstringyes
uploadUrlstring | nullyesFor a file up to 100 MB: PUT it here, with your credential and its Content-Length. Null for a multipart upload.
multipartobject | nullyesFor a file over 100 MB: how to send it in parts.
multipart.partSizeintegeryesEvery part but the last is exactly this many bytes.
multipart.partCountintegeryes
multipart.partUrlstringyesPUT each part to this address with {partNumber} replaced by 1 to partCount, in any order.
multipart.completeUrlstringyesPOST here once every part is in.

MediaType

What the file really is, read from its first bytes once uploaded.

"image/jpeg" \| "image/png" \| "image/webp" \| "image/gif" \| "video/mp4" \| "video/quicktime"

Media

FieldTypeRequiredDescription
idstringyes
contentTypeMediaTypeyesWhat the file really is, read from its first bytes once uploaded.
filenamestring | nullyes
bytesinteger | nullyes
status"pending" | "processing" | "ready" | "failed"yespending until its bytes arrive; ready once a post can use it.
previewobject | nullyesVideos only, where previews are set up: a thumbnail. Read the file again while processing.
preview.status"processing" | "ready" | "failed" | "skipped"yesskipped when the video is over 100 MB or this month's thumbnail allowance is used up. Posts never wait for a preview; they use the file as uploaded.
preview.thumbnailUrlstring | nullyesA JPEG frame one second in, 640 pixels wide, at an address that does not expire.
preview.hlsUrlstring | nullyesAlways null for now: streaming versions are not made.
preview.dashUrlstring | nullyesAlways null for now.
preview.durationSecondsnumber | nullyesAlways null for now.
createdAtstringyes

UploadedPart

FieldTypeRequiredDescription
partNumberintegeryes
bytesintegeryes

MediaList

FieldTypeRequiredDescription
dataMedia[]yes
data[].idstringyes
data[].contentTypeMediaTypeyesWhat the file really is, read from its first bytes once uploaded.
data[].filenamestring | nullyes
data[].bytesinteger | nullyes
data[].status"pending" | "processing" | "ready" | "failed"yespending until its bytes arrive; ready once a post can use it.
data[].previewobject | nullyesVideos only, where previews are set up: a thumbnail. Read the file again while processing.
data[].preview.status"processing" | "ready" | "failed" | "skipped"yesskipped when the video is over 100 MB or this month's thumbnail allowance is used up. Posts never wait for a preview; they use the file as uploaded.
data[].preview.thumbnailUrlstring | nullyesA JPEG frame one second in, 640 pixels wide, at an address that does not expire.
data[].preview.hlsUrlstring | nullyesAlways null for now: streaming versions are not made.
data[].preview.dashUrlstring | nullyesAlways null for now.
data[].preview.durationSecondsnumber | nullyesAlways null for now.
data[].createdAtstringyes
hasMorebooleanyes

Template

FieldTypeRequiredDescription
idstringyes
namestringyes
contentstringyes
mediaIdsstring[]yes
accountIdsstring[]yes
platformOverridesobjectyes
platformOverrides.xobjectno
platformOverrides.x.contentstringno
platformOverrides.x.boardIdstringno
platformOverrides.instagramobjectno
platformOverrides.instagram.contentstringno
platformOverrides.instagram.boardIdstringno
platformOverrides.facebookobjectno
platformOverrides.facebook.contentstringno
platformOverrides.facebook.boardIdstringno
platformOverrides.threadsobjectno
platformOverrides.threads.contentstringno
platformOverrides.threads.boardIdstringno
platformOverrides.linkedinobjectno
platformOverrides.linkedin.contentstringno
platformOverrides.linkedin.boardIdstringno
platformOverrides.tiktokobjectno
platformOverrides.tiktok.contentstringno
platformOverrides.tiktok.boardIdstringno
platformOverrides.youtubeobjectno
platformOverrides.youtube.contentstringno
platformOverrides.youtube.boardIdstringno
platformOverrides.pinterestobjectno
platformOverrides.pinterest.contentstringno
platformOverrides.pinterest.boardIdstringno
platformOverrides.blueskyobjectno
platformOverrides.bluesky.contentstringno
platformOverrides.bluesky.boardIdstringno
platformOverrides.mastodonobjectno
platformOverrides.mastodon.contentstringno
platformOverrides.mastodon.boardIdstringno
platformOverrides.discordobjectno
platformOverrides.discord.contentstringno
platformOverrides.discord.boardIdstringno
platformOverrides.farcasterobjectno
platformOverrides.farcaster.contentstringno
platformOverrides.farcaster.boardIdstringno
createdAtstringyes
updatedAtstringyes

TemplateList

FieldTypeRequiredDescription
dataTemplate[]yes
data[].idstringyes
data[].namestringyes
data[].contentstringyes
data[].mediaIdsstring[]yes
data[].accountIdsstring[]yes
data[].platformOverridesobjectyes
data[].platformOverrides.xobjectno
data[].platformOverrides.instagramobjectno
data[].platformOverrides.facebookobjectno
data[].platformOverrides.threadsobjectno
data[].platformOverrides.linkedinobjectno
data[].platformOverrides.tiktokobjectno
data[].platformOverrides.youtubeobjectno
data[].platformOverrides.pinterestobjectno
data[].platformOverrides.blueskyobjectno
data[].platformOverrides.mastodonobjectno
data[].platformOverrides.discordobjectno
data[].platformOverrides.farcasterobjectno
data[].createdAtstringyes
data[].updatedAtstringyes

VariableList

FieldTypeRequiredDescription
dataVariable[]yes
data[].namestringyes
data[].valuestringyes
data[].updatedAtstringyes

Variable

FieldTypeRequiredDescription
namestringyes
valuestringyes
updatedAtstringyes

Feed

FieldTypeRequiredDescription
idstringyes
urlstringyes
accountIdsstring[]yes
templatestringyesThe post text: {{title}}, {{link}}, {{summary}} from each item, and workspace variables.
enabledbooleanyes
lastCheckedAtstring | nullyes
lastErrorstring | nullyes
createdAtstringyes

FeedList

FieldTypeRequiredDescription
dataFeed[]yes
data[].idstringyes
data[].urlstringyes
data[].accountIdsstring[]yes
data[].templatestringyesThe post text: {{title}}, {{link}}, {{summary}} from each item, and workspace variables.
data[].enabledbooleanyes
data[].lastCheckedAtstring | nullyes
data[].lastErrorstring | nullyes
data[].createdAtstringyes

PlatformList

FieldTypeRequiredDescription
dataPlatformInfo[]yes
data[].platformPlatformyes
data[].connectablebooleanyesWhether this Flung has the platform's app credentials, so accounts can be connected.
data[].maxTextLengthintegeryes
data[].requiresMediabooleanyesRefuses text-only posts.
data[].maxImagesintegeryesImages in one post; 0 when images are not accepted.
data[].videobooleanyesTakes one video per post.
data[].maxImageBytesintegeryes
data[].maxVideoBytesintegeryes
data[].postsPerHourintegeryesHow fast Flung publishes to one account, to stay inside the platform's limits.
data[].tokensExpirebooleanyesWhether connections expire; Flung renews them before they do where the platform allows.
data[].destinationsbooleanyesPosts go to a destination chosen per post (Pinterest boards).

PlatformInfo

FieldTypeRequiredDescription
platformPlatformyes
connectablebooleanyesWhether this Flung has the platform's app credentials, so accounts can be connected.
maxTextLengthintegeryes
requiresMediabooleanyesRefuses text-only posts.
maxImagesintegeryesImages in one post; 0 when images are not accepted.
videobooleanyesTakes one video per post.
maxImageBytesintegeryes
maxVideoBytesintegeryes
postsPerHourintegeryesHow fast Flung publishes to one account, to stay inside the platform's limits.
tokensExpirebooleanyesWhether connections expire; Flung renews them before they do where the platform allows.
destinationsbooleanyesPosts go to a destination chosen per post (Pinterest boards).

PostingTimes

FieldTypeRequiredDescription
dataobject[]yes
data[].publishAtstringyes
data[].daystringyes
data[].localHourintegeryes
data[].rankintegeryes1 is the platform's best slot of the week.

Usage

FieldTypeRequiredDescription
dataobject[]yes
data[].credentialstringyeskey:<api key id> or app:<OAuth client id>.
data[].daystringyes
data[].requestsintegeryes
data[].errorsintegeryesAnswers of 400 or more, rate limits included.

Stats

FieldTypeRequiredDescription
fromstringyes
tostringyes
postsobjectyesPosts due in the window, by status.
platformsobject[]yes
platforms[].platformPlatformyes
platforms[].targetsobjectyesPublishes to accounts on this platform, by status.
accountsobject[]yes
accounts[].platformPlatformyes
accounts[].accountsobjectyesAccounts now, by status.
mediaobjectyes
media.filesintegeryes
media.bytesintegeryes

InboxList

FieldTypeRequiredDescription
dataInboxItem[]yes
data[].idstringyes
data[].accountIdstringyes
data[].platformPlatformyes
data[].kind"comment" | "mention"yescomment: a reply to one of the account's posts. mention: the account named elsewhere.
data[].status"unread" | "read" | "replied" | "archived"yes
data[].textstringyes
data[].authorobjectyes
data[].author.idstringyes
data[].author.namestring | nullyes
data[].author.handlestring | nullyes
data[].urlstring | nullyes
data[].platformItemIdstringyes
data[].platformPostIdstring | nullyesThe platform post it answers.
data[].targetIdstring | nullyesThe Flung post target it answers, when that post went out through Flung.
data[].createdAtstringyes
data[].repliedAtstring | nullyes
hasMorebooleanyes

InboxItem

FieldTypeRequiredDescription
idstringyes
accountIdstringyes
platformPlatformyes
kind"comment" | "mention"yescomment: a reply to one of the account's posts. mention: the account named elsewhere.
status"unread" | "read" | "replied" | "archived"yes
textstringyes
authorobjectyes
author.idstringyes
author.namestring | nullyes
author.handlestring | nullyes
urlstring | nullyes
platformItemIdstringyes
platformPostIdstring | nullyesThe platform post it answers.
targetIdstring | nullyesThe Flung post target it answers, when that post went out through Flung.
createdAtstringyes
repliedAtstring | nullyes

InboxSync

FieldTypeRequiredDescription
addedintegeryesNew items read.

PostMetrics

FieldTypeRequiredDescription
dataobject[]yes
data[].targetIdstringyes
data[].accountIdstringyes
data[].platformPlatformyes
data[].metricsobject | nullyesnull when the platform has no counts for Flung, or could not be read now (see error).
data[].metrics.viewsinteger | nullyes
data[].metrics.likesinteger | nullyes
data[].metrics.commentsinteger | nullyes
data[].metrics.repostsinteger | nullyes
data[].metrics.quotesinteger | nullyes
data[].errorstring | nullyes
totalsobjectyes
totals.viewsinteger | nullyes
totals.likesinteger | nullyes
totals.commentsinteger | nullyes
totals.repostsinteger | nullyes
totals.quotesinteger | nullyes

Experience

FieldTypeRequiredDescription
xpintegeryes
levelintegeryes
xpIntoLevelintegeryes
xpForNextLevelintegeryes
streakDaysintegeryesDays in a row with a published post, up to today or yesterday.
leaderboardNamestring | nullyesThe name on the public leaderboard; null when the workspace is not on it.
achievementsAchievement[]yes
achievements[].idstringyes
achievements[].namestringyes
achievements[].descriptionstringyes
achievements[].categorystringyes
achievements[].rarity"common" | "rare" | "epic" | "legendary"yes
achievements[].xpintegeryes
achievements[].unlockedbooleanyes
achievements[].unlockedAtstring | nullyesWhen Flung first saw it earned.
achievements[].progressobjectyes
achievements[].progress.currentintegeryes
achievements[].progress.targetintegeryes

Achievement

FieldTypeRequiredDescription
idstringyes
namestringyes
descriptionstringyes
categorystringyes
rarity"common" | "rare" | "epic" | "legendary"yes
xpintegeryes
unlockedbooleanyes
unlockedAtstring | nullyesWhen Flung first saw it earned.
progressobjectyes
progress.currentintegeryes
progress.targetintegeryes

Leaderboard

FieldTypeRequiredDescription
dataobject[]yes
data[].rankintegeryes
data[].namestringyes
data[].levelintegeryes
data[].xpintegeryes
data[].youbooleanyes