Threads
5 endpoints.
- GET /v1/threads/post
- GET /v1/threads/user
- GET /v1/threads/search
- GET /v1/threads/search_users
- GET /v1/threads/user_posts
GET /v1/threads/post
Post
Fetches a single Threads post by URL, returning the post's caption, like_count, view_counts, reshare_count, direct_reply_count, image_versions2, text_post_app_info, and taken_at. Also includes comments, threadItems, and relatedPosts arrays. threadItems contains public continuation posts by the original author and stays separate from comments. Supports a trim option for lighter responses.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
url required | query | string | The URL of the post to get |
trim | query | boolean | Set to true for a trimmed down version of the response |
cache_max_age | query | string | If we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp). Otherwise, scrape a live result (1 credit). See the Caching page for details. one of: 1d, 3d, 7d, 14d, 30d |
Request
curl "https://api.scrapall.bipsport.com/scapi/v1/threads/post?url=https://www.threads.com/@trendspider/post/DIU8naHS6q_" \
-H "X-Scapi-Key: YOUR_API_KEY"const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/threads/post?url=https://www.threads.com/@trendspider/post/DIU8naHS6q_", {
headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();import requests
r = requests.get(
"https://api.scrapall.bipsport.com/scapi/v1/threads/post?url=https://www.threads.com/@trendspider/post/DIU8naHS6q_",
headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())Response 200 (sample)
{
"post": {
"id": "3656367813102434565_63055343223",
"pk": "3656367813102434565",
"caption": {
"text": "Spoiler alert: We're testing a way for you to hide spoilers in your Threads posts.",
"pk": "17978979272714446",
"has_translation": null
},
"code": "DK-BydcJHkF",
"like_count": 96439,
"taken_at": 1750093031,
"user": {
"pk": "63055343223",
"friendship_status": null,
"profile_pic_url": "https://scontent-hou1-1.cdninstagram.com/v/t51.2885-19/452737457_1313286386312102_744138929735022550_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-hou1-1.cd...",
"username": "zuck",
"id": "63055343223",
"full_name": "Mark Zuckerberg",
"transparency_label": null,
"transparency_product": null,
"transparency_product_enabled": false,
"is_verified": true,
"text_post_app_is_private": false,
"has_onboarded_to_text_post_app": true
}
},
"comments": [
{
"id": "3658534918151603488_74973899807",
"pk": "3658534918151603488",
"caption": {
"text": "意味分からない",
"pk": "18306832783208063",
"has_translation": true
},
"code": "DLFuh_SygUg",
"like_count": 0,
"taken_at": 1750351370,
"user": {
"pk": "74973899807",
"friendship_status": null,
"profile_pic_url": "https://scontent-hou1-1.cdninstagram.com/v/t51.2885-19/491446152_17850244230449803_8764028655689505242_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-hou1-1....",
"username": "emimimi_0917",
"id": "74973899807",
"full_name": "青木恵美",
"transparency_label": null,
"transparency_product": null,
"transparency_product_enabled": false,
"is_verified": true,
"text_post_app_is_private": false,
"has_onboarded_to_text_post_app": true
}
}
],
"thread_items": [],
"related_posts": [
{
"id": "3658572865166656590_63453315755",
"pk": "3658572865166656590",
"caption": {
"text": "Initial findings of investigation into overnight ground explosion of SpaceX Starship rocket in Texas point to failure of a Composite Overwrapped Pressure Ves...",
"pk": "18345028147091883",
"has_translation": null
},
"code": "DLF3KMNJERO",
"like_count": 15,
"taken_at": 1750355893,
"user": {
"pk": "63453315755",
"friendship_status": null,
"profile_pic_url": "https://scontent-hou1-1.cdninstagram.com/v/t51.2885-19/402757276_161160320414682_3222955945465557227_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-hou1-1.cd...",
"username": "jonathanserrie",
"id": "63453315755",
"full_name": "Jonathan Serrie",
"transparency_label": null,
"transparency_product": null,
"transparency_product_enabled": false,
"is_verified": true,
"text_post_app_is_private": false,
"has_onboarded_to_text_post_app": true
}
}
]
}GET /v1/threads/user
Profile
Retrieves a Threads user's public profile including username, full_name, biography, profile_pic_url, follower_count, is_verified, bio_links, and hd_profile_pic_versions. Also indicates whether the account is a threads-only user via is_threads_only_user.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
handle required | query | string | Threads username |
cache_max_age | query | string | If we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp). Otherwise, scrape a live result (1 credit). See the Caching page for details. one of: 1d, 3d, 7d, 14d, 30d |
Request
curl "https://api.scrapall.bipsport.com/scapi/v1/threads/user?handle=trendspider" \
-H "X-Scapi-Key: YOUR_API_KEY"const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/threads/user?handle=trendspider", {
headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();import requests
r = requests.get(
"https://api.scrapall.bipsport.com/scapi/v1/threads/user?handle=trendspider",
headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())Response 200 (sample)
{
"pk": "63496592589",
"text_post_app_is_private": false,
"has_onboarded_to_text_post_app": true,
"friendship_status": null,
"profile_pic_url": "https://scontent-atl3-2.cdninstagram.com/v/t51.2885-19/483433564_655589117415062_7541542786235693538_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-atl3-2.cd...",
"username": "sportsillustrated",
"text_post_app_remove_mention_entrypoint": null,
"show_text_post_app_replies_tab": true,
"text_app_custom_feeds": null,
"gating": null,
"follower_count": 551296,
"profile_context_facepile_users": null,
"hd_profile_pic_versions": [
{
"height": 320,
"url": "https://scontent-atl3-2.cdninstagram.com/v/t51.2885-19/483433564_655589117415062_7541542786235693538_n.jpg?stp=dst-jpg_s320x320_tt6&_nc_ht=scontent-atl3-2.cd...",
"width": 320
}
],
"is_verified": true,
"biography": "Sports, sports and more sports.",
"text_app_biography": {
"text_fragments": {
"fragments": [
{
"fragment_type": "plaintext",
"link_fragment": null,
"mention_fragment": null,
"plaintext": "Sports, sports and more sports.",
"tag_fragment": null,
"linkified_web_url": null
}
]
}
},
"full_name": "Sports Illustrated",
"bio_links": [
{
"url": "https://lnk.bio/sportsillustrated",
"is_verified": false,
"link_id": "17882982429146262"
}
],
"transparency_label": null,
"is_threads_only_user": false,
"show_text_post_app_badge": true,
"id": "63496592589"
}GET /v1/threads/search
Search by Keyword
Searches Threads for posts matching a keyword, returning up to 10 results with caption text, like_count, reshare_count, direct_reply_count, user info, and image_versions2. Supports optional start_date and end_date filters plus a trim option. Only 10 results are returned per request due to public API limitations.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
query required | query | string | Keyword to search for |
start_date | query | string | Start date to search for |
end_date | query | string | End date to search for |
trim | query | boolean | Set to true for a trimmed down version of the response |
Request
curl "https://api.scrapall.bipsport.com/scapi/v1/threads/search?query=basketball" \
-H "X-Scapi-Key: YOUR_API_KEY"const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/threads/search?query=basketball", {
headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();import requests
r = requests.get(
"https://api.scrapall.bipsport.com/scapi/v1/threads/search?query=basketball",
headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())Response 200 (sample)
{
"posts": [
{
"id": "3658605407757558624_71259204903",
"pk": "3658605407757558624",
"caption": {
"text": "This woman selling mini umbrellas shows love to stray cats & dogs & introduces them. She may not have money but is richer than many.🥹🥹",
"pk": "18077403781726333",
"has_translation": null
},
"code": "DLF-jv2tmNg",
"like_count": 5419,
"taken_at": 1750359780,
"user": {
"pk": "71259204903",
"friendship_status": null,
"profile_pic_url": "https://scontent-dfw5-2.cdninstagram.com/v/t51.2885-19/501402907_17869607802372904_1939177145792832486_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-dfw5-2....",
"username": "mahtabuddinit",
"id": "71259204903",
"full_name": "Mahtab Uddin",
"transparency_label": null,
"transparency_product": null,
"transparency_product_enabled": false,
"is_verified": false,
"text_post_app_is_private": false,
"has_onboarded_to_text_post_app": true
}
}
]
}GET /v1/threads/search_users
Search Users
Searches for Threads users by username, returning matching profiles with username, full_name, profile_pic_url, is_verified, and pk. Useful for finding user accounts before fetching their profile or posts.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
query required | query | string | Username to search for |
Request
curl "https://api.scrapall.bipsport.com/scapi/v1/threads/search_users?query=shams" \
-H "X-Scapi-Key: YOUR_API_KEY"const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/threads/search_users?query=shams", {
headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();import requests
r = requests.get(
"https://api.scrapall.bipsport.com/scapi/v1/threads/search_users?query=shams",
headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())Response 200 (sample)
{
"users": [
{
"username": "shams",
"pk": "5951152863",
"is_active_on_text_post_app": true,
"full_name": "Shams Charania",
"profile_pic_url": "https://instagram.flas1-2.fna.fbcdn.net/v/t51.2885-19/482795192_3376548399146227_6340123271493467395_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=instagram.flas1-2....",
"is_verified": true,
"has_onboarded_to_text_post_app": true,
"id": "5951152863"
}
]
}GET /v1/threads/user_posts
Posts
Fetches the most recent posts from a Threads user, returning id, caption text, code, like_count, reshare_count, direct_reply_count, repost_count, image_versions2, video_versions, and taken_at. Only the last 20-30 posts are publicly visible. Supports a trim option for lighter responses.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
handle required | query | string | Threads username |
trim | query | boolean | Set to true for a trimmed down version of the response |
Request
curl "https://api.scrapall.bipsport.com/scapi/v1/threads/user_posts?handle=trendspider" \
-H "X-Scapi-Key: YOUR_API_KEY"const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/threads/user_posts?handle=trendspider", {
headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();import requests
r = requests.get(
"https://api.scrapall.bipsport.com/scapi/v1/threads/user_posts?handle=trendspider",
headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())Response 200 (sample)
{
"posts": [
{
"id": "3656367813102434565_63055343223",
"pk": "3656367813102434565",
"caption": {
"text": "Spoiler alert: We're testing a way for you to hide spoilers in your Threads posts.",
"pk": "17978979272714446",
"has_translation": null
},
"code": "DK-BydcJHkF",
"like_count": 96434,
"taken_at": 1750093031,
"user": {
"friendship_status": null,
"pk": "63055343223",
"profile_pic_url": "https://scontent-hou1-1.cdninstagram.com/v/t51.2885-19/452737457_1313286386312102_744138929735022550_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-hou1-1.cd...",
"username": "zuck",
"id": "63055343223",
"transparency_label": null,
"transparency_product": null,
"transparency_product_enabled": false,
"is_verified": true,
"text_post_app_is_private": false,
"has_onboarded_to_text_post_app": true
},
"url": "https://www.threads.com/@zuck/post/DK-BydcJHkF"
}
]
}