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.
Read a post
Section titled “Read a post”| Fields | What they describe |
|---|---|
id, backgroundCheckId | The post and the screening run containing it |
platform, postType, postLink, postDate | Where the item came from, how it relates to the subject, and when it was published |
handle, nameOfPoster, profileImageUrl | The author of the content; this can be someone other than the subject for likes and reposts |
content | The item’s text content |
sentiment, sentimentFlag | Numeric and categorical sentiment |
flagList, allFlags, friendlyFlagText | Display labels, detailed flags, and display text |
keywordFlagType | The post’s keyword classification |
isVideo, videoLink, mediaItems | Primary video information and attached media |
tags | Tags 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.
Post types and authorship
Section titled “Post types and authorship”postType | Meaning |
|---|---|
Post | An original post authored by the subject |
Reply | A reply posted by the subject |
Like | Content the subject liked; the subject did not necessarily author it |
Repost | Content the subject shared or reposted |
MediaItemContent | Content associated with media analysis, such as extracted text |
WebSearch | A web or news search result |
CustomUrl | Content 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.
Posts, media, and flags
Section titled “Posts, media, and flags”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.
Display fields and detailed flags
Section titled “Display fields and detailed flags”| Field | Recommended use |
|---|---|
flagList | A simplified list of names intended for display. It is not a complete analysis record. |
allFlags | Structured FlagInfo entries for detailed processing. Inspect each entry’s classification and source. |
friendlyFlagText | Ready-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.
Understand a FlagInfo entry
Section titled “Understand a FlagInfo entry”| Field | Meaning |
|---|---|
name | The display name of the detected behavior |
labelName | The category label used to identify the behavior |
flagLevel | A confidence-style value between 0 and 1; it is not an overall screening score |
keywordFlagLabel | The matching keyword label, when supplied |
keywordFlagType | Negative, Positive, Neutral, or NotFlagged |
behaviorSource | The analysis source, described below |
riskType | The 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:
| Value | Source | Interpretation |
|---|---|---|
0 | Audio | Analysis of transcribed audio |
1 | Ocr | Analysis of text recognized in an image or video frame |
2 | Visual | Analysis of visual content |
3 | Text | Analysis of post text |
Sentiment and keywords
Section titled “Sentiment and keywords”Sentiment describes tone. It is separate from behavior flags and keyword matches.
| Field / value | Interpretation |
|---|---|
sentiment | Numeric 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.
Images, videos, and frames
Section titled “Images, videos, and frames”Each MediaItem has a type:
| Type | Meaning |
|---|---|
Image | An image attached to the post |
VideoThumbnail | A thumbnail representing a video |
VideoFrame | A 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.
Example: interpret a returned item
Section titled “Example: interpret a returned item”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.