fetchproof.

/v2/instagram/media/transcript

GET

Transcript

Get AI transcripts with timestamp segments for videos in an Instagram post or reel. Long videos may time out.

Credit cost

Default: 1 credit when no rule matches.

  1. 0 credits when response field transcript is empty or absent.
  2. 1 credit when response field native is exactly true.
  3. 10 credits per started minute (duration from durationSeconds or duration_seconds) when request parameter allow_long_transcription is true.

AI up to 2 minutes: 1 credit. Paid mode: 10 credits/minute, rounded up, even for short videos. No transcript: 0 credits.

By default, successful AI up to 120 seconds costs a flat 1 credit per request; over 120 seconds requires allow_long_transcription=true, which bills ALL successful AI at 10 credits per started minute, including short videos; empty AI results and errors cost 0 credits

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

Instagram post or reel URL

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

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

transcriptsrequired

array

Array items

object

idrequired

string

shortcoderequired

string

textrequired

string

transcript_with_timestamprequired

null

credits_chargedoptional

integer

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