List Threads user posts
Read a profile's recent public Threads posts and the author's continuation posts, with canonical URLs. Use trim for a compact projection.
/v1/threads/user/postsx-api-keyHeaders
Get your API keyYour ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.
Threads username (leading @ accepted).
max 31 chars
exampletrue keeps the compact projection: id, pk, caption, code, like_count, taken_at, user (feed and search posts add url).
one of: true, false
Request correlation identifier.
HTTP attempts for the operation (profile, posts, post, comments: one page load, plus one canonical redirect hop for short, threads.net or wrongly attributed permalinks; search: a bodiless session probe (HEAD on the login route) plus one document, with the login page read only when the probe sets no cookie; user search: the index and one profile page per account, five by default and ten at most; each with the shared transient retry), decoded bytes and duration.
Always included.
≥ 0
Always included.
≥ 0
Always included.
≥ 0
True when usable data is returned; inspect status and coverage for omissions.
success, partial, failed, or challenged. HTTP 200 can be partial.
one of: success, partial
Canonical threads.com URL of the profile, post or search (user search: the web index endpoint, query excluded).
absolute HTTPS URL
UTC retrieval time.
Complete means every source field of the operation was returned; warnings name every omission or cap (private_account, posts_first_page_only, posts_truncated, comments_first_page_only, comments_truncated, related_posts_truncated, parent_posts_truncated, search_results_truncated, date_filter_applied, users_truncated, users_omitted). Source is public_web, or web_index for user search.
Always included.
one of: public_web, web_index
Always included.
Always included.
Always included.
up to 50 items
Always included.
Always included.
min 1 chars
Always included.
Always included.
Always included.
min 1 chars
Always included.
min 1 chars
Always included.
Always included.
Always included.
absolute HTTPS URL
Always included.
up to 50 items
Always included.
Always included.
min 1 chars
Always included.
Always included.
Always included.
min 1 chars
Always included.
min 1 chars
Always included.
Always included.
Always included.
absolute HTTPS URL
No fields match.
HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.
| HTTP | failure.code | Meaning |
|---|---|---|
| 400 | invalid_request | Missing, duplicate, malformed or unsupported parameters, handles, dates or URLs. |
| 401 | unauthorized | Invalid API key. |
| 404 | not_found | Unknown handle (Threads redirects it to the login form) or unknown post code. |
| 403 | restricted_page | The page or document is restricted to signed-in viewers. |
| 503 | search_unavailable | User search was called without a configured search key. |
| 502 | search_failed | The web search index answered with an error, a non-JSON body or an unexpected shape. |
| 429 | upstream_rate_limited | Threads or the web index rate limited the request. |
| 502 | upstream_challenged | Threads answered the request with a challenge page instead of a document (status challenged). |
| 502 | operation_unavailable | Threads no longer serves the pinned document for this operation. |
| 502 | unsafe_redirect | Threads redirected the request somewhere other than the login form or the canonical permalink. |
| 502 | unsupported_page | The page or GraphQL result is missing, mismatched or structurally unsupported. |
| 502 | response_too_large | The decoded responses exceeded 8 MiB. |
| 502 | payload_too_complex | The response exceeded the JSON depth or node limits. |
| 502 | request_limit | The upstream request budget was exhausted. |
| 502 | upstream_error | Network failure or HTTP 5xx after the single retry. |
| 503 | busy | All retrieval slots are busy. |
| 504 | timeout | The 45-second deadline elapsed. |