# How do I choose between social media data API vendors?

> A fair way to compare social data vendors for Xiaohongshu, TikTok or WeChat: eight criteria, a one-afternoon bake-off on your own jobs, and cost per usable item.

Canonical page: https://okdata.online/answers/choose-social-media-data-api-vendor/

**Short answer: **Run the same two or three real jobs on each shortlisted vendor and compare cost per 1,000 usable items, field completeness, failure handling and how much code you had to write. Price lists alone mislead. On okdata, for reference, 1,000 Xiaohongshu notes cost $1.00 and 1,000 TikTok comments $0.04, failed calls are free and every response states its charge, which makes the scoring easy to check.

Choosing a vendor usually starts the way a youtube-transcript-api user put it: [this provider, that provider, or something else?](https://github.com/jdepoix/youtube-transcript-api/issues/593) A ranking will not settle it. A test on your own work will.

## Eight criteria worth scoring

1. **Coverage.** Write down the jobs, not the platforms: "comments on 50 Xiaohongshu notes a week" tells you which endpoints you need.
2. **Cost per 1,000 usable items.** Normalise per-call, per-result and credit pricing to one number, then discount duplicates and empty fields. See [how to compare data API pricing units](/answers/compare-data-api-pricing-units/).
3. **Billing rules.** Are failed calls, timeouts and empty results billed? Are retries safe? Do credits expire? Is there a minimum?
4. **Data quality.** Are metrics present, are nulls explained, is there a timestamp on each read?
5. **Reliability.** Is there a status page? What happens on a platform change, and are you charged during it?
6. **Integration.** One schema across platforms, clear errors, and an MCP server if agents will use it.
7. **Compliance.** Public data only? Any logged-in sessions involved? What does the vendor keep?
8. **Payment and support.** Can you pay the way your finance team can, and does anyone answer email?

## The one-afternoon bake-off

Pick two or three jobs you will really run, and run each on every vendor with the same inputs. Record cost, items, usable items, failures and time. For okdata the record is in the responses:

```python
import os, requests
from decimal import Decimal

H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
spent, items, nulls = Decimal("0"), 0, set()
for kw in ["防晒霜 推荐", "露营 装备", "咖啡机"]:
    body = requests.get("https://api.okdata.online/v1/xiaohongshu/notes/search", headers=H,
                        params={"query": kw}, timeout=60).json()
    if body["code"] != "ok":
        print(kw, body["code"], "charged:", body["charged"]); continue
    spent += Decimal(body["meta"]["billing"]["amount"])
    items += len(body["data"]["items"])
    nulls |= set(body["meta"]["unavailable"])
print(f"{items} notes for {spent} USD; null fields: {sorted(nulls)}")
```

## okdata against the same list, honestly

- **Coverage:** 51 endpoints on 10 platforms, including [Xiaohongshu note search](/apis/xiaohongshu/notes/search/), [TikTok video comments](/apis/tiktok/videos/comments/list/) and [Official Account article history](/apis/wechat_mp/accounts/articles/list/) ($0.04 a page). No Kuaishou, Zhihu or Instagram.
- **Billing:** per call from $0.001, failed calls free, 24-hour idempotent replays, balance that does not expire.
- **Status:** every endpoint is marked beta, and there is no written SLA yet.
- **Data:** public only; null fields listed in `meta.unavailable`; read time in `meta.fetched_at`.

If a vendor wins on a platform you depend on most, use it there; nothing stops you from mixing. Prices for every endpoint here are on the [pricing page](/pricing/).

## Endpoints used

- [Xiaohongshu note search](https://okdata.online/apis/xiaohongshu/notes/search/) `xiaohongshu.notes.search`: $0.02 per call · about 20 notes per page
- [TikTok video comments](https://okdata.online/apis/tiktok/videos/comments/list/) `tiktok.videos.comments.list`: $0.002 per call · about 50 comments per page
- [Official Account article history](https://okdata.online/apis/wechat_mp/accounts/articles/list/) `wechat_mp.accounts.articles.list`: $0.04 per call · about 10 articles per page

Updated 2026-11-12
