Posts Data

Retrieve raw posts collected for a given search and platform.

GET /api/iq/keyword_search/{search_id}/posts_data

Parameters

search_idSearch ID
platformOptional — "all" (default) | "twitter" | "reddit" | "bluesky" | "youtube" | "instagram" | "facebook" | "weibo" | "linkedin"

Request Example

curl -X GET "https://rolli.ai/api/iq/keyword_search/7232/posts_data?platform=twitter" \
  -H "X-ROLLI-TOKEN: your_token" \
  -H "X-ROLLI-USER-ID: your_user_id" \
  -H "Content-Type: application/json"
    
fetch("https://rolli.ai/api/iq/keyword_search/7232/posts_data?platform=twitter", {
  method: "GET",
  headers: {
    "X-ROLLI-TOKEN": "your_token",
    "X-ROLLI-USER-ID": "your_user_id",
    "Content-Type": "application/json"
  },
})
  .then(res => res.json())
  .then(console.log);
    
require "net/http"
require "uri"
require "json"

uri = URI("https://rolli.ai/api/iq/keyword_search/7232/posts_data?platform=twitter")
req = Net::HTTP::Get.new(uri)
req["X-ROLLI-TOKEN"] = "your_token"
req["X-ROLLI-USER-ID"] = "your_user_id"
req["Content-Type"] = "application/json"

res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(req)
end

puts res.body
    
import requests
import json

url = "https://rolli.ai/api/iq/keyword_search/7232/posts_data?platform=twitter"
headers = {
    "X-ROLLI-TOKEN": "your_token",
    "X-ROLLI-USER-ID": "your_user_id",
    "Content-Type": "application/json"
}response = requests.get(url, headers=headers)

print(response.json())
    

Response Example

{
    "posts": [{
      "platform": "twitter",
      "post_url": "https://twitter.com/ICEgov/status/1933872098872524824",
      "text": "We enforce federal immigration law...",
      "statistics": { "like_count": 9294, "retweet_count": 2252, "view_count": "87795" },
      "username": "ICEgov",
      "created_at": "2025-06-14 13:00:12"
    }]
  }

GET /api/iq/user_search/{search_id}/posts_data

Parameters

search_idSearch ID

Request Example

curl -X GET "https://rolli.ai/api/iq/user_search/7232/posts_data" \
  -H "X-ROLLI-TOKEN: your_token" \
  -H "X-ROLLI-USER-ID: your_user_id" \
  -H "Content-Type: application/json"
    
fetch("https://rolli.ai/api/iq/user_search/7232/posts_data", {
  method: "GET",
  headers: {
    "X-ROLLI-TOKEN": "your_token",
    "X-ROLLI-USER-ID": "your_user_id",
    "Content-Type": "application/json"
  },
})
  .then(res => res.json())
  .then(console.log);
    
require "net/http"
require "uri"
require "json"

uri = URI("https://rolli.ai/api/iq/user_search/7232/posts_data")
req = Net::HTTP::Get.new(uri)
req["X-ROLLI-TOKEN"] = "your_token"
req["X-ROLLI-USER-ID"] = "your_user_id"
req["Content-Type"] = "application/json"

res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(req)
end

puts res.body
    
import requests
import json

url = "https://rolli.ai/api/iq/user_search/7232/posts_data"
headers = {
    "X-ROLLI-TOKEN": "your_token",
    "X-ROLLI-USER-ID": "your_user_id",
    "Content-Type": "application/json"
}response = requests.get(url, headers=headers)

print(response.json())
    

Posts fields

Posts fields have many similar fields, but can vary according to platform. All posts have a platform attribute to differentiate from which platform it came.

Twitter Posts

