fetchproof.

/v1/facebook/post

GET

Post

Get a public Facebook post or Reel, with shared_post_id and shared_post_url when exposed. Reel views may be null or below the badge; for badge counts, use /v1/facebook/profile/reels and match post_id. Exact views are not guaranteed.

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

allow_long_transcription

Allow AI transcription over 2 minutes. Paid rates apply to short videos too. Enable transcription separately.

query / optional

boolean

get_transcript

Set true to include a transcript. Default AI up to 2 minutes is included in the base price. allow_long_transcription=true adds 10 credits per AI minute, rounded up, even for short videos.

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

post_idrequired

string

shared_post_idrequired

null

shared_post_urlrequired

null

is_paid_partnershiprequired

null

like_countrequired

integer

comment_countrequired

integer

share_countrequired

integer

view_countrequired

integer

descriptionrequired

string

creation_timerequired

string

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

string

urlrequired

string

image_urlrequired

null

videorequired

object

idrequired

string

sd_urlrequired

string

hd_urlrequired

string

heightrequired

integer

widthrequired

integer

length_in_secondrequired

number

thumbnailrequired

string

captions_urlrequired

string

authorrequired

object

idrequired

string

namerequired

string

handlerequired

string

is_verifiedrequired

boolean

urlrequired

string

imagerequired

string

musicrequired

object

idrequired

string

typerequired

string

track_titlerequired

string

music_album_artrequired

string

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