# Social media scraping API

Build a scraper, rent one on a marketplace, or call one API for public Instagram, TikTok, and X data. What each costs, and when each fits.

Checked September 2026. Public pricing pages. No affiliate links.

Most people who search for a social media scraping API do not want a scraper. They want public profiles, posts, comments, and numbers, in a shape their code can use, without babysitting it. This page walks through the three ways to get there and what each one costs you.

Openhandle is the third option. We read public data when you ask for it and answer in one schema across Instagram, TikTok, and X. Nothing is crawled on its own, and nothing private is touched.

## At a glance

| Criteria | Build a scraper | Rent a scraper | Openhandle |
|---|---|---|---|
| Time to first call | Days to weeks. Proxies, parsers, and blocks come first | Minutes, once you pick a listing | Seconds. No approval wait |
| Who maintains scrapers | You, every time the platform changes | The listing author, on their own schedule | Openhandle handles platform changes |
| Response shape | Whatever you parse out of the page | Different per listing and per platform | One schema across Instagram, TikTok, X, and Reddit |
| Pricing model | Proxies, compute, and engineer time | Monthly tiers with hard caps and overage fees | Pay per request from a balance. No credits, no subscription |
| Failed requests | Your retries and your on-call | Often billed anyway | Failed requests are free. You pay only when Openhandle returns an answer |
| Support | You are the support | A ticket queue or a Discord, if any | Direct support from our team through Crisp and email |
| Uptime | You find out from your users | No SLA unless the listing says so | 99.9% uptime |

Openhandle reads public data on request and returns it in one schema. It is not a scraper you run. Read the public data notice for what we never do.

## What people actually need

Strip the word "scraper" away and the job list is short. Almost every social data product needs the same handful of reads.

- **Profiles.** Follower counts, bio, verification, and links, for a creator or a brand account.
- **Posts.** Captions, media, timestamps, and engagement for a feed, a hashtag, or a single URL.
- **Comments.** Comment threads and replies, with authors, for listening and moderation.
- **Search.** Find accounts, posts, and hashtags by keyword before you read them.
- **Numbers you can trust.** Likes, views, shares, and saves. And a clear signal when a number is hidden, not a zero.

## Three ways to get it

1. **Build a scraper.** You write parsers against the private web and app interfaces of each platform. You buy proxies. You handle logins, blocks, and captchas. It works on day one, and then the platform ships a change. Every fix is your fix, and the engineer who wrote it is now on call for it.
2. **Rent a scraper on a marketplace.** You pick a listing on RapidAPI or a marketplace like Apify. It is fast to start and cheap for a prototype. In production you inherit the listing author's uptime, their update pace, and their billing tiers. Many listings share one backend, so several "alternatives" break together. We cover this on the [RapidAPI vs direct providers](/compare/rapidapi-vs-direct-providers) page.
3. **Call one API.** You call one endpoint per read and get one response shape back, on every platform. Openhandle has 86 endpoints across Instagram, TikTok, and X today. Platform changes are absorbed on our side. You pay per answered request, after use, with a hard cap you set.

## What breaks with a scraper

The failures are the same whether you built the scraper or rented it. They show up in the data, not in an error log.

- **Silent zeros.** A metric the platform hid comes back as 0. Every average you compute from it is quietly wrong.
- **Empty 200s.** A private or deleted account returns a success with blank fields. You cannot tell it apart from a real profile.
- **Expiring media links.** Image and video URLs die within days. You must copy every file or lose it.
- **A new shape per platform.** Instagram, TikTok, and X each come back different. Your code carries three parsers and three sets of edge cases.
- **Blocks at the worst time.** Proxies get flagged during a campaign, a launch, or a payout run. That is when your users are watching.

## What Openhandle does instead

- **Reads on request only.** A customer asks for a profile or a post. We read it and answer. We do not crawl platforms on our own.
- **One schema.** One schema across Instagram, TikTok, X, and Reddit. A profile is a profile and a post is a post, on every platform.
- **Null means hidden.** If a platform hides a number, you get null. We never fill in a zero or a guess.
- **Media that stays up.** Requested media is served from our CDN. Your link keeps working after the platform link expires.
- **Failed requests are free.** Failed requests are free. You pay only when Openhandle returns an answer.
- **Pay afterwards.** $0.0025 per request, down to $0.002 at volume. 30-day cache hits are free. Balance never expires. Unused balance is refundable.
- **Hard caps.** Set a spend cap per key and per month. A cap is a stop, not an auto top-up.

## What we never do

Openhandle is read-only and public-only. We never like, follow, post, or message. We do not read private accounts, direct messages, or anything a logged-out visitor cannot see. Account owners can ask us to block their profile. The [public data notice](/legal/public-data-notice) lists every limit.

## Start in a minute

Sign up, create a key, and make your first call. You get 100 free live requests and no card is needed. The [quickstart](/docs/quickstart) has a working request in cURL, TypeScript, Go, and Python. Per-platform detail is on the [Instagram](/apis/instagram), [TikTok](/apis/tiktok), and [X](/apis/twitter) pages, and every rate is on the [pricing page](/pricing).

## How we checked

Costs and failure modes for self-built and marketplace scrapers come from public listing pages, public pricing tiers, and what customers told us when they moved. Openhandle figures come from our own pricing page and endpoint catalog and update with them.
