Support needed? Reach out! 📧

How to Scrape Threads Post Replies

This tutorial shows how to use Threads Post Replies API to scrape and crawl structured Threads data in real-time.
Dig into Threads conversation threads with our replies API and extract post details alongside nested replies, reply authors, and engagement counts for community and sentiment analysis.

Access Threads Data in 3 Steps

Start crawling Threads post replies data. Follow these steps to extract social media data in minutes.

1

Create Your Account

Go to our registration page and make an account. It's free, no credit card, and you get credits right away to play around with.

2

Verify Your Email Address

You'll get a verification email, click the link in it. Once that's done, you can grab your API token from the dashboard.

3

Make Your First API Call

Copy the code snippet below, swap in your API key, and run it. You'll get Threads data back as JSON within a few seconds.

Code Sample

Here's a JavaScript example to get you going. Swap out the token and you're good, works the same way in any language that can make HTTP requests. Start collecting post replies data via our REST API!

javascript-logo JavaScript
Threads Post Info & Replies
1 const root = 'https://ensembledata.com/apis'
2 const endpoint = '/threads/post/replies'
3 const params = {
4   "id"3742087106786012244,
5   "shortcode""DPukGWujKxU",
6   "token""YOUR-TOKEN-HERE"
7 }
8  
9 const queryString = new URLSearchParams(params).toString();
10 const url = `${root}${endpoint}?${queryString}`;
11  
12 await fetch(url)
13   .then(response => response.json())
14   .then(data => console.log(data))
15   .catch(error => console.error(error));
16  

Parameters

id (integer) Post ID. REQUIRED
shortcode (string) You can use the Post Shortcode instead of the ID. In this case, input any integer in the ID parameter.
token (string) Private token assigned to each client to access the APIs. REQUIRED

Example Response

Explore the fields returned by this endpoint. Click a row to expand nested objects and arrays, hover a value to copy it, or use "Expand all" to see everything at once.

JSON
Threads Post Info & Replies
dataarray1 item · schema from #0 1 item
nodeobject6 fields
thread_header_contextnullnull
thread_itemsarray3 items · schema from #0 3 items
postobject33 fields
pkstring"3462171673145949786"
userobject12 fields
friendship_statusnullnull
idstring"256953336"
eligible_for_text_app_activation_badgenullnull
hide_text_app_activation_badge_on_text_appbooleanfalse
pkstring"256953336"
text_app_last_visited_timenullnull
transparency_labelnullnull
transparency_productnullnull
transparency_product_enabledbooleanfalse
is_verifiedbooleanfalse
usernamestring"kevinataylor"
profile_pic_urlstring"https://instagram.fhan14-1.fna.fbcdn.net/v/t51.2885-19/358219264_12751…"
text_post_app_infoobject22 fields
is_post_unavailablebooleanfalse
pinned_post_infoobject2 fields
is_pinned_to_profilebooleanfalse
is_pinned_to_parent_postbooleanfalse
share_infoobject9 fields
reposted_postnullnull
quoted_postnullnull
can_quote_postbooleanfalse
can_repostbooleanfalse
is_reposted_by_viewerbooleanfalse
repost_restricted_reasonstring"private"
quoted_attachment_author_attribution_allowedbooleantrue
quoted_attachment_post_unavailablebooleanfalse
quoted_attachment_postnullnull
reply_to_authorobject2 fields
usernamestring"techwithandrea"
idstring"44239563106"
direct_reply_countnumber1
repost_countnumber0
hush_infonullnull
can_replybooleanfalse
can_private_replybooleanfalse
reshare_countnullnull
__typenamestring"XDTTextPostAppMediaInfo"
delete_timestampnullnull
special_effects_enabled_strstring""
quote_countnumber0
text_fragmentsobject1 field
fragmentsarray1 item · schema from #0 1 item
fragment_typestring"plaintext"
link_fragmentnullnull
mention_fragmentnullnull
plaintextstring"Ya… There’s a whole museum upstairs and downstairs!"
tag_fragmentnullnull
reply_controlstring"everyone"
is_replybooleantrue
link_preview_attachmentnullnull
linked_inline_medianullnull
private_reply_partnernullnull
fediverse_infonullnull
post_unavailable_reasonnullnull
idstring"3462171673145949786_256953336"
is_paid_partnershipnullnull
carousel_medianullnull
codestring"DAMGssZSL5a"
image_versions2object1 field
candidatesarray0 items
empty
original_heightnumber612
original_widthnumber612
video_versionsnullnull
captionobject3 fields
pkstring"18115794460396121"
has_translationnullnull
textstring"Ya… There’s a whole museum upstairs and downstairs!"
like_countnumber1
logging_info_tokennullnull
is_fb_onlynullnull
is_internal_onlynullnull
media_overlay_infonullnull
sharing_friction_infoobject2 fields
should_have_sharing_frictionbooleanfalse
sharing_friction_payloadnullnull
audionullnull
caption_is_editedbooleanfalse
transcription_datanullnull
accessibility_captionnullnull
has_audionullnull
media_typenumber19
has_likedbooleanfalse
caption_add_onnullnull
taken_atnumber1726943047
giphy_media_infonullnull
metaPlacenullnull
organic_tracking_tokenstring"eyJ2ZXJzaW9uIjo1LCJwYXlsb2FkIjp7ImlzX2FuYWx5dGljc190cmFja2VkIjp0cnVlLC…"
meta_placenullnull
like_and_view_counts_disabledbooleanfalse
fbidstring"18115794457396121"
line_typestring"line"
should_show_ephemeral_post_timerbooleanfalse
thread_typestring"thread"
headernullnull
idstring"3462171673145949786"
__typenamestring"XDTThread"
cursorstring""

Response Codes

Status codes this endpoint can return, so you can handle errors before they surprise you in production.

200SuccessSuccessful Response
422Client ErrorValidation Error
491Client ErrorToken not found
492Client ErrorEmail not verified
493Client ErrorSubscription expired
495Client ErrorAll daily units used
500Server ErrorSomething went wrong

API Pricing

#returned_replies units Cost per successful call to this endpoint.

Fetch Threads Data at Scale

Extract Threads post and reply data in bulk for sentiment analysis, community engagement research, or tracking how discussions unfold over time.

deco-icon

Nested Replies

Get full nested reply threads for any public Threads post.

deco-icon

Reply Authors

See which accounts are replying and driving the conversation.

deco-icon

Sentiment Ready

Feed clean reply text straight into sentiment analysis tools.