fetchproof.

/v1/threads/post

GET

Post

Get a post by url. Also returns comments, author continuations, and related posts.

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
url

The URL of the post to get

query / required

string

trim

Set true for a trimmed response.

query / optional

boolean

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/post?url=YOUR_URL' \
  --header 'x-api-key: YOUR_API_KEY'
JavaScript
const response = await fetch("https://api.fetchproof.com/v1/threads/post?url=YOUR_URL", {
  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/post?url=YOUR_URL",
    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

postrequired

object

idrequired

string

pkrequired

string

userrequired

object

friendship_statusrequired

null

pkrequired

string

profile_pic_urlrequired

string

usernamerequired

string

idrequired

string

transparency_labelrequired

null

transparency_productrequired

null

transparency_product_enabledrequired

boolean

is_verifiedrequired

boolean

text_post_app_is_privaterequired

boolean

has_onboarded_to_text_post_apprequired

boolean

full_nameoptional

string

text_post_app_infooptional

object

show_header_followrequired

boolean

is_markuprequired

boolean

custom_feed_preview_inforequired

null

link_preview_attachmentrequired

null

linked_inline_mediarequired

null

special_effects_enabled_strrequired

string

text_fragmentsrequired

object

fragmentsrequired

array

Array items

object

fragment_typerequired

string

link_fragmentrequired

null

mention_fragmentrequired

null

plaintextrequired

string

tag_fragmentrequired

null

linkified_web_urlrequired

null

reshare_countrequired

integer

direct_reply_countrequired

integer

repost_countrequired

integer

quote_countrequired

integer

share_inforequired

object

quoted_attachment_author_attribution_allowedrequired

boolean

quoted_attachment_post_unavailablerequired

boolean

quoted_attachment_postrequired

null

quoted_postrequired

null

reposted_postrequired

null

reply_to_authorrequired

null

reply_controlrequired

string

private_reply_partnerrequired

null

self_thread_countrequired

null

tag_headerrequired

object

display_namerequired

string

idrequired

string

root_post_authorrequired

null

pinned_post_inforequired

object

is_pinned_to_parent_postrequired

boolean

is_pinned_to_profilerequired

boolean

related_trends_inforequired

null

is_replyrequired

boolean

is_post_unavailablerequired

boolean

post_unavailable_reasonrequired

null

hush_inforequired

null

can_private_replyrequired

boolean

can_replyrequired

boolean

is_paid_partnershipoptional

null

audiooptional

null

captionrequired

object

textrequired

string

pkrequired

string

has_translationrequired

null

caption_is_editedoptional

boolean

transcription_dataoptional

null

carousel_mediaoptional

null

coderequired

string

image_versions2optional

object

candidatesrequired

array

Array items

object

heightrequired

integer

urlrequired

string

widthrequired

integer

original_heightoptional

integer

original_widthoptional

integer

accessibility_captionoptional

string

video_versionsoptional

null

has_audiooptional

null

media_typeoptional

integer

caption_add_onoptional

null

giphy_media_infooptional

null

media_overlay_infooptional

null

sharing_friction_infooptional

object

should_have_sharing_frictionrequired

boolean

sharing_friction_payloadrequired

null

like_countrequired

integer

metaPlaceoptional

null

meta_placeoptional

null

gen_ai_detection_methodoptional

null

taken_atrequired

integer

organic_tracking_tokenoptional

string

logging_info_tokenoptional

null

like_and_view_counts_disabledoptional

boolean

view_countsoptional

integer

commentsrequired

array

Array items

object

idrequired

string

pkrequired

string

userrequired

object

friendship_statusrequired

null

pkrequired

string

profile_pic_urlrequired

string

usernamerequired

string

idrequired

string

transparency_labelrequired

null

transparency_productrequired

null

transparency_product_enabledrequired

boolean

is_verifiedrequired

boolean

text_post_app_is_privaterequired

boolean

has_onboarded_to_text_post_apprequired

boolean

full_nameoptional

string

text_post_app_infooptional

object

show_header_followrequired

boolean

is_markuprequired

boolean

custom_feed_preview_inforequired

null

link_preview_attachmentrequired

null

linked_inline_mediarequired

null

special_effects_enabled_strrequired

string

text_fragmentsrequired

object

fragmentsrequired

array

Array items

object

fragment_typerequired

string

link_fragmentrequired

null

mention_fragmentrequired

null

plaintextrequired

string

tag_fragmentrequired

null

linkified_web_urlrequired

null

styling_inforequired

null

reshare_countrequired

null

direct_reply_countrequired

integer

repost_countrequired

integer

quote_countrequired

integer

share_inforequired

object

quoted_attachment_author_attribution_allowedrequired

boolean

quoted_attachment_post_unavailablerequired

boolean

quoted_attachment_postrequired

null

quoted_postrequired

null

reposted_postrequired

null

reply_to_authorrequired

object

usernamerequired

string

idrequired

string

reply_controlrequired

string

private_reply_partnerrequired

null

self_thread_countrequired

null

tag_headerrequired

null

root_post_authorrequired

object

pkrequired

string

idrequired

string

pinned_post_inforequired

object

is_pinned_to_parent_postrequired

boolean

is_pinned_to_profilerequired

boolean

related_trends_inforequired

null

is_replyrequired

boolean

is_post_unavailablerequired

boolean

post_unavailable_reasonrequired

null

hush_inforequired

null

can_private_replyrequired

boolean

can_replyrequired

boolean

is_paid_partnershipoptional

null

audiooptional

null

captionrequired

object

textrequired

string

pkrequired

string

has_translationrequired

boolean

caption_is_editedoptional

boolean

transcription_dataoptional

null

carousel_mediaoptional

null

coderequired

string

image_versions2optional

object

candidatesrequired

array

original_heightoptional

integer

original_widthoptional

integer

accessibility_captionoptional

null

video_versionsoptional

null

has_audiooptional

null

media_typeoptional

integer

caption_add_onoptional

null

giphy_media_infooptional

null

media_overlay_infooptional

null

sharing_friction_infooptional

object

should_have_sharing_frictionrequired

boolean

sharing_friction_payloadrequired

null

like_countrequired

integer

metaPlaceoptional

null

meta_placeoptional

null

gen_ai_detection_methodoptional

null

taken_atrequired

integer

organic_tracking_tokenoptional

string

logging_info_tokenoptional

null

like_and_view_counts_disabledoptional

boolean

threadItemsrequired

array

relatedPostsrequired

array

Array items

object

idrequired

string

pkrequired

string

userrequired

object

friendship_statusrequired

null

pkrequired

string

profile_pic_urlrequired

string

usernamerequired

string

idrequired

string

transparency_labelrequired

null

transparency_productrequired

null

transparency_product_enabledrequired

boolean

is_verifiedrequired

boolean

text_post_app_is_privaterequired

boolean

has_onboarded_to_text_post_apprequired

boolean

full_nameoptional

string

text_post_app_infooptional

object

show_header_followrequired

boolean

is_markuprequired

boolean

custom_feed_preview_inforequired

null

link_preview_attachmentrequired

null

linked_inline_mediarequired

null

special_effects_enabled_strrequired

string

text_fragmentsrequired

object

fragmentsrequired

array

Array items

object

fragment_typerequired

string

link_fragmentrequired

null

mention_fragmentrequired

null

plaintextrequired

string

tag_fragmentrequired

null

linkified_web_urlrequired

null

reshare_countrequired

null

direct_reply_countrequired

integer

repost_countrequired

integer

quote_countrequired

integer

share_inforequired

object

quoted_attachment_author_attribution_allowedrequired

boolean

quoted_attachment_post_unavailablerequired

boolean

quoted_attachment_postrequired

null

quoted_postrequired

null

reposted_postrequired

null

reply_to_authorrequired

null

reply_controlrequired

string

private_reply_partnerrequired

null

self_thread_countrequired

null

tag_headerrequired

null

root_post_authorrequired

null

pinned_post_inforequired

object

is_pinned_to_parent_postrequired

boolean

is_pinned_to_profilerequired

boolean

related_trends_inforequired

null

is_replyrequired

boolean

is_post_unavailablerequired

boolean

post_unavailable_reasonrequired

null

hush_inforequired

null

is_paid_partnershipoptional

null

audiooptional

null

captionrequired

object

textrequired

string

pkrequired

string

has_translationrequired

null

caption_is_editedoptional

boolean

transcription_dataoptional

null

carousel_mediaoptional

null

coderequired

string

image_versions2optional

object

candidatesrequired

array

original_heightoptional

integer

original_widthoptional

integer

accessibility_captionoptional

null

video_versionsoptional

null

has_audiooptional

null

media_typeoptional

integer

caption_add_onoptional

null

giphy_media_infooptional

null

media_overlay_infooptional

null

sharing_friction_infooptional

object

should_have_sharing_frictionrequired

boolean

sharing_friction_payloadrequired

null

like_countrequired

integer

metaPlaceoptional

null

meta_placeoptional

null

gen_ai_detection_methodoptional

null

taken_atrequired

integer

organic_tracking_tokenoptional

string

logging_info_tokenoptional

null

like_and_view_counts_disabledoptional

boolean

cachedoptional

boolean

cached_atoptional

string

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