Threads API endpoint
Returns a public Threads profile by `username` (with or without a leading `@`): name, profile URL, biography, avatar URL, `followers_count` and `threads_count`. Counts are derived from the compact figures shown on the profile page. An unavailable profile returns 404.
/threads/profile/{username}MCP tool: threads_profile
Returns public profile metadata for a Threads username, including the visible biography, avatar, follower count, and thread count.
Path parameters:
username: required. Threads username, with or without a leading @.Notable response behavior:
| Profile surface | Endpoint | Supported inputs and continuation |
|---|---|---|
| Threads | /threads/profile/{username}/posts | username; optional opaque cursor from next_cursor. No public sort/filter control. |
| Replies | /threads/profile/{username}/replies | username only. The logged-out page has no cursor or sort/filter controls; inspect pagination_limited. |
| Media | /threads/profile/{username}/media | username only. No logged-out cursor or media-type filter; inspect pagination_limited. |
| Reposts | /threads/profile/{username}/reposts | username only. No logged-out cursor or sort filter; inspect pagination_limited. |
The profile Topics endpoint, /threads/profile/{username}/topics, lists every
topic tag shown on the profile. Use a tag's name and id with
/threads/search/topics to discover matching posts and authors. Post-level
comments/replies are separate at /threads/post/{username}/{code}/replies.
| Field | In the sample | Value in the sample |
|---|---|---|
| username | Has a value | |
| name | Has a value | |
| url | Has a value | threads.com |
| biography | Has a value | |
| avatar_url | Has a value | scontent-waw2-1.cdninstagram.com |
| followers_count | Has a value | 5,700,000 |
| threads_count | Has a value | 170 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| username (path) | string | Yes | Threads username | zuck | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/threads/profile/zuck" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"username": "zuck",
"name": "Mark Zuckerberg",
"url": "https://www.threads.com/@zuck",
"biography": "Mostly superintelligence and MMA takes",
"followers_count": 5700000,
"threads_count": 151
}
}Request schema
No body schema
Response schema
#/definitions/threads.profileResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | threads.Profile | No | ||||
| data.avatar_url | string | No | URL of the profile picture. | |||
| data.biography | string | No | Bio text shown on the profile. | |||
| data.followers_count | integer | No | Number of followers of the profile. | |||
| data.name | string | No | Display name shown on the profile. | |||
| data.threads_count | integer | No | Number of threads the profile has posted. | |||
| data.url | string | No | URL of the profile on Threads. | |||
| data.username | string | No | Threads username of the profile. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Invalid username | #/definitions/app.Response |
| 404 | Profile not found | #/definitions/app.Response |
| 503 | Upstream error or parser drift | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/threads/profile/zuck" \
-H "x-api-key: $CRAWLORA_API_KEY"