YouTube logo Instagram logo LinkedIn logo TikTok logo

The Cheapest Social Media API for Developers

YouTube, Instagram, LinkedIn and TikTok through one REST API. No platform keys, no OAuth. YouTube from $0.01/1K at Scale.

Try for Free View Documentation
YouTube from $0.01/1K LinkedIn from $0.35/1K Instagram from $0.28/1K TikTok in preview TikTok from $0.07/1K Free to start

YouTube, Instagram and LinkedIn answer today. TikTok is not live yet/api/tiktok/* does not answer, and the TikTok rates on this page are target rates, unverified until launch.

Four platforms, one API key and one billing account. Every rate is per 1,000 calls, and a call is one request — not one row in the list it returns.

Run a live social media request

One real call, no signup and no key. Pick a platform tab and read the parsed result beside the raw JSON.

The box carries four tabs. TikTok is in preview, so its tab answers the standard unavailable message rather than a profile — that is the correct behaviour for an endpoint that is not served yet, not a fault in the box.

Four Platforms, One API Key

Every rate below is per 1,000 calls, and a call is one request — not one row in the list it returns.

Instagram

Instagram

from $0.28
/1K calls (Scale tier)
  • /api/social/instagram/profile returns the public profile record
  • Followers, following, post count and verification flags
  • include_posts adds the recent grid at the same price
  • Per-post engagement available as a priced add-on
  • No Facebook developer account and no app review
Default$0.40/1K calls
Growth$0.36/1K calls
Scale$0.28/1K calls
Learn more →
LinkedIn

LinkedIn

from $0.35
/1K calls (Scale tier)
  • /api/linkedin/profile returns best-effort public basics
  • /api/linkedin/jobs returns a page of about 10 jobs
  • Company pages with employee count, industry, HQ and founding year
  • Activity, job detail and a name-to-profile lookup
  • No login, no session cookie and no account of yours
Default$0.50/1K calls
Growth$0.45/1K calls
Scale$0.35/1K calls
Learn more →
TikTok — preview

TikTok

from $0.07
/1K calls (Scale tier)
  • /api/tiktok/profile returns the creator record
  • /api/tiktok/video returns one video with its stats
  • Hashtag, keyword and music lists are priced as enriched calls
  • One enriched call returns a whole list for one charge
  • Not live yet — these are target rates until launch
Default$0.10/1K calls
Growth$0.09/1K calls
Scale$0.07/1K calls
Learn more →

The full rate card — live endpoints

Per 1,000 calls. Growth is unlocked by a single $100 deposit and Scale by $500 — both one-time, neither a subscription.
Endpoint What one call returns Default Growth Scale
YouTube search — /api/social/youtube/search One ranked list of videos, channels or playlists $0.20 $0.02 $0.01
YouTube video — /api/social/youtube/video One video record with its statistics $0.20 $0.02 $0.01
YouTube channel — /api/social/youtube/channel One channel record with its totals $0.20 $0.02 $0.01
YouTube playlist — /api/social/youtube/playlist One playlist and the items in it $0.20 $0.02 $0.01
Instagram profile — /api/social/instagram/profile One public profile record $0.40 $0.36 $0.28
Instagram profile + recent posts The same profile plus whatever the grid renders, normally about 12 — same call, same price $0.40 $0.36 $0.28
Instagram profile + post details Adds the individual post pages and the engagement rate averaged from them $4.00 $3.60 $2.80
LinkedIn profile — /api/linkedin/profile One public profile, best-effort by design $0.50 $0.45 $0.35
LinkedIn full profile — /api/linkedin/profile/full The same record on a soft deadline, handing back what it built $1.00 $0.90 $0.70
LinkedIn company — /api/linkedin/company One company page with firmographics $1.00 $0.90 $0.70
LinkedIn jobs — /api/linkedin/jobs One page of about 10 job postings $0.50 $0.45 $0.35
LinkedIn job — /api/linkedin/job One job posting in full $0.50 $0.45 $0.35
LinkedIn activity — /api/linkedin/posts Activity at the default limit=10; deeper calls scale with the limit $1.00 $0.90 $0.70
LinkedIn lookup — /api/linkedin/search A name resolved to a public profile URL $1.00 $0.90 $0.70

Read the ladder, not just the first column. The two tier discounts are not the same size. YouTube sits in the aggressive core band, where Growth is 10× off and Scale 20× off — $0.20 becomes $0.02 and then $0.01. Instagram, LinkedIn and TikTok take the standard band: 10% off at Growth and 30% off at Scale. That is the arithmetic behind every “from” price quoted on this page, and both tiers are unlocked by a single deposit — $100 for Growth, $500 for Scale — that is one-time, permanent and never downgrades. There is no monthly commitment anywhere in our pricing. Free to start on eligible endpoints, with the allowance shared across them.

TikTok rate card — target rates, not served yet

TikTok rate card

Per 1,000 calls. TikTok is in preview: these are target rates, unverified until launch, and are not served today.
TikTok call What it is Default Growth Scale
Basic — profile or single video One record, no field groups requested $0.10 $0.09 $0.07
Enriched at the default limit=30 Any include_* field group, or a hashtag, keyword or music list $3.00 $2.70 $2.10
Enriched at limit=180 The synchronous depth cap — 2.5× the advertised rate, and the cheapest per item. The two rows below are billed to less depth $7.50 $6.75 $5.25
include_following at limit=180 Billed to a depth of 50 — you are never billed for depth a list cannot return $3.60 $3.24 $2.52
include_related at limit=180 Billed to the default depth of 30, whatever limit you pass $3.00 $2.70 $2.10
Media surcharge — include_media Charged on top of the call it rides on, never instead of it +$10.00 +$9.00 +$7.00
Worked example: one video with media $0.10 base + $10.00 media. Never free-tier eligible $10.10 $9.09 $7.07

Two TikTok rules worth reading before you budget. First, depth is priced: an enriched call bills $3.00/1K × (0.7 + 0.01 × limit), so the advertised $3.00 is the price at the default limit=30 and limit=180 bills $7.50 — 2.5× the advertised rate. Deeper costs more in total and less per item: $0.100 per 1,000 items at limit=30, falling to $0.042 at limit=180. Two groups are billed to less depth than you ask for — include_following is billed to a depth of 50 and include_related to the default depth of 30, so at limit=180 they bill $3.60 and $3.00 rather than $7.50 — because you are never billed for depth a list cannot return. Second, include_media is a surcharge, not a product. It is added to the call rather than replacing it, so a basic video with media is $0.10 + $10.00 = $10.10 per 1,000 at Default, and the depth and field-group multipliers apply to the base half — an enriched video with one extra group at limit=180 plus media is $3.00 × 1.2 × 2.5 + $10.00 = $19.00 per 1,000. Media calls are never free-tier eligible.

One Key, One Header, Four Platforms

Same host, same header, same JSON envelope everywhere. Moving from YouTube to LinkedIn is a change of path and one parameter.

cURL — all four platforms
# YouTube: one search call returns a whole ranked list for one charge
curl "https://apiserpent.com/api/social/youtube/search?q=rust+async+tutorial&type=video&num=20" \
  -H "X-API-Key: YOUR_API_KEY"

# Instagram: the recent grid rides along in the SAME call at the SAME price
curl "https://apiserpent.com/api/social/instagram/profile?username=natgeo&include_posts=true" \
  -H "X-API-Key: YOUR_API_KEY"

# LinkedIn: one jobs call is one page of ~10 postings, billed once
curl "https://apiserpent.com/api/linkedin/jobs?keywords=platform+engineer&location=Berlin" \
  -H "X-API-Key: YOUR_API_KEY"

# TikTok: creator profiles, videos, hashtags, search and music lists.
curl "https://apiserpent.com/api/tiktok/profile?username=nasa" \
  -H "X-API-Key: YOUR_API_KEY"
Python — one helper, every platform
import requests

BASE = "https://apiserpent.com"
HEAD = {"X-API-Key": "YOUR_API_KEY"}

def social(path, **params):
    r = requests.get(f"{BASE}{path}", params=params, headers=HEAD, timeout=60)
    r.raise_for_status()
    return r.json()

# A creator across two platforms, in two calls and four lines.
yt = social("/api/social/youtube/channel", channelId="UCsXVk37bltHxD1rDPwtNM8Q")
ig = social("/api/social/instagram/profile", username="kurzgesagt", include_posts="true")

print(yt["subscriberCount"], ig["followersCount"], len(ig["recentPosts"]))

# A hiring signal: one page of ~10 jobs is ONE billed call, not ten.
jobs = social("/api/linkedin/jobs", keywords="machine learning", location="London")
for j in jobs["jobs"]:
    print(j["job_title"], "@", j["company_name"], "-", j["job_posted_date"])
Node.js — profiles in parallel
const BASE = "https://apiserpent.com";
const HEAD = { "X-API-Key": process.env.SERPENT_KEY };

async function get(path, params) {
  const url = new URL(path, BASE);
  Object.entries(params).forEach(([k, v]) => url.searchParams.set(k, v));
  const res = await fetch(url, { headers: HEAD });
  if (!res.ok) throw new Error(`${path} -> ${res.status}`);
  return res.json();
}

// One handle, two networks. Each call is billed once, whatever it returns.
const [ig, li] = await Promise.all([
  get("/api/social/instagram/profile", { username: "github" }),
  get("/api/linkedin/company", { company: "github" })
]);

console.log(ig.followersCount, li.employee_count, li.hq?.city);

What Each Platform Hands Back

Named JSON fields, not HTML you have to select against. Every key is always present, so an absent value arrives as null or an empty list.

YouTube

  • results[].position, .id, .type
  • results[].title, .description
  • results[].channelId, .channelTitle
  • results[].publishedAt, .thumbnail, .url
  • totalResults, nextPageToken, prevPageToken
  • viewCount, likeCount, commentCount
  • engagementRate, tags[], categoryId
  • duration, durationFormatted, durationSeconds
  • isShort
  • channelUrl, customUrl, country, keywords
  • banner

Instagram

  • username, fullName, biography
  • profilePicUrl, externalUrl
  • followersCount, followingCount, postsCount
  • isVerified, isPrivate, accountType
  • followerFollowingRatio
  • recentPosts[].shortcode, .permalink
  • recentPosts[].thumbnailUrl, .mediaType
  • engagementRate, postsSampled
  • avgLikesPerPost, avgCommentsPerPost
  • lastPostDate, daysSinceLastPost, isActive

LinkedIn

  • full_name, first_name, last_name
  • headline, occupation, summary
  • location.city / .state / .country
  • current_company.name / .title
  • experiences[], education[], skills[]
  • follower_count, connections
  • flags.open_to_work / .hiring / .verified
  • employee_count, company_size, founded_year
  • industry, specialities[], hq.city, website
  • job_id, job_url, apply_link, job_title
  • job_posted_date, seniority_level

TikTok

  • username, user_id, nickname
  • biography, bio_link, profile_url
  • avatar.thumb / .medium / .large
  • verified, private_account, is_organization
  • region, language, created_at
  • stats (followers, likes, videos)
  • video_id, video_url, description
  • author, music.title, music.duration
  • stats.play_count, digg_count, share_count
  • hashtags[], mentions[], labels[]
  • items[], result_count, total_count

What is social media API data, and why teams use it

Three of these four platforms gate their official API behind an application, an audit or a review. The fourth’s reference API shut down in 2025.

Google gives YouTube quota away, and will not sell you more

Google’s own documentation, checked 2026-09-08, sets a default allocation of 100 search.list calls a day, 100 uploads a day, and 10,000 units a day pooled across everything else. That is roughly 3,000 free searches a month, hard-capped.

The 101st search of the day is not for sale. There is no rate, no billing path and no SKU — the only route past the cap is an audit and quota extension form, a compliance audit, a periodic re-audit form afterwards, an appeals form if you fail, and a change-of-control form if the company is acquired. We sell that 101st search for $0.0002.

Meta gates any Instagram account you do not own

Meta’s own developer documentation, checked 2026-09-08, is explicit: reading an Instagram professional account you do not own requires Advanced Access, and Advanced Access requires App Review and Business Verification. Business Discovery returns nothing at all for age-gated accounts, and nothing for personal accounts.

That is a review cycle and a verified business entity before the first row of data. Our Instagram endpoint needs a Serpent key and a username, and the recent post grid rides along in the same call at the same price as the profile alone.

The reference LinkedIn API closed on 4 July 2025

Proxycurl — for years the default answer to “which LinkedIn API should I use” — shut down on 4 July 2025, announced in its founder’s own farewell post on nubela.co, following LinkedIn’s January 2025 federal lawsuit. Anyone who built on it has had to migrate.

Of the replacements, several want something from you first: one widely used Apify actor asks for your own LinkedIn session cookies and warns on its own store page that 300–400 profiles a day will flag that account. We use no cookie and no account of yours.

The billing unit decides the bill, not the headline rate

We bill per call. A YouTube search returning 50 rows is one charge. A LinkedIn jobs call returning a page of about 10 postings is one charge. An Instagram profile with its recent grid is one charge. A TikTok list call returns the whole list for one charge.

Several rivals bill per row. Apify’s official Instagram scraper counts every result as one item, so a profile plus 12 posts is 13 billable items — which is how a $2.70 per 1,000 rate becomes $35.10 per 1,000 bundles. Normalise the unit before you compare any two rates on this page.

Every Vendor’s Lowest Published Rate

Lowest against lowest, with what each plan costs to reach it. Where a rival is cheaper than us, the row says so.

YouTube

Each vendor’s lowest published rate, checked 2026-09-08 on the vendor’s own pricing page.
ProviderUnit chargedCost per 1,000What the lowest rate requiresFree tier
Google’s official YouTube API quota units Not for sale at any price No rate, no billing path, no SKU. Extra quota needs a compliance audit and a form. 100 searches/day + 10,000 units/day
Serpent (ours) per call, whole list $0.01/1K calls One $500 deposit, once. No monthly plan. Free to start
ScrapingDog YouTube per request, 5 credits $0.136/1K requests $30,000/month plan 200 credits
Apify streamers/youtube-scraper per video $2.40/1K videos Apify’s published “from” rate, and the lowest they print. Their actor FAQ quotes a higher figure for the same actor, so the page contradicts itself — we use the lower one. A cheaper Diamond rate exists but Apify publishes no price for that tier. $5 credit/month
Bright Data per record $1.30/1K records Scale plan at $499/month 5,000 records/month
SerpApi per search $1.96/1K searches $106,050/month 250/month

Instagram

Each vendor’s lowest published rate, checked 2026-09-08. “Bundle” means one profile plus its recent grid of about 12 posts.
ProviderUnit chargedCost per 1,000What the lowest rate requiresFree tier
HasData one request = profile + latest 12 posts $0.69/1K bundles $208/month, recurring. Their $0.99 rate needs $99/month. 100 lookups/month
Serpent (ours) one call = profile + its recent grid $0.28/1K bundles One $500 deposit, once. No monthly plan. Free to start
HikerAPI per request; pagination billed separately $0.60/1K requests — about $1.20/1K bundles A balance threshold they do not publish; permanent once reached. 100 free requests
Apify apidojo/instagram-scraper per post $0.47/1K posts — about $5.64/1K bundles A higher Apify plan 5 runs/month, 10 items/run
Bright Data per record — “record” is not defined on their page $1.30/1K records Scale plan at $499/month 5,000 records/month
Apify apify/instagram-scraper per item — a post, reel, comment or profile $1.50/1K items — $19.50/1K bundles Apify Business at $999/month. Its entry rate is $2.70/1K items, or $35.10/1K bundles. $5 credit

No rate in this table goes below ours. HasData’s $0.69 is the closest on a genuine like-for-like — one HasData request also returns a profile with about 12 posts — but it costs $208 every month against our one-time $500 deposit, and their $0.99 plan is $99 a month. HikerAPI’s $0.60 volume rate is a per-request price, and they do not publish the balance threshold that unlocks it, so a profile with its posts is at least two requests.

LinkedIn

Each vendor’s lowest published rate, checked 2026-09-08. Jobs are normalised per job, because every rival bills per job and we bill per page of about 10.
ProviderUnit chargedCost per 1,000What the lowest rate requiresFree tier
Serpent (ours) — jobs per job (one call is a page of about 10) $0.035/1K jobs One $500 deposit, once. $0.05/1K jobs at Default, before any deposit. Free to start
Serpent (ours) — profiles per profile $0.35/1K profiles One $500 deposit, once. No monthly plan. Free to start
Bright Data Datasets bulk file, not a live lookup about $0.50/1K records A monthly-refresh subscription delivered to S3, Snowflake or SFTP. It cannot answer “fetch this profile now”.
Coresignal — jobs per job record $0.50/1K jobs $5,000/month Elite plan Trial credits
ScrapingDog per profile request, 50 credits (100 if protected, per their profile page) $1.36/1K profiles $30,000/month plan. Entry is $10.00/1K on the $40/month LITE plan. 200 credits
Bright Data Profiles per record = one profile $1.30/1K profiles Scale plan at $499/month. Their per-job rate is the same $1.30–$1.50. 5,000 records/month
Apify harvestapi/linkedin-profile-scraper per profile, no cookies $4.00/1K profiles No subscription needed. $10.00/1K with email search. $5 credit/month
Apify apimaestro/linkedin-jobs-scraper-api per job $5.00/1K jobs No subscription needed $5 credit
Coresignal — profiles 10 credits per profile $5.00/1K profiles $5,000/month Elite plan. Entry is $196.00/1K on the $49/month Mini plan. 7-day trial

Per job, the gap is 10× to 100× — and the reason is the unit. A jobs call returns a page of about 10 postings and is billed once, where Bright Data, Apify and Coresignal each bill per job. The only genuinely cheaper LinkedIn data we can find is Bright Data’s Datasets marketplace at roughly $0.50 per 1,000, and that is a bulk file on a monthly-refresh subscription rather than a live lookup, so it answers a different question. One figure we deliberately leave out: ScrapingDog does not publish how many jobs one of their job requests returns, so their per-job rate cannot be derived, and we will not print a number they have not published. Their profile credit cost is also stated two different ways on two of their own pages — the row above uses their profile landing page.

TikTok

Each vendor’s lowest published rate, checked 2026-09-08.
ProviderUnit chargedCost per 1,000What the lowest rate requiresFree tier
EnsembleData per post, from a daily unit bucket with no roll-over about $0.047/1K posts $1,400/month, and only if you spend the full daily allowance every single day. Its entry plan works out at about $0.111/1K posts. 50 units/day
Serpent (ours) — enriched, per item per item, one list per call $0.042/1K items Default tier at limit=180. $0.100/1K items at the default limit=30. Free to start
ScrapingDog per request, 5 credits $0.136/1K requests $30,000/month plan. Entry is $1.00/1K on the $40/month LITE plan. 200 credits
Apify xmolodtsov/tiktok-search-scraper per post $0.20/1K posts Gold, on Apify’s $999/month Business plan. $0.30/1K on the free tier. A cheaper Diamond rate exists but Apify publishes no price for that tier. $5 credit
Serpent (ours) — profiles per profile $0.35/1K profiles One $500 deposit, once. $0.50/1K at Default, before any deposit. Free to start
Bright Data per record $1.30/1K records Scale plan at $499/month 5,000 records/month
Apify get-leads/all-in-one-tiktok-scraper per profile $1.50/1K profiles Gold or above, on Business at $999/month $5 credit
Apify clockworks/tiktok-scraper per post $1.70/1K posts Gold, on Apify’s $999/month Business plan. $3.70/1K entry. A cheaper Diamond rate exists but Apify publishes no price for that tier. $5 credit

The honest TikTok margin is 2× to 4.8×, not 37×. Most comparisons cite Apify’s dearest TikTok actor at $3.70 per 1,000 and claim an enormous win. Its cheapest actor is xmolodtsov at $0.30 per 1,000 posts on the free tier and $0.20 on Apify’s $999-a-month Business plan, so that is the number to beat: our $0.100 per 1,000 items at the default depth beats its free-tier rate threefold and its lowest published rate twofold, and at limit=180 our $0.042 beats that rate 4.8×. Apify’s two cheaper discount tiers, Platinum and Diamond, sit on no published plan — both are contact sales only (checked 2026-09-16). One vendor beats us — EnsembleData’s Platinum plan at about $0.047 per 1,000 posts — for $1,400 a month, and only if the full daily allowance is burned every day, because the bucket resets at 00:00 UTC and does not roll over. We have deliberately left media out of this table: Apify’s video-download add-on is cheaper than our media surcharge, but we have not confirmed that their download and our include_media deliver the same artefact, and we will not publish a comparison we cannot show is like-for-like.

What Teams Actually Pull Social Data For

Four jobs that account for most of the traffic on these endpoints, and the parameters each one needs.

Creator vetting before you pay for a campaign

An Instagram profile with include_post_details returns engagementRate, avgLikesPerPost, avgCommentsPerPost and postsSampled — the numbers a follower count hides. Pair it with the same creator’s YouTube channel record for a second, independent audience signal.

Two calls per creator. On Scale that is $2.80 and $0.01 per 1,000, so vetting a 5,000-name list costs about $14 rather than a seat licence.

Hiring and growth signals from job postings

One /api/linkedin/jobs call is a page of about 10 postings with title, company, location, posted date, seniority and employment type. Poll a keyword and location weekly and the diff is a hiring trend: which teams are growing, in which cities, at what level.

Because a page is one billed call, a 200-company watchlist is 200 calls a week, not 2,000 — about $0.07 a week at Scale. Add /api/linkedin/company for headcount and industry.

Competitive content tracking on video

A YouTube search call returns a whole ranked list for one charge, so tracking twenty competitor keywords daily is twenty calls, not twenty times the number of rows. Video records add view, like and comment counts plus engagementRate and an isShort flag.

Store publishedAt and the counts on each run and you have a velocity series — which formats are gaining, and how fast — without a platform quota to manage.

Lead enrichment inside your own CRM

A name or a company domain becomes a structured record: /api/linkedin/search resolves a name to a public profile, /api/linkedin/profile returns the best-effort basics, and /api/linkedin/company adds employee_count, industry, founding year and HQ.

Every field is typed and always present, so an absent value is null rather than a missing key — your enrichment job never throws on a sparse profile, it just writes fewer columns.

Social Media API Questions

Four. YouTube gives you search, video details, channel details and playlist contents. Instagram gives you a public profile, optionally with the recent post grid and per-post engagement. LinkedIn gives you public profiles, company pages, job search, job detail, activity posts and a name-to-profile lookup. TikTok gives you creator profiles, video records, hashtag, search and music lists. All four answer today, on one API key and one billing account.
No. There is no Google Cloud project to create, no YouTube Data API quota to apply for, no Instagram Graph API and no OAuth flow to implement. You send one Serpent API key in an X-API-Key header and that is the whole authentication story across all four platforms. You also never supply a login, a session cookie or an account of your own on any of them.
Rates are per 1,000 calls and the tier ladder differs by platform. YouTube search, video, channel and playlist are $0.20 at Default, $0.02 at Growth and $0.01 at Scale — the aggressive 10×/20× core discount. Instagram, LinkedIn and TikTok take the standard band, 10% off at Growth and 30% off at Scale: an Instagram profile is $0.40 / $0.36 / $0.28, a LinkedIn profile $0.50 / $0.45 / $0.35, a LinkedIn company page $1.00 / $0.90 / $0.70. Growth is unlocked by a single $100 deposit and Scale by $500; both are one-time, neither is a subscription, and a tier once earned never downgrades. Free to start on eligible endpoints.
Search returns ranked rows with position, id, title, description, channelId, channelTitle, publishedAt, thumbnail and url, plus totalResults and page tokens, and takes filters for type, duration, order, country and safe search. A video record adds viewCount, likeCount, commentCount, engagementRate, tags[], categoryId, an ISO 8601 duration with formatted and seconds variants, and an isShort flag. A channel record carries subscriber, video and view totals, description, customUrl, country, keywords, thumbnail and banner. A playlist call lists its items.
The base profile call returns username, fullName, biography, profilePicUrl, followersCount, followingCount, postsCount, isVerified, isPrivate, accountType and externalUrl. Adding include_posts returns the recent post grid — whatever the logged-out profile page renders, normally about 12 — in the same call, at the same price as the profile alone, with no cap of our own. Engagement rate is not in the base call: engagementRate, avgLikesPerPost, avgCommentsPerPost and postsSampled require include_post_details, which opens the individual post pages and is priced separately at $4.00 / $3.60 / $2.80 per 1,000.
Public profile data is best-effort by design: you get the publicly visible basics — full name, headline, occupation, location, current company, follower and connection counts, open-to-work and hiring flags — and how much experience and education is visible varies by profile. Company pages return industry, company type, employee_count as a number, the published size band, founded year, specialities, HQ and locations, website and logo. One jobs call returns a page of about 10 jobs with job_id, apply_link, title, company, location, posted date, description, seniority and employment type — so a jobs feed is one billed call, not ten. No LinkedIn login, cookie or account of yours is used.
Yes. /api/tiktok/* is live and answers on the same key as the other three platforms, and the TikTok tab in the try-it box runs a real call. A basic profile or video call is $0.10 / $0.09 / $0.07 per 1,000. An enriched call — any include_* field group, or a hashtag, keyword or music list — is $3.00 per 1,000 at the default limit=30 and scales with depth by $3.00 × (0.7 + 0.01 × limit), so limit=180 bills $7.50, which is 2.5× the advertised rate. Per item that is $0.100 per 1,000 at limit=30, falling to $0.042 at limit=180. Two groups are billed to less depth than you ask for: include_following is billed to a depth of 50 and include_related to the default depth of 30, so at limit=180 they bill $3.60 and $3.00 rather than $7.50 — you are never billed for depth a list cannot return. include_media is a surcharge charged on top of the call, not instead of it: a basic video call with media is $0.10 + $10.00 = $10.10 per 1,000 at Default, $9.09 at Growth and $7.07 at Scale, and it is never free-tier eligible.
There is no monthly commitment anywhere in our pricing. Growth and Scale are earned by a single deposit of $100 and $500; both are one-time and permanent, and a tier once earned never downgrades. You are billed per call, so a YouTube search returning 50 rows and a LinkedIn jobs call returning a page of about 10 jobs are each one charge. New accounts get Free to start, shared across every free-eligible endpoint; TikTok media calls are excluded from the free pool. A call that genuinely returns nothing is an answer and is charged; a failure on our side is refunded.
On some rows, yes, and the tables above show it. Google’s own YouTube API is free, but capped at 100 search calls a day, and the 101st cannot be bought at any price — there is no rate and no billing path, only an audit and a quota extension form. On a bare Instagram profile, HasData’s $0.69 per 1,000 sits above our Scale $0.28, on a $208-per-month plan against our one-time $500 deposit; their $0.99 plan is $99 a month, and also sits above our Default $0.40. Bright Data’s Datasets marketplace reaches roughly $0.50 per 1,000 LinkedIn records, but it is a bulk file on a monthly-refresh subscription delivered to S3 or Snowflake, not a live lookup. On TikTok, EnsembleData’s Platinum plan reaches about $0.047 per 1,000 posts, beating our default-depth per-item rate about twofold, for $1,400 a month and only if the full daily allowance is spent every day.

Start pulling social media data

Free to start on eligible endpoints, with the allowance shared across them. No card, no subscription, no monthly plan. YouTube data from $0.01/1K calls.

Try for Free

Related guides

More on pulling data from each of the four platforms.

YouTube APISearch, video, channel and playlist data with no daily cap. Instagram APIPublic profiles and the recent grid, in one billed call. LinkedIn APIProfiles, company firmographics and a page of jobs per call. TikTok APICreators, videos, hashtags, search and music lists. Instagram Graph API vs Public DataWhat app review actually gates, and what it does not. Instagram Data for FreeThe 2026 routes to profile data without a paid plan. Proxycurl AlternativesWhere to migrate after the 4 July 2025 shutdown. Competitor Channel TrackingTurning channel records into a weekly velocity series.