Skip to content

Posts and media

A Post represents a social media item, web/news result, or custom URL associated with a subject. Retrieve posts through the filtered-posts endpoints, then use this guide to interpret the content and analysis fields.

FieldsWhat they describe
id, backgroundCheckIdThe post and the screening run containing it
platform, postType, postLink, postDateWhere the item came from, how it relates to the subject, and when it was published
handle, nameOfPoster, profileImageUrlThe author of the content; this can be someone other than the subject for likes and reposts
contentThe item’s text content
sentiment, sentimentFlagNumeric and categorical sentiment
flagList, allFlags, friendlyFlagTextDisplay labels, detailed flags, and display text
keywordFlagTypeThe post’s keyword classification
isVideo, videoLink, mediaItemsPrimary video information and attached media
tagsTags applied to the post

The Post schema lists field types and nullability. Collections and optional text may be null; handle them before iterating or displaying values.

postTypeMeaning
PostAn original post authored by the subject
ReplyA reply posted by the subject
LikeContent the subject liked; the subject did not necessarily author it
RepostContent the subject shared or reposted
MediaItemContentContent associated with media analysis, such as extracted text
WebSearchA web or news search result
CustomUrlContent added through a custom URL

Preserve postType and the author fields when presenting a result. A liked or reposted item should not be labeled as an original statement by the subject.

How the objects fit together
  1. PostRead the text and context

    The post contains identity, authorship, sentiment, display labels, and its own detailed flags.

  2. Media items · zero or moreInspect each attached item

    Each image, thumbnail, or frame has its own media URL, type, and flag collections.

  3. FlagInfo · on either objectKeep each finding with its source

    Use the containing post or media item together with behaviorSource and riskType to interpret a finding.

Read both post.allFlags and each mediaItems[].allFlags when you need detailed findings. Post-level flags do not replace media-level analysis. Keep the media item’s id when correlating findings with the displayed image or video frame.

FieldRecommended use
flagListA simplified list of names intended for display. It is not a complete analysis record.
allFlagsStructured FlagInfo entries for detailed processing. Inspect each entry’s classification and source.
friendlyFlagTextReady-to-display explanatory text. Treat it as display copy rather than a value to parse.

Keyword matches can populate flag fields even when the item is not otherwise flagged. Do not equate a nonempty flagList or allFlags with a single overall screening outcome. Use the aggregate results and configured screening preferences for that context.

friendlyFlagText can include wording such as “Flagged for” and keyword details. It is not guaranteed to be a plain comma-separated copy of flagList.

FieldMeaning
nameThe display name of the detected behavior
labelNameThe category label used to identify the behavior
flagLevelA confidence-style value between 0 and 1; it is not an overall screening score
keywordFlagLabelThe matching keyword label, when supplied
keywordFlagTypeNegative, Positive, Neutral, or NotFlagged
behaviorSourceThe analysis source, described below
riskTypeThe flag’s classification: Post, Image, or Keywords

behaviorSource and riskType answer different questions. OCR identifies how text was obtained from an image; keyword classification identifies a match within that text. Do not infer the source from riskType alone, or identify all keyword matches solely by riskType: "Keywords".

The OpenAPI schema represents behaviorSource as an integer:

ValueSourceInterpretation
0AudioAnalysis of transcribed audio
1OcrAnalysis of text recognized in an image or video frame
2VisualAnalysis of visual content
3TextAnalysis of post text

Sentiment describes tone. It is separate from behavior flags and keyword matches.

Field / valueInterpretation
sentimentNumeric score from -1 (negative) to 1 (positive)
sentimentFlag: "Negative"Score below -0.75
sentimentFlag: "Positive"Score above 0.6
sentimentFlag: "Neutral"All other scores, including the boundary values

keywordFlagType reflects matches against configured keywords. When multiple keyword classes match post text, precedence is Negative → Positive → Neutral. NotFlagged indicates no keyword classification. A positive or neutral keyword match is distinct from a negative behavior finding.

Each MediaItem has a type:

TypeMeaning
ImageAn image attached to the post
VideoThumbnailA thumbnail representing a video
VideoFrameA frame or processing item associated with video content

Use media as the item’s media URL. For video content, that URL can point to a thumbnail; videoLink points to the video when supplied. The top-level post’s isVideo and videoLink describe its primary media. Iterate mediaItems to inspect all attachments.

A video can produce multiple analyzed frames. Audio and OCR findings may be associated with video media items. A frame with no flags does not prove that the video has no findings, and the VideoFrame type alone does not identify the analysis source. Inspect each item’s flags and their behaviorSource values.

This shortened example is illustrative. IDs, content, labels, scores, and URLs are sample values.

{
"id": "11111111-1111-4111-8111-111111111111",
"backgroundCheckId": "22222222-2222-4222-8222-222222222222",
"platform": "Twitter",
"postType": "Repost",
"handle": "example_author",
"content": "Illustrative reposted content.",
"sentiment": -0.8,
"sentimentFlag": "Negative",
"flagList": [],
"allFlags": [],
"isVideo": false,
"keywordFlagType": "NotFlagged",
"mediaItems": [
{
"id": "33333333-3333-4333-8333-333333333333",
"type": "Image",
"media": "https://example.com/media/image.jpg",
"isVideo": false,
"flagList": ["Weapons Image"],
"friendlyFlagText": "Flagged for Weapons Image",
"allFlags": [
{
"name": "Weapons Image",
"labelName": "Weapons Image",
"flagLevel": 0.86,
"keywordFlagType": "NotFlagged",
"behaviorSource": 2,
"riskType": "Image"
}
]
}
]
}

Read this as a repost, with negative text sentiment and a visual finding on the attached image. Looking only at post.allFlags would miss the image-level finding. Negative sentiment by itself does not explain the visual flag.