fetchproof.

/v1/threads/profile

GET

Profile

Get Threads profile info

Credit cost

Default: 1 credit

How charges are determined

Cost is decided per call, not per endpoint: the same operation can cost different amounts depending on what it returns.

A call that fails costs 0 credits. A result served from cache costs 0 credits.

`default` is the cost when no rule matches. Rules are evaluated in order and the first whose conditions all hold wins.

A `when` condition is one of: `param` (the request parameter is true), `outcome` (the classifier's outcome), `empty` / `nonEmpty` (a response field is empty and absent, or a non-empty array or string), `flag` (a response field is exactly true).

A cost of `{ perStartedMinute: n, of: [fields] }` is n x max(1, ceil(seconds / 60)), so even a short result bills at least one minute.

Cache supportUse a cached response this old or newer for 0 credits. If none is available, fetch live at the endpoint’s normal price.
PaginationNo explicit pagination metadata in the published contract. Consult the parameters and response fields below.

Parameters

NameLocation / requiredSchema
handle

Threads username

query / required

string

cache_max_age

Use a cached response this old or newer for 0 credits. If none is available, fetch live at the endpoint’s normal price.

query / optional

string

Allowed values ["1d","3d","7d","14d","30d"]

Request examples

Replace placeholder values and supply your own API key. For operations with a request body, populate the body using the schema above.

cURL
curl --request GET 'https://api.fetchproof.com/v1/threads/profile?handle=YOUR_HANDLE' \
  --header 'x-api-key: YOUR_API_KEY'
JavaScript
const response = await fetch("https://api.fetchproof.com/v1/threads/profile?handle=YOUR_HANDLE", {
  method: 'GET',
  headers: { 'x-api-key': process.env.FETCHPROOF_API_KEY }
});
console.log(await response.text());
Python
import os
import requests

response = requests.get("https://api.fetchproof.com/v1/threads/profile?handle=YOUR_HANDLE",
    headers={"x-api-key": os.environ["FETCHPROOF_API_KEY"]})
print(response.text)

Responses

200Success. Envelope: success / credits_remaining / credits_charged.

application/json

object

successrequired

boolean

credits_remainingrequired

integer

credits_chargedrequired

integer

pkrequired

string

text_post_app_is_privaterequired

boolean

has_onboarded_to_text_post_apprequired

boolean

friendship_statusrequired

null

profile_pic_urlrequired

string

usernamerequired

string

text_post_app_remove_mention_entrypointrequired

null

show_text_post_app_replies_taboptional

boolean

text_app_custom_feedsoptional

null

gatingrequired

null

follower_countrequired

integer

profile_context_facepile_usersrequired

null

hd_profile_pic_versionsrequired

array

Array items

object

heightrequired

integer

urlrequired

string

widthrequired

integer

is_verifiedrequired

boolean

biographyrequired

string

text_app_biographyrequired

object

text_fragmentsrequired

object

fragmentsrequired

array

Array items

object

fragment_typerequired

string

link_fragmentrequired

null

mention_fragmentrequired

null

plaintextrequired

string

tag_fragmentoptional

null

linkified_web_urlrequired

null

looking_for_recs_fragmentoptional

null

cashtag_fragmentoptional

null

inline_sticker_fragmentoptional

null

linkified_in_app_urloptional

null

styling_infooptional

null

full_namerequired

string

bio_linksrequired

array

Array items

object

urlrequired

string

is_verifiedrequired

boolean

link_idrequired

string

transparency_labelrequired

null

is_threads_only_useroptional

boolean

show_text_post_app_badgerequired

boolean

idrequired

string

cachedoptional

boolean

cached_atoptional

string

{
  "format": "date-time"
}
platform_newsletter_infooptional

null

platform_podcast_infooptional

null

platform_podcast_episode_infooptional

null

text_post_app_public_viewsoptional

null

profile_tagsoptional

object

edgesrequired

array

Array items

object

noderequired

object

display_namerequired

string

namerequired

string

idrequired

string

is_communityrequired

boolean

tag_cluster_namerequired

string

is_viewer_founding_memberrequired

boolean

community_favicon_urlrequired

string

401Invalid or missing x-api-key
402No credits remaining
403Upstream denied (age gate, audience controls)
404Resource or endpoint not found
429Rate limited