Field NameDescription
account_typeType of account (e.g., Individual, Organization)
account_type_reasonExplanation for how the account type was determined
conversation_id_strID of the tweet conversation thread
countryCountry associated with the user or tweet (inferred or declared)
country_codeTwo-letter ISO country code
country_reasonReason or source used to infer or confirm the country
created_atTimestamp when the tweet was created
emotionDetected emotion (e.g., happy, angry, irrelevant)
favourites_countTotal likes the user has given
followers_countNumber of followers
friends_countNumber of accounts the user follows
locationUser’s profile location
media_countNumber of media items posted by the user
media_urlMedia URL for this tweet (empty if none)
platformPlatform name (twitter)
post_urlDirect link to the tweet
profile_urlUser’s profile image
sentimentSentiment toward the target (positive, negative, irrelevant)
sentiment_reasonExplanation for the sentiment classification
sentiment_targetEntity or topic the sentiment targets
statistics Object containing:
like_count, quote_count, reply_count, retweet_count, view_count
statuses_countTotal number of tweets by this user
textFull tweet text
total_interactions_countSum of all interactions for this tweet
user_created_atWhen the user account was created
user_descriptionUser biography
user_idNumeric user ID
usernameX handle (without @)

Reddit Posts

Field NameDescription
created_atTimestamp when the post was created
emotionDetected emotion (e.g., happy, angry, irrelevant)
media_urlMedia URL (if any)
platformPlatform name (reddit)
post_urlDirect link to the Reddit post
profile_urlUser's profile image URL
sentimentSentiment toward the target (positive, negative, irrelevant)
sentiment_reasonExplanation for the sentiment classification
sentiment_targetEntity or topic the sentiment targets
statistics Object containing:
comment_count, like_count, num_users
textText or headline of the Reddit post
total_interactions_countSum of all interactions
usernameAuthor's Reddit username

Bluesky Posts

Field NameDescription
created_atTimestamp when the post was created
emotionDetected emotion (e.g., happy, angry, irrelevant)
media_urlMedia URL (if any)
platformPlatform name (bluesky)
post_urlDirect link to the Bluesky post
profile_urlUser profile image URL
sentimentSentiment toward the target (positive, negative, irrelevant)
sentiment_reasonExplanation for the sentiment classification
sentiment_targetEntity or topic the sentiment targets
statistics Object containing:
likeCount, quoteCount, replyCount, repostCount
textFull post text
total_interactions_countTotal interactions
usernameAuthor’s Bluesky handle

YouTube Posts

Field NameDescription
created_atTimestamp when the video post was created
emotionDetected emotion (e.g., happy, angry, irrelevant)
media_urlThumbnail image URL
platformPlatform name (youtube)
post_urlDirect URL to the YouTube video
sentimentSentiment toward the target (positive, negative, irrelevant)
sentiment_reasonExplanation for the sentiment classification
sentiment_targetEntity or topic the sentiment targets
statistics Object containing:
comment_count, like_count, view_count
textDescription (hashtags, summary, links)
total_interactions_countTotal views (primary metric)
usernameYouTube channel name

Instagram Posts

Field NameDescription
comment_countNumber of comments on the post.
created_atTimestamp when the post was created
emotionDetected emotion (e.g., happy, angry, irrelevant)
media_urlThumbnail image URL
platformPlatform name (instagram)
post_urlDirect URL to the Instagram post
profile_urlURL of the user’s or page's profile image.
sentimentSentiment toward the target (positive, negative, irrelevant)
sentiment_reasonExplanation for the sentiment classification
sentiment_targetEntity or topic the sentiment targets
textDescription (hashtags, summary, links)
total_interactions_countTotal interactions count
usernameInstagram user’s or page's name

Facebook Posts

