# How much budget does a student need for social media data for a thesis?

> A realistic thesis data budget for Weibo posts and Bilibili, Douyin or TikTok comments, with a pilot plan, a collection script and notes for the methods section.

Canonical page: https://okdata.online/answers/social-media-data-budget-for-thesis/

**Short answer: **Less than most students expect. A typical thesis corpus of 5,000 Weibo posts and 20,000 Bilibili comments costs $3.00 on okdata, because Weibo search is $0.002 for about 10 posts and Bilibili comments are $0.002 for about 20. Run a pilot on the free trial credit first, then budget for the full pull plus one re-collection.

Most theses that study public opinion online need a few thousand posts and somewhere between 10,000 and 50,000 comments. At per-page prices that is a small line in a research budget, often smaller than the transcription or survey costs next to it.

## Three common designs

| Design | Endpoints | Calls | Cost |
|---|---|---|---|
| 5,000 Weibo posts on a topic | [Weibo post search](/apis/weibo/posts/search/) | 500 | $1.00 |
| 20,000 comments under 100 Bilibili videos | [Bilibili video comments](/apis/bilibili/videos/comments/list/) | 1,000 | $2.00 |
| 10,000 Douyin comments | [Douyin video comments](/apis/douyin/videos/comments/list/) | 500 | $1.00 |
| 10,000 TikTok comments for a cross-platform chapter | [TikTok video comments](/apis/tiktok/videos/comments/list/) | 200 | $0.40 |

Plan the budget as pilot, full collection, then one re-collection in case a supervisor asks for another keyword or a later date range. Every new key comes with $0.10, enough for a small pilot on the cheaper endpoints to check that the data can answer your research question.

## A collection script that documents itself

```python
import csv, os, requests

URL = "https://api.okdata.online/v1/weibo/posts/search"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}

def collect(query, pages, path):
    cursor = None
    with open(path, "w", newline="", encoding="utf-8") as f:
        w = csv.writer(f)
        w.writerow(["id", "published_at", "text", "likes", "reposts", "comments", "fetched_at"])
        for _ in range(pages):
            params = {"query": query, "sort": "latest", **({"cursor": cursor} if cursor else {})}
            body = requests.get(URL, headers=H, params=params, timeout=60).json()
            if body["code"] != "ok":
                raise RuntimeError(f"{body['code']}: {body['message']}")
            for p in body["data"]["items"]:
                m = p["metrics"]
                w.writerow([p["id"], p["published_at"], p["text"], m["likes"], m["reposts"], m["comments"], body["meta"]["fetched_at"]])
            if not body["page"]["has_more"]:
                break
            cursor = body["page"]["next_cursor"]
```

## For the methods section

- Record the exact query, sort order, collection dates and the `fetched_at` time of each page. Platform search results change, so the date is part of the dataset.
- Say that only public posts visible at collection time were included, and that deleted or private content is absent.
- Remove or hash usernames before analysis, store raw files securely, and get ethics approval if your university requires it. Public posts still contain personal information.

## Cheaper or more official routes

If you are at an eligible university, TikTok's [Research API](https://developers.tiktok.com/products/research-api) is free after an application and project approval, and is the stronger choice for a TikTok-only thesis. Existing public datasets cost nothing and are worth checking first. Open-source crawlers are free too if you have time to keep them running. The [word-of-mouth guide](/solutions/word-of-mouth/) shows how to go from comments to themes.

## Endpoints used

- [Weibo post search](https://okdata.online/apis/weibo/posts/search/) `weibo.posts.search`: $0.002 per call · about 10 posts per page
- [Bilibili video comments](https://okdata.online/apis/bilibili/videos/comments/list/) `bilibili.videos.comments.list`: $0.002 per call · about 20 comments per page
- [Douyin video comments](https://okdata.online/apis/douyin/videos/comments/list/) `douyin.videos.comments.list`: $0.002 per call · about 20 comments 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

Updated 2026-11-12
