searchCross-domain search
https://api.qovia.ai/v1/searchOne search across 10 kinds of public sources in China (Weibo, Douyin, Toutiao, Xiaohongshu, Kuaishou and other short-video apps, WeChat official accounts, news sites and newspapers, forums and Tieba, Bilibili and other long-video sites, news apps), filtered by date, platform, content type and sentiment. Returns the results in one format, with the total hit count and the count per platform. Dates are whole days in Beijing time: the last 7 days by default, at most 90. 10 or 20 results per page, up to page 50. A search usually takes a few seconds. No results answers empty and is not charged.
Typical uses: Feeding your analytics, monitoring or AI-agent workflows.
- Price
- $0.005 / call$5 per 1k
- Billing
- Charged only for successful, non-empty resultsthe charge is in meta.charged_usd
- Scope
searchThe API key needs this scope- Rate limit
- NoneNo per-account or per-endpoint request limit
Parameters
Only these parameters are accepted; any other one returns 400.
queryWhat to search for. Separate terms with spaces to require all of them, as in 人工智能 教育; put words to leave out in exclude_words
Max 200 charsPattern\SExample
人工智能platformsOnly these platforms, all by default: weibo, douyin, toutiao, xiaohongshu, short_video (Kuaishou and other short-video apps), wechat (official accounts), news (news sites and newspapers), forum (forums, Tieba and Q&A sites), long_video (Bilibili and other long-video sites), app (news apps)
Defaultweibo, douyin, toutiao, xiaohongshu, short_video, wechat, news, forum, long_video, appOne ofweibo · douyin · toutiao · xiaohongshu · short_video · wechat · news · forum · long_video · appsinceFirst day, YYYY-MM-DD (Beijing time, included); defaults to 6 days before until
Pattern^[0-9]{4}-[0-9]{2}-[0-9]{2}$untilLast day, YYYY-MM-DD (Beijing time, included); defaults to today and cannot be later. since to until spans at most 90 days
Pattern^[0-9]{4}-[0-9]{2}-[0-9]{2}$typesContent types, all by default: original, repost, comment
Defaultoriginal, repost, commentOne oforiginal · repost · commentsentimentSentiment, all by default: negative, neutral, positive
Defaultnegative, neutral, positiveOne ofnegative · neutral · positivematchWhere the search terms must match, title, content and author by default: title, content, author (author name), media_text (images and video frames), audio
Defaulttitle, content, authorOne oftitle · content · author · media_text · audioexclude_wordsFilter words; results that contain them are left out
Max 100 charsauthorOnly content published by this author (account name)
Max 50 charspagePage number, from 1, at most 50
Default1Range1–50limitResults per page: 10 or 20
Default20One of10 · 20
Response
A success is HTTP 200 with the shared envelope: request_id, data (this endpoint's data, see the example) and meta (the charge). An empty result is also 200, with meta.empty true, not charged, and data may be an empty structure or null.
Errors
| code | HTTP | Billing | Description |
|---|---|---|---|
scope_denied | 403 | Not charged | This API key lacks the scope the endpoint requires. |
endpoint_unavailable | 503 | Not charged | The endpoint is not available right now (no data source connected yet, or no price configured); nothing ran. |
invalid_params | 400 | Not charged | The parameters failed validation: a required one is missing, a type or format is wrong, an array has more items than allowed, an unknown one was sent, or the POST body is not a JSON object. An error in one parameter starts with its name (item_id: …); a missing or unknown parameter starts with params: …. |
insufficient_balance | 402 | Not charged | The balance cannot pay for this call; top up first. |
upstream_busyRetryable | 503 | Refunded | The data source is busy or cooling down; refunded. Retry after Retry-After. |
upstream_timeout | 504 | Refunded | The data source timed out; refunded. |
upstream_error | 502 / 503 | Refunded | The data source failed; refunded. |
upstream_rejected | 400 | Refunded | The data source rejected these parameters (well-formed, but not accepted); refunded. |
not_found | 404 | Refunded | The data source has no such item (deleted, or the ID does not exist); refunded. |
reservation_expired | 504 | Refunded | The call took too long and was refunded automatically; no data is returned. |
Any request can also fail authentication: 401 invalid_api_key, 403 account_disabled, 429 too_many_auth_failures.
Needs an account with a balance; playground calls are billed like API calls.