---
title: "生成 XGnarly /Generate XGnarly"
method: POST
path: "/api/v1/tiktok/web/generate_xgnarly"
tags: ["TikTok-Web-API"]
---

# 生成 XGnarly /Generate XGnarly

`POST /api/v1/tiktok/web/generate_xgnarly`

## Request

- Base URL: `https://api.tikhub.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tikhub.io/api/v1/tiktok/web/generate_xgnarly`
- Auth: HTTP bearer

# [中文]
### 用途:
- 生成 XGnarly 加密，用于 TikTok Web API 请求
- 此接口使用最新版本（V5.2.0，截至2026年3月）的签名服务，不可自定义 User-Agent，会自动生成一个常见浏览器的 User-Agent
- 此接口为完美还原算法，无视除验证码外的一切风控
### 参数:
- url (str): 不携带签名（X-Bogus 或 X-Gnarly）并且包含域名的请求URL，不需要进行URL编码
- body (str): 请求的API参数，适用于POST请求，如果是GET请求则不需要提供
### 返回:
- X-Gnarly 加密字符串 + 随机浏览器的 User-Agent

# [English]
### Purpose:
- Generate XGnarly encryption, used for TikTok Web API requests
- This interface uses the latest version (V5.2.0, as of March 2026) signing service, User-Agent cannot be customized, a common browser User-Agent will be automatically generated
- This interface perfectly restores the algorithm, ignores all risk controls except for verification codes
### Parameters:
- url (str): The requested API URL without signature (X-Bogus or X-Gnarly) and including the domain name, no need to URL encode
- body (str): The API parameters of the request, applicable for POST requests, not required for GET requests
### Return:
- X-Gnarly encryption string + User-Agent of a random browser

# [示例/Example]

```json
{
    "url": "https://www.tiktok.com/api/search/user/full/?WebIdLastTime=1756087650&aid=1988&app_language=zh-Hans&app_name=tiktok_web&browser_language=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=MacIntel&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F139.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&cursor=10&data_collection_enabled=false&device_id=7542339104672111234&device_platform=web_pc&focus_state=true&from_page=search&history_len=3&is_fullscreen=true&is_page_visible=true&keyword=musk&odinId=7542338997269211234&os=mac&priority_region&referer&region=US&screen_height=967&screen_width=1496&search_id&tz_name=America%2FLos_Angeles&user_is_login=false&web_search_code=%7B%22tiktok%22%3A%7B%22client_params_x%22%3A%7B%22search_engine%22%3A%7B%22ies_mt_user_live_video_card_use_libra%22%3A1%2C%22mt_search_general_user_live_card%22%3A1%7D%7D%2C%22search_server%22%3A%7B%7D%7D%7D&webcast_language=zh-Hans",
    "body": ""
}

## Request body

- XGnarlyAndXBogusModel
  - `url` string, required: 包含域名和参数的请求的API URL，不需要进行URL编码 | The requested API URL, no need to URL encode
  - `body` string, nullable: 请求的API参数，适用于POST请求 | The API parameters of the request, applicable for POST requests

## Response `200`

Successful Response

- ResponseModel
  - `code` integer: HTTP status code | HTTP状态码
  - `request_id` string, nullable: Unique request identifier | 唯一请求标识符
  - `message` string: Response message (EN-US) | 响应消息 (English)
  - `message_zh` string: Response message (ZH-CN) | 响应消息 (中文)
  - `support` string: Support message | 支持消息
  - `time` string: The time the response was generated | 生成响应的时间
  - `time_stamp` integer: The timestamp the response was generated | 生成响应的时间戳
  - `time_zone` string: The timezone of the response time | 响应时间的时区
  - `docs` string, nullable: Link to the API Swagger documentation for this endpoint | 此端点的 API Swagger 文档链接
  - `cache_message` string, nullable: Cache message (EN-US) | 缓存消息 (English)
  - `cache_message_zh` string, nullable: Cache message (ZH-CN) | 缓存消息 (中文)
  - `cache_url` string, nullable: The URL to access the cached result | 访问缓存结果的 URL
  - `router` string: The endpoint that generated this response | 生成此响应的端点
  - `params` unknown
  - `data` unknown

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-08** `96a122a5f220`: 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status
- **2026-09-01** `50f9ec6e1cd3`: 2 info
  - the `cache_message` response's property default value changed from `This request will be cached. You can access the cached result directly using the URL below, valid for 24 hours. Accessing the cache will not incur additional charges.` to `This response is cached and accessible via the URL below for 24 hours at no extra cost. The cache is for request tracing only — it doesn't affect the API's data freshness and won't be returned through the API again.` for the status `200`
  - the `cache_message_zh` response's property default value changed from `本次请求将被缓存，你可以使用下面的 URL 直接访问缓存结果，有效期为 24 小时，访问缓存不会产生额外费用。` to `本次响应已缓存，可通过下方 URL 直接查看，有效期 24 小时，访问缓存链接无额外费用。缓存仅用于请求溯源，不影响接口数据的时效性，也不会再次通过接口返回。` for the status `200`
- **2026-04-14** `ee5b7c9c88f5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/tikhub/apis/tikhub-douyin-tiktok-xiaohongshu-lemon8-bilibili-kuaishou-pi/changes/api/v1/tiktok/web/generate_xgnarly/post.md)

---

[API](https://skmtc.dev/tikhub/apis/tikhub-douyin-tiktok-xiaohongshu-lemon8-bilibili-kuaishou-pi.md) - [All operations](https://skmtc.dev/tikhub/apis/tikhub-douyin-tiktok-xiaohongshu-lemon8-bilibili-kuaishou-pi/llms.txt) - [OpenAPI document](https://skmtc.dev/tikhub/apis/tikhub-douyin-tiktok-xiaohongshu-lemon8-bilibili-kuaishou-pi/revisions/86a3483c705a?raw)
