Get started

Credits and caching

How requests are priced, reserved and charged, how to read what you paid, and how to get free cache hits.

SocialTap is prepaid: you buy credits, and each successful request spends some of them. One balance covers every endpoint on every platform.

  • Failed requests are free: errors cost 0 credits.
  • Cache hits are free: responses served from the cache cost 0 credits.
  • Credits never expire.
  • One credit balance for every endpoint and platform.

How a request is charged

  1. Reserve. Before calling the platform, SocialTap checks that your balance covers the endpoint's minimum price and sets that minimum aside, nothing more. If the balance is below the minimum, the request fails immediately with insufficient_credits.
  2. Fetch. Endpoints try their sources cheapest first and stop at the first one that works. The source that produced the result is reported as meta.source (see sources). Right before a source that costs more than what is set aside (a price that grows with the size of the item), SocialTap sets aside more of your balance: the exact price when the size of the item is known in advance, otherwise as much as your balance allows, and it then processes only as much of the item as that pays for. A source your balance can't pay for is skipped.
  3. Charge. The price of the result is charged and the rest released. If the result would cost more than your balance covers, the request fails with insufficient_credits instead and costs nothing. A failed request releases everything.

A request that succeeds after you hang up (a timeout, a closed connection) is still charged. Its result is cached: retry with max_age to get it as a free cache hit.

What you paid is in meta.credits_charged and in the x-credits-charged header. x-credits-remaining is your account balance right after this request was charged; other requests of yours still in flight may lower it further, so with requests in parallel treat it as an upper bound. Both headers are on every response to an authenticated request, errors included (with a charge of 0); a unauthorized response has neither.

Reservations

A request starts only if your balance covers the endpoint's minimum, and only that minimum is set aside when it starts. More is set aside just before costlier work, and only what that work needs. Requests running in parallel therefore don't each lock up the most they could cost: your balance has to cover their minimums, plus the actual price of whatever costlier work they reach.

Prices that grow with the size of the item have a ceiling, because items above a size limit are refused; that ceiling is the most one request can cost.

EndpointBalance needed to startMost one request can cost
Facebook Post API1 credit1 credit
Facebook Ad Library Search API1 credit1 credit
Facebook Video Transcript API1 credit122 credits
Instagram Post API1 credit1 credit
Instagram Posts API1 credit1 credit
Instagram Profile API1 credit1 credit
Instagram Reels Transcript API1 credit122 credits
Rumble Comments API1 credit1 credit
Rumble Video API1 credit1 credit
Rumble Channel Videos API1 credit1 credit
Rumble Channel API1 credit1 credit
Rumble Search API1 credit1 credit
Rumble Transcript API1 credit122 credits
Threads Profile API1 credit1 credit
TikTok Comments API1 credit1 credit
TikTok Post API1 credit1 credit
TikTok Posts API1 credit1 credit
TikTok Profile API1 credit1 credit
TikTok Transcript API1 credit122 credits
YouTube Comments API1 credit1 credit
YouTube Video API1 credit1 credit
YouTube Channel Videos API1 credit1 credit
YouTube Channel API1 credit1 credit
YouTube Transcript API1 credit122 credits

Prices

A price is either flat ("1 credit") or a base plus a per-unit amount, for sources whose cost grows with the size of the item; the unit is part of the price.

EndpointSourcePrice per successful requestPer 1,000 requests
Facebook Post APIPublic page page1 credit$0.75–$1.45
Facebook Ad Library Search APIPlatform API api1 credit$0.75–$1.45
Facebook Video Transcript APICaptions captions1 credit$0.75–$1.45
Facebook Video Transcript APISpeech-to-text asr2 credits + 2 per started minute of media
up to 122 credits (60 started minutes of media)
$1.50–$2.90 + $1.50–$2.90 per started minute of media
Instagram Post APIPublic page page1 credit$0.75–$1.45
Instagram Posts APIAny source1 credit$0.75–$1.45
Instagram Profile APIPublic page page1 credit$0.75–$1.45
Instagram Reels Transcript APICaptions captions1 credit$0.75–$1.45
Instagram Reels Transcript APISpeech-to-text asr2 credits + 2 per started minute of media
up to 122 credits (60 started minutes of media)
$1.50–$2.90 + $1.50–$2.90 per started minute of media
Rumble Comments APIPlatform API api1 credit$0.75–$1.45
Rumble Video APIPublic page page1 credit$0.75–$1.45
Rumble Channel Videos APIAny source1 credit$0.75–$1.45
Rumble Channel APIPublic page page1 credit$0.75–$1.45
Rumble Search APIPublic page page1 credit$0.75–$1.45
Rumble Transcript APICaptions captions1 credit$0.75–$1.45
Rumble Transcript APISpeech-to-text asr2 credits + 2 per started minute of media
up to 122 credits (60 started minutes of media)
$1.50–$2.90 + $1.50–$2.90 per started minute of media
Threads Profile APIPlatform API api1 credit$0.75–$1.45
Threads Profile APIPublic page page1 credit$0.75–$1.45
TikTok Comments APIPlatform API api1 credit$0.75–$1.45
TikTok Post APIPublic page page1 credit$0.75–$1.45
TikTok Posts APIAny source1 credit$0.75–$1.45
TikTok Profile APIPublic page page1 credit$0.75–$1.45
TikTok Transcript APICaptions captions1 credit$0.75–$1.45
TikTok Transcript APISpeech-to-text asr2 credits + 2 per started minute of media
up to 122 credits (60 started minutes of media)
$1.50–$2.90 + $1.50–$2.90 per started minute of media
YouTube Comments APIPlatform API api1 credit$0.75–$1.45
YouTube Video APIPlatform API api1 credit$0.75–$1.45
YouTube Video APIPublic page page1 credit$0.75–$1.45
YouTube Channel Videos APIAny source1 credit$0.75–$1.45
YouTube Channel APIAny source1 credit$0.75–$1.45
YouTube Transcript APICaptions captions1 credit$0.75–$1.45
YouTube Transcript APISpeech-to-text asr2 credits + 2 per started minute of media
up to 122 credits (60 started minutes of media)
$1.50–$2.90 + $1.50–$2.90 per started minute of media

Sources

meta.sourceSourceWhat it means
captionsCaptionsThe platform's own caption track (uploaded or auto-generated).
asrSpeech-to-textTranscribed by SocialTap from the media's audio when the platform has no captions.
apiPlatform APIThe platform's public, logged-out API.
pagePublic pageData embedded in the platform's public web page.

Packs

CreditsPricePer 1,000 credits
20,000$29$1.45
80,000$99$1.24
400,000$399$1.00
2,000,000$1,499$0.75

Buy a pack in the dashboard, or with POST /v1/billing/checkout: it answers a Stripe Checkout URL to open and pay; the credits are added when the payment completes. Read your balance with GET /v1/account.

Caching

Every endpoint accepts these options:

ParameterTypeDescription
max_ageinteger
min 0
Accept a cached response up to this many seconds old. Cache hits cost 0 credits. Omit to always fetch fresh. The Cache-Control: max-age=N request header is equivalent; max_age wins when both are sent.
fieldsstringReturn only these fields of each item: comma-separated paths in the schema's notation (id,text,metrics.view_count,segments[].text; a parent path keeps the whole object). Unknown paths are rejected. Applied after the cache, so it changes neither the price nor cache hits; page and meta are always returned whole.

With max_age=N, SocialTap may answer from a stored response that is at most N seconds old. Cached responses have meta.is_cached set to true and are free.

Last updated