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" | "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
media_urlMedia URL (if any)
platformPlatform name (reddit)
post_urlDirect link to the Reddit post
profile_urlUser's profile image URL
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
media_urlMedia URL (if any)
platformPlatform name (bluesky)
post_urlDirect link to the Bluesky post
profile_urlUser profile image URL
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
media_urlThumbnail image URL
platformPlatform name (youtube)
post_urlDirect URL to the YouTube video
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
captionText accompanying the Instagram post. May include hashtags, emojis, and mentions.
caption_created_atTimestamp when the caption was created.
caption_created_at_epochEpoch timestamp (seconds) for caption creation time.
coauthorList of co-authors or collaborators tagged in the post.
comment_countNumber of comments on the post.
display_uriURL to the main display image.
imageList of image URLs associated with the post (preview / lower-res versions).
image_ocr_textList of text extracted via OCR from image(s), if any.
like_countNumber of likes the post has received.
locationObject representing the post's tagged location (name, lat, lng).
platformPlatform name (`instagram`).
post_urlDirect link to the Instagram post.
taken_atTimestamp when the post was taken/created.
taken_at_epochEpoch timestamp (seconds) for post creation time.
user_idUnique identifier for the Instagram user who made the post.
user_profile_urlURL to the user's profile picture.
usernameInstagram handle of the user who made the post.
username_full_nameFull display name of the Instagram user.
usertagsList of usernames tagged in the post (coauthors / mentions).

Facebook Posts

Field NameDescription
comment_countNumber of comments on the post.
created_atTimestamp when the Facebook post was created.
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`.
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.

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",
          "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",
          "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",
          "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",
          "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",
        "media_url": "https://i.ytimg.com/vi/fk3920XYZ12/default.jpg",
        "platform": "youtube",
        "post_url": "https://www.youtube.com/watch?v=fk3920XYZ12",
        "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": [
      {
        "caption": "Sunset hike with the crew 🌄✨ #weekendvibes",
        "caption_created_at": "2025-06-20 18:22:41",
        "caption_created_at_epoch": 1750447361,
        "coauthor": ["adventure.mila","trailbro88"],
        "comment_count": 42,
        "display_uri": "https://instagram.fakecdn.com/p/hikephoto_main.jpg",
        "image": [
          "https://instagram.fakecdn.com/p/hikephoto_lowres.jpg",
          "https://instagram.fakecdn.com/p/hikephoto_preview.jpg"
        ],
        "image_ocr_text": ["Sunset Trail","No Trespassing"],
        "like_count": 1289,
        "location": {
          "name": "Crystal Ridge National Park",
          "lat": 38.5562,
          "lng": -105.1821
        },
        "platform": "instagram",
        "post_url": "https://instagram.com/p/C9Fake12345/",
        "taken_at": "2025-06-20 17:59:10",
        "taken_at_epoch": 1750445950,
        "user_id": "9988776655",
        "user_profile_url": "https://instagram.fakecdn.com/profile/avatar_44519.jpg",
        "username": "wildtrekker",
        "username_full_name": "Lucas Anderson",
        "usertags": ["outdoor_daily","hikegram","adventure.mila"]
      },
      ...
    ]
  }

Facebook Post Example

{
    "posts": [
      {
        "comment_count": 67,
        "created_at": "2025-06-19 14:05:22",
        "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 }
        ],
        "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"
      },
      ...
    ]
  }