# Openhandle

Fetch anything you want from Instagram, TikTok, and X. Openhandle returns public profiles, posts, comments, and metrics through one API. Responses use one format and usually arrive within one second. Pay only for completed requests. No credits or subscriptions.

- 100 free requests. No card needed.
- <1s typical live response (from request to response)
- <100ms cached response (served straight from our cache)
- 120+ endpoints (across Instagram, TikTok, and X)
- 100 free requests (no card needed)
- OpenAPI spec: https://api.openhandle.dev/openapi.json
- MCP server (Streamable HTTP): https://api.openhandle.dev/mcp
- Docs: https://openhandle.dev/docs (append .md to any page for markdown)
- Pricing: https://openhandle.dev/pricing.md

## One real answer

`GET /v1/tiktok/posts/7301442198832705` answered in 812ms, charged $0.003:

```json
{
  "platform": "tiktok",
  "resource": "post",
  "capturedAt": "2026-08-24T09:12:44Z",
  "source": "live",
  "data": {
    "id": "7301442198832705",
    "author": { "handle": "tiktok", "isVerified": true, … },
    "media": [{ "type": "video", "url": "https://media.openhandle.dev/m_8f3k2…" }],
    "metrics": {
      "views": 1204411,
      "likes": 88213,
      "comments": 1522,
      "shares": 40312,
      "saves": 9917,
      "reach": null
    }
    …more data
  }
}
```

- **Pick cached or live.** Every response shows when we captured the data. Pick live, 24-hour, 7-day, or free 30-day data.
- **Media links that never expire.** Platform media links expire after a few days. We serve requested media from our CDN, so your links never expire.
- **More complete metrics.** We combine several sources in one request. This can add useful metrics such as shares and saves.
- **We only return public data.** If a platform hides a number, we leave it blank. We don’t make one up.
- **Know your cost before you call.** Every endpoint costs the same. Failed requests are free. You pay for completed answers after use.

## Platforms change. Your integration doesn't.

- **More than one way in.** If something fails, we switch paths and keep going. You only see the answer.
- **We handle platform changes.** Instagram, TikTok, and X change often. We update Openhandle so your integration keeps working.
- **We don’t charge for failures.** If we cannot complete a request, you get a clear error and pay nothing.

## You always know what you’ll pay.

- **One price per call.** Every endpoint costs the same. One call is one request. No credit multipliers or surprise weights. A 30-day cache hit is free.
- **Pay afterwards.** Pay after use. Every charge includes an invoice. No subscription, no prepaid credits, nothing expires.
- **Failed means free.** Provider errors, internal errors, and invalid requests are never billed. You pay for answers, and a confirmed not-found is an answer.
- **Hard spend caps.** Set a request cap per API key and a monthly spend cap per workspace. We stop before crossing either.

## What people build with it.

- **Creator payouts.** Pay creators per view on numbers you can defend. (https://openhandle.dev/use-cases/creator-payouts)
- **Influencer vetting.** Sign creators on the platform’s numbers, not their media kit. (https://openhandle.dev/use-cases/influencer-vetting)
- **UGC galleries.** Collect what people post about your brand, and put it on your site. (https://openhandle.dev/use-cases/ugc)
- **Creator analytics.** Growth dashboards on data that stays consistent. (https://openhandle.dev/use-cases/creator-analytics)
- **Social listening.** Every public conversation, in one shape, ready for analysis. (https://openhandle.dev/use-cases/social-listening)
- **Brand monitoring.** Watch your accounts, your competitors, and the comments under both. (https://openhandle.dev/use-cases/brand-monitoring)

## Why teams switch.

Build the scrapers yourself, or rent them from a marketplace. Here is what each choice really costs.

| Trade-off | Build it yourself | Scraper marketplaces | Openhandle |
| --- | --- | --- | --- |
| Platform updates | You stop everything and patch | Waiting on the author | Absorbed by failovers on our side |
| Uptime | You find out from your users | Errors returned as 2xx, counted as uptime | Honest error codes, failovers underneath |
| Response shape | Whatever you parse | Different per actor or platform | One schema for all platforms |
| Data depth | Empty fields | Empty fields | Enriched: shares, saves, and more |
| Media links | Store them yourself | URLs that expire in days | Permanent links, served from our CDN |
| Billing | Compute, proxies, engineer time | Monthly plans per provider, quotas you never hit | Pay afterwards for answered requests |
| Failed requests | Your retry and on-call cost | Often billed anyway | Never billed |
| Spend control | Never gets built, the scrapers come first | Auto top-ups or a dead key | Hard caps per key and per month |
| Support | You are the support | Ticket queues, if any | Direct support from our team |

Names and numbers live on the compare pages. See https://openhandle.dev/compare.

## Agent setup prompts

### Set up everything

```text
Integrate Openhandle into my app. Read https://openhandle.dev/SKILL.md and follow it.

Inspect my app and existing social data providers. Help me replace a provider for a selected feature or connect a requested new feature. If the intended feature is unclear, configure the reusable server client and ask which feature to connect before changing product behavior.

Choose the SDK or REST client for the server runtime. Use a Test key from the application's secret configuration. Never ask me to paste a key into chat. Verify through the actual application path, without adding a standalone demo or test endpoint. Report implementation and real Test verification separately.

Also connect the Openhandle MCP server for my agent, following the skill's instructions for my client. Use interactive sign-in with Test where supported. Verify MCP access separately from the application integration.
```

### Install the MCP server

```text
Add the Openhandle MCP server to this environment. Read https://openhandle.dev/SKILL.md and follow its MCP instructions.

Transport: Streamable HTTP
URL: https://api.openhandle.dev/mcp

Use interactive sign-in with Test where supported. For headless use, read OPENHANDLE_TEST_KEY from the existing secret configuration. Never ask me to paste a key into chat.

After connecting, read openhandle://test/quickstart, call find_test_data, and verify an endpoint tool with its returned input. Report the Test environment and actual charge. This request configures agent access only.
```

### Implement in my app

```text
Integrate Openhandle into my app. Read https://openhandle.dev/SKILL.md and follow it.

Inspect my app and existing social data providers. Help me replace a provider for a selected feature or connect a requested new feature. If the intended feature is unclear, configure the reusable server client and ask which feature to connect before changing product behavior.

Choose the SDK or REST client for the server runtime. Use a Test key from the application's secret configuration. Never ask me to paste a key into chat. Verify through the actual application path, without adding a standalone demo or test endpoint. Report implementation and real Test verification separately.
```

## FAQ

### What is Openhandle?

An API for public social media data. Profiles, posts, comments, and metrics from Instagram, TikTok, and X, returned in one unified schema with one error model. You integrate once and every platform answers the same way.

### Which platforms are covered?

Instagram, TikTok, and X are live with deep endpoint coverage. More platforms are added based on what customers request.

### Why does Openhandle have fields other providers miss?

Answers are enriched from multiple sources in a single request, so fields like share counts come back filled where others return nothing. It is still one request at one price.

### Can my AI agent use it?

Yes. There is an MCP server at api.openhandle.dev/mcp, an OpenAPI spec at api.openhandle.dev/openapi.json, and every docs page is available as markdown by appending .md to the URL. See the full MCP setup: https://openhandle.dev/docs/test-environment/mcp

### What does it cost?

You pay afterwards for what you used. Every endpoint costs the same, one call is one request, and rates drop with volume. Failed requests are free; a confirmed not-found is a completed lookup and is billed. Every rate is published on the pricing page, and you start with 100 free requests without a card.

### Do I get proper invoices?

Yes. Pay after use. Every charge includes an invoice. Card payment, no wallet top-ups.
