# TikTok Search API (tiktok.search)

- Canonical page: https://everyinfra.com/en/tiktok-api/search
- Endpoint: POST https://api.everyinfra.com/api/v1/social with {"platform": "tiktok", "action": "search", "params": {...}}
- Price: $0.000556 per call ($0.56 per 1,000 requests); failed calls and empty results are not charged
- Returns: list, default 10, max 200 per call
- Mode: sync; add "mode": "async" for slow tasks

TikTok Search finds public videos by `keyword` and returns each video's caption, the author's display name and username, like, comment, share and view counts, and the publish time. Use it to see which videos are spreading around a topic and who posted them, for trend and content research, tracking brand mentions or finding creators in a new market.

Pick the search tab with `content_type`: `video` for videos, `profile` for accounts or `top` for the overall tab. It cannot target one author, one video or one hashtag; those have their own capabilities. `author_username` is the author's @handle, which builds the profile link. This searches video content; TikTok Shop products are a separate dataset with their own search.

## Health

- Live health (24h percent, hourly and daily trends): https://api.everyinfra.com/api/v1/social/availability?platform=tiktok&action=search

## Parameters

| name | type | required | default | description |
|---|---|---|---|---|
| keyword | not declared | yes | not declared | Specifies the search query string for public video searches in the `search` action. In `shop_search`, this searches TikTok Shop products instead, which draw from a distinct dataset. |
| content_type | enum: profile / top / video | no | not declared | Filters results by tab in the `search` action. Allowed values are `video` for videos, `profile` for users, and `top` for top content. Providing this parameter in fixed author, video, or hashtag actions does not guarantee that filtering will take effect, so verify returned response objects and fields after changing tabs. |
| limit | integer (1–200) | no | 10 | The most rows to return in this call, an integer from 1 to 200. The default applies when you leave it out, and a call can return fewer rows. Larger values return 422 before any charge. |

## Response fields (items in `results`)

| field | meaning |
|---|---|
| id | The record's unique ID on the platform. Unique only within one platform; IDs can repeat across platforms. |
| url | Link to the record on the platform. |
| text | Body text with HTML removed, returned in full and never cut short (on a few platforms the list results themselves carry only an excerpt; the platform's field notes say so). |
| author_name | Author's display name. |
| author_username | Author's username (@handle), usually usable in URLs. |
| like_count | Likes. null means the platform or this capability does not disclose it; it is not 0. |
| comment_count | Comments. null means not disclosed, not 0. |
| share_count | Shares. null means not disclosed, not 0. |
| view_count | Views or plays. null means not disclosed, not 0. |
| posted_at | Publish time in ISO 8601, UTC (for example 2026-08-07T12:34:56+00:00). Non-standard strings from the platform are passed through as is, so parse defensively. null means the platform does not disclose it. |
| collect_count | Saves or favorites. null means not disclosed, not 0. |
| repost_count | Reposts (as distinct from quote posts). null means not disclosed. |
| duration_sec | platform-native meaning |
| duration_seconds | Duration in seconds. null for content that is not video or audio. |
| cover_image_url | platform-native meaning |
| language | Content language code (for example zh, en) as judged by the platform; it can be wrong. |
| country | Country or region: a full name or an ISO code depending on the platform, not normalized. |
| hashtags | Hashtags in the text, in order of appearance; absent when there are none. |
| music | platform-native meaning |
| is_ad | platform-native meaning |
| is_pinned | platform-native meaning |
| is_sponsored | platform-native meaning |
| is_slideshow | platform-native meaning |
| has_shop_product | platform-native meaning |
| author_id | Author's unique ID on the platform. |
| author_url | Link to the author's profile on the platform. |
| author_avatar_url | platform-native meaning |
| author_bio | platform-native meaning |
| author_is_verified | platform-native meaning |
| author_is_private | platform-native meaning |
| author_is_seller | platform-native meaning |
| author_follower_count | Author's follower count. null means not disclosed. |
| author_following_count | platform-native meaning |
| author_like_count | platform-native meaning |
| author_video_count | platform-native meaning |
| platform | Source platform identifier, the same as platform in the request (for example xiaohongshu, tiktok). |

## Example

```bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "tiktok",
  "action": "search",
  "params": {
    "keyword": "urban gardening"
  }
}'
```

```python
import os
import requests

response = requests.post(
    "https://api.everyinfra.com/api/v1/social",
    headers={"Authorization": f"Bearer {os.environ['EVERYINFRA_API_KEY']}"},
    json={
        "platform": "tiktok",
        "action": "search",
        "params": {
            "keyword": "urban gardening",
        },
    },
    timeout=120,
)
print(response.status_code)
print(response.json())
```

## Response example

Real response to the example request above, captured 2026-09-26T08:56:04Z. `results` and `count` are real with personal information (names, handles, avatars, profile links, contact details) removed; the list keeps the first 2 of 10. `id`, `billing` and `quota` differ on every call, so only their shape is shown.

```text
{
  "id": "req_…",
  "platform": "tiktok",
  "action": "search",
  "results": [
    {
      "id": "•••",
      "url": "https://www.tiktok.com/@•••/video/7647269061931355409",
      "text": "Get yourself vertical farms and grow your own vegetables year round! Right here in Ghana 🇬🇭💚\n#Hydroponics #UrbanFarming #FarmToTable #FarmToTable #gardening ",
      "author_name": "•••",
      "author_username": "•••",
      "like_count": 2403,
      "comment_count": 69,
      "share_count": 265,
      "view_count": 27200,
      "posted_at": "2026-06-03T20:30:34+00:00",
      "platform": "tiktok"
    },
    {
      "id": "•••",
      "url": "https://www.tiktok.com/@•••/video/7644708493252939022",
      "text": "Replying to @••• please watch to the end to literally have your jaw on the floor! Let me know if you have any questions- it’s a lot to cover in one video 💚👩🏻‍🌾  #gardentok #gardentour #urbanfarm ",
      "author_name": "•••",
      "author_username": "•••",
      "like_count": 6408,
      "comment_count": 181,
      "share_count": 145,
      "view_count": 50800,
      "posted_at": "2026-05-27T22:53:50+00:00",
      "platform": "tiktok"
    }
  ],
  "count": 10,
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}
```

## FAQ

### What do the `content_type` values do?

`video` searches videos, `profile` searches accounts and `top` matches TikTok's overall tab. The setting only picks the tab; it cannot target a specific author, video, comment thread or hashtag.

### How do I get from a result to the author's profile?

`author_username` is the author's @handle, which also builds the profile link https://www.tiktok.com/@username. To read the profile or the author's videos, pass the handle itself, with or without the @, to the TikTok Details or Videos by user capability, not the full link.

### Can I search TikTok Shop products here?

No. This capability searches public videos only. TikTok Shop product search is a separate capability that returns product data from a different dataset, so use it when you need listings and prices.

## Also

- Capability catalog (no key): https://api.everyinfra.com/api/v1/social/catalog?platform=tiktok
- OpenAPI: https://everyinfra.com/openapi.json · Agents guide: https://everyinfra.com/agents.md