Field NameDescription
comment_countNumber of comments on the post.
created_atTimestamp when the Facebook post was created.
emotionDetected emotion (e.g., happy, angry, irrelevant)
media_urlThumbnail image URL
platformPlatform name (`facebook`).
post_urlDirect URL to the Facebook post.
profile_urlURL of the user’s or page's profile image.
reaction_countTotal number of reactions (sum of likes, loves, etc.).
reactions_detailArray of objects with `name` (reaction type) and `count`.
sentimentSentiment toward the target (positive, negative, irrelevant)
sentiment_reasonExplanation for the sentiment classification
sentiment_targetEntity or topic the sentiment targets
share_countNumber of times the post has been shared.
textText content of the post (may include emojis, formatting).
total_interactions_countCombined total of comments, shares, and reactions.
user_idNumeric ID of the user or page that created the post.
usernameName of the Facebook user or page that created the post.

Weibo Posts

Field NameDescription
created_atTimestamp when the Weibo post was created.
emotionDetected emotion (e.g., happy, angry, irrelevant)
errorError status indicator ("no" if no error).
item_numberItem number reference (if applicable).
media_urlComma-separated URLs to media (images, videos) attached to the post.
page_numberPage number reference (if applicable).
platformPlatform name (`weibo`).
post_urlDirect URL to the Weibo post.
profile_urlURL of the user's profile image.
sentimentSentiment toward the target (positive, negative, irrelevant)
sentiment_reasonExplanation for the sentiment classification
sentiment_targetEntity or topic the sentiment targets
statistics Object containing:
comment_count, id, image_url, like_count, posting_tool, repost_count, retweet_id, retweet_url, user_authentication (e.g., "红V" for verified), video_url
textFull post text (may include hashtags, mentions, emojis).
total_interactions_countCombined total of comments, likes, and reposts.
user_descriptionUser's profile bio or description.
usernameWeibo username of the post author.

LinkedIn Posts

Field NameDescription
date_publishedTimestamp when the LinkedIn post was published (ISO 8601 format).
image_urlURL to the post's cover image or thumbnail.
platformPlatform name (`linkedin`).
shared_content_textText of shared content if this post shares another post.
shared_content_urlURL of shared content if this post shares another post.
textFull post text or content description.
typePost type (e.g., "Article", "DiscussionForumPosting", "VideoObject").
urlDirect URL to the LinkedIn post.
user_descriptionBrief description of the user or company posting.
user_description_fullFull description of the user or company posting.
user_follower_countNumber of followers (may be null).
user_nameName of the LinkedIn user or company posting.
user_profile_urlURL to the user's or company's profile image.
user_urlURL to the user's or company's LinkedIn profile.

X Post Example

    {
      "posts": [
        {
          "account_type": "Individual",
          "account_type_reason": "Posting behavior and profile characteristics indicate a personal account.",
          "conversation_id_str": "2048837291883345521",
          "country": "Canada",
          "country_code": "ca",
          "country_reason": "Profile location references Toronto and multiple Canada-related hashtags.",
          "created_at": "2025-06-22 09:14:03",
          "emotion": "angry",
          "favourites_count": 1284,
          "followers_count": 45329,
          "friends_count": 512,
          "location": "Toronto, ON",
          "media_count": 799,
          "media_url": "https://pbs.twimg.com/media/FakeImg_2903.jpg",
          "platform": "twitter",
          "post_url": "https://twitter.com/fakemagpie/status/2048837291883345521",
          "profile_url": "https://pbs.twimg.com/profile_images/88/fake_owl_pic_normal.jpg",
          "sentiment": "negative",
          "sentiment_reason": "Post expresses strong dissatisfaction regarding new immigration policies.",
          "sentiment_target": "CanadaImmigration",
          "statistics": {
            "like_count": 529,
            "quote_count": 14,
            "reply_count": 83,
            "retweet_count": 192,
            "view_count": "32190"
          },
          "statuses_count": 21492,
          "text": "New immigration updates dropped today and none of them make sense. How is anyone supposed to plan their life like this? Madness.",
          "total_interactions_count": 818,
          "user_created_at": "Thu Jan 14 18:22:10 +0000 2010",
          "user_description": "Tech. Coffee. Complaining about things on the internet.",
          "user_id": "102938475",
          "username": "FakeMagpie"
        },
        ...
      ]
    }
  

