# Why are some fields empty in my social data API results, and do I still pay?

> Why views, shares or likes come back null for Weibo, TikTok or WeChat articles, how meta.unavailable explains each one, and why such a call is still billed.

Canonical page: https://okdata.online/answers/null-fields-still-charged/

**Short answer: **A field is empty when the platform does not show that number publicly, or when the data source cannot fetch it yet; on okdata every response names those fields and says which of the two reasons applies. The call itself succeeded, so it is billed normally, for example $0.002 for a Weibo search page. Make one test call and read that list before you build a report around a metric.

A report template has a column for shares, and half the rows are empty. Before blaming the data, check why. Users of scraper tools [report missing data](https://apify.com/clockworks/tiktok-scraper/issues/missing-data-qWJHpPSmyhqof1zKz) all the time, and the cause is usually one of two things, both of which okdata states in every response.

## The two reasons

`meta.unavailable` maps each null field to a reason:

- **`platform`**: the platform does not show this number publicly, to anyone. No API can return it. Weibo does not show shares or saves the way Douyin does, and TikTok posts have no title.
- **`capability`**: the platform shows it somewhere, but the data source behind this endpoint cannot fetch it yet. This can change. Read counts on WeChat articles are an example to check for.

Every platform's posts, accounts and comments share the same field names, so a missing number is null, never a missing key that breaks your parser.

```bash
curl -s -G "https://api.okdata.online/v1/weibo/posts/search" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'query=新品发布' | jq '.meta.unavailable'
# e.g. {"metrics.shares": "platform", "metrics.favorites": "platform", "title": "platform"}
```

## Is it billed?

Yes. The call completed and returned the data the platform makes available. Prices are per call, not per field:

| Endpoint | Price |
|---|---|
| [Weibo post search](/apis/weibo/posts/search/) | $0.002 a page |
| [TikTok video detail](/apis/tiktok/videos/get/) | $0.002 a video |
| [Official Account article detail](/apis/wechat_mp/articles/get/) | $0.02 an article |

Errors are different. A post that does not exist is `not_found` and free; a failed source is `upstream_failed` and free.

## Avoid paying for numbers you will not get

1. Before a big job, make one call and read `meta.unavailable`. If the metric your report depends on is listed, change the report or the platform, not the volume.
2. Read the endpoint page: it lists the fields each endpoint returns.
3. Agents connected over [MCP](/mcp/) can call `describe` for free to see the fields before calling.
4. Use `fields=` to drop columns you do not need. It saves tokens when a model reads the output, though not money.

## When another source is the answer

If a number is `platform`, only the account owner sees it, in the platform's own dashboard. For your own accounts, that is the place to look. For other accounts, pick metrics every platform shows publicly, such as likes and comment counts, and compare those. See [content research](/solutions/content-research/) for a cross-platform comparison built that way.

## Endpoints used

- [Weibo post search](https://okdata.online/apis/weibo/posts/search/) `weibo.posts.search`: $0.002 per call · about 10 posts per page
- [TikTok video detail](https://okdata.online/apis/tiktok/videos/get/) `tiktok.videos.get`: $0.002 per call
- [Official Account article detail](https://okdata.online/apis/wechat_mp/articles/get/) `wechat_mp.articles.get`: $0.02 per call

Updated 2026-11-12
