Retrieve Available Posts for a Threads Username
View all Threads Public Data API endpoints →Provide a required Threads username, not a display name or numeric account ID, to retrieve the available public account posts. The response includes status, request_id and data.posts. Iterate data.posts[], then node.thread_items[], and read each post; the observed account collection contained threads with multiple items. Post fields include pk and id as strings, code, user.username, caption.text when available, taken_at as Unix seconds and like_count. A collection id may contain an account suffix, so preserve it intact rather than coercing it to a number. This is an available content sample, not a complete posting history. data.cursor was present, but username is the only supported input; there is no cursor, page, limit, date-range or sort parameter. Store retrieval times and deduplicate identifiers when comparing repeated account observations. Content visibility and availability can change, and absent metrics must remain unknown.
API Features
Live API Demo
🔒 Sign in to try it live
Log in to call this API with your own API key. New accounts get 100 free credits — no card required.
Log in / Sign upNo active API key found. Create one in your Dashboard, then reload this page. Dashboard →
/api/project/threads-scraper/list-user-posts API Response (JSON)
{} curl -X GET 'https://api.opendata-api.com/api/project/threads-scraper/list-user-posts?key=<API_KEY>&username=zuck'
Query Result
Use Cases
- Creator-watchlist digest: retrieve available posts for selected handles and assemble a source-attributed content summary in your own application.
- Competitor messaging comparison: compare themes across the returned content samples of known accounts without presenting them as complete histories.
- Account research corpus: store post text and original string identifiers with retrieval times, merging repeated observations by a consistent post key.
- Post-detail selection: extract shortcodes from an account's returned posts and choose specific items for individual text and engagement lookup.
Frequently asked questions
Does each entry in data.posts represent exactly one post?
No. Each entry contains node.thread_items, which may include several posts. Iterate data.posts[], then node.thread_items[], and read every post before building a digest, counting posts or exporting records.
Can I retrieve the account's entire posting history?
This endpoint retrieves the public collection currently available through the username lookup, not a guaranteed complete history. It exposes no pagination input, even if data.cursor is returned. Do not add cursor, page or other undocumented parameters.
Why can a collection post ID differ from the ID returned by post details?
The observed collection included an id with a post-and-account suffix, while pk held the numeric-looking post identifier and code held the shortcode. Preserve all values as strings. Use code for the post-detail operation rather than assuming all identifier fields are interchangeable.
Can I filter account posts by date or force newest-first ordering?
No date, sort or limit input is defined; username is the only parameter. Apply any date filtering or ordering to the returned sample in your application, without assuming that omitted posts are unavailable or that the sample is exhaustive.