Reddit Post Example

    {
      "posts": [
        {
          "created_at": "2025-06-16 04:12:31",
          "emotion": "happiness",
          "media_url": "https://preview.redd.it/fakepostimg_55123.jpg?width=140&height=140&auto=webp",
          "platform": "reddit",
          "post_url": "https://www.reddit.com/r/worldevents/comments/1m45k8p/australia_announces_major_immigration_reform/",
          "profile_url": "https://styles.redditmedia.com/t5_fake_user/profileImage.png",
          "sentiment": "positive",
          "sentiment_reason": "The post highlights a major reform in a positive light, indicating approval of the changes.",
          "sentiment_target": "AustraliaImmigration",
          "statistics": {
            "comment_count": 454,
            "like_count": 10221,
            "num_users": 3072211
          },
          "text": "Australia announces a major reform to its immigration qualification process.",
          "total_interactions_count": 10675,
          "username": "policygecko92"
        },
        ...
      ]
    }
  

Bluesky Post Example

    {
      "posts": [
        {
          "created_at": "2025-06-19 08:47:12",
          "emotion": "neutral",
          "media_url": "",
          "platform": "bluesky",
          "post_url": "https://bsky.app/profile/microbyte.bsky.social/post/3lzzp41yz92yq",
          "profile_url": "https://cdn.bsky.app/img/avatar/plain/did:plc:fake33ffbs8/bafkreiavatarimg",
          "sentiment": "neutral",
          "sentiment_reason": "The post provides information without expressing a clear positive or negative opinion.",
          "sentiment_target": "VisaProcessingTimelines",
          "statistics": {
            "likeCount": 12,
            "quoteCount": 0,
            "replyCount": 3,
            "repostCount": 1
          },
          "text": "In case anyone missed it: new visa processing timelines were released today. Big changes for students.",
          "total_interactions_count": 16,
          "username": "microbyte"
        },
        ...
      ]
    }
  

YouTube Post Example

{
    "posts": [
      {
        "created_at": "2025-06-17 18:21:10",
        "emotion": "neutral",
        "media_url": "https://i.ytimg.com/vi/fk3920XYZ12/default.jpg",
        "platform": "youtube",
        "post_url": "https://www.youtube.com/watch?v=fk3920XYZ12",
        "sentiment": "neutral",
        "sentiment_reason": "The video provides a report on visa updates without expressing a clear positive or negative opinion.",
        "sentiment_target": "RegionalVisaPathways",
        "statistics": {
          "comment_count": 12,
          "like_count": "158",
          "view_count": "8420"
        },
        "text": "Report: Major updates to regional visa pathways expected next month. Here’s what experts say.",
        "total_interactions_count": 8420,
        "username": "GlobalPolicyTV"
      },
      ...
    ]
  }

Instagram Post Example

{
    "posts": [
      {
        "comment_count": 1542,
        "created_at": "2026-01-15 06:15:00",
        "emotion": "irrelevant",
        "like_count": 15,
        "media_url": "https://scontent-ord5-1.fakeurl.com/v/t51.82787-15/615278826_18546539785014771_3096714153280561828_n.jpg",
        "platform": "instagram",
        "post_url": "https://www.instagram.com/p/fakeUrl-",
        "profile_url": "https://scontent-ord5-3.fakeurl.com/v/t51.2885-19/305332350_3387024941620485_1420341293202608667_n.jpg",
        "sentiment": "irrelevant",
        "sentiment_reason": "No mention or implication of ICE detention facilities. The post discusses an Instagram algorithm feature and user engagement, unrelated to immigration or detention topics.",
        "sentiment_target": "ICE detention facilities",
        "text": "The latest “Your Algorithm” trend taking over Instagram Stories was first tested in October 2025 and is now rolling out globally to English-language users.\n\nBeyond offering a snapshot of your recent content preferences, the feature also lets you take control of your feed by adding or removing topics of interest, shaping the kind of Reels that appear on your Instagram.\n\nGet ahead of the curve by generating your “Your Algorithm” and tell us in the comments what you discovered.\n\n#Prestige #PrestigeMY",
        "total_interactions_count": 15,
        "username": "prestigemadia"
      },
      ...
    ]
  }

Facebook Post Example

{
    "posts": [
      {
        "comment_count": 67,
        "created_at": "2025-06-19 14:05:22",
        "emotion": "happiness",
        "media_url": "https://fbcdn.fake/images/post_image_1234.jpg",
        "platform": "facebook",
        "post_url": "https://facebook.com/story.php?story_fbid=102033221188&id=2001122334",
        "profile_url": "https://fbcdn.fake/images/profile_pic_9921.jpg",
        "reaction_count": 984,
        "reactions_detail": [
          { "name": "like", "count": 710 },
          { "name": "love", "count": 182 },
          { "name": "wow", "count": 42 },
          { "name": "angry", "count": 50 }
        ],
        "sentiment": "positive",
        "sentiment_reason": "The post celebrates a successful community event and expresses gratitude, indicating a positive sentiment.",
        "sentiment_target": "Community Events",
        "share_count": 121,
        "text": "Community cleanup day a huge success! 🌿💪 Thank you to everyone who joined!",
        "total_interactions_count": 1172,
        "user_id": "2001122334",
        "username": "Green Valley Community Center"
      },
      ...
    ]
  }

Weibo Post Example

{
    "posts": [
      {
        "created_at": "2025-12-20 13:55",
        "emotion": "happiness",
        "error": "no",
        "item_number": null,
        "media_url": "https://wx4.sinaimg.cn/large/fakeimg1.jpg",
        "page_number": null,
        "platform": "weibo",
        "post_url": "https://weibo.com/9876543210/FakePost123",
        "profile_url": "https://tvax4.sinaimg.cn/crop.0.0.1080.1080.180/fakeprofile.jpg",
        "sentiment": "positive",
        "sentiment_reason": "The post promotes a sustainability campaign and encourages community involvement, reflecting a positive sentiment towards environmental initiatives.",
        "sentiment_target": "Sustainability Campaign",
        "statistics": {
          "comment_count": 105,
          "id": 5246048685789308,
          "image_url": "https://wx4.sinaimg.cn/large/fakeimg1.jpg",
          "like_count": 403,
          "posting_tool": "Official Weibo",
          "repost_count": 129,
          "retweet_id": null,
          "retweet_url": "",
          "user_authentication": "红V",
          "video_url": null
        },
        "text": "Excited to announce our new sustainability campaign! Join us in making a positive impact on our communities. #GreenFuture #Sustainability",
        "total_interactions_count": 637,
        "user_description": "Environmental advocate and community leader",
        "username": "GreenVoice_China"
      },
      ...
    ]
  }

LinkedIn Post Example

{
    "posts": [
      {
        "date_published": "2025-03-27T16:49:44.000+00:00",
        "image_url": "https://media.licdn.com/dms/image/v2/FakeImageID/article-cover-image/0/fakeimage123",
        "platform": "linkedin",
        "shared_content_text": null,
        "shared_content_url": null,
        "text": "A behind-the-scenes look at how we combine AI and human expertise for effective content moderation. Discover the power of collaborative intelligence.",
        "type": "Article",
        "url": "https://www.linkedin.com/pulse/keeping-humans-loop-how-ai-helps-content-moderation-fakeurl",
        "user_description": "Innovative platform for AI-driven content analysis",
        "user_description_full": "Innovative platform for AI-driven content analysis and moderation solutions",
        "user_follower_count": 6423,
        "user_name": "TechCorp",
        "user_profile_url": "https://media.licdn.com/dms/image/v2/FakeCompanyLogo/company-logo_100_100/0/fakecompanylogo",
        "user_url": "https://www.linkedin.com/company/techcorp"
      },
      ...
    ]
  }