Douyin URL Parser API — Links to Request Fields
Documentation menu
FetchLayer FetchLayer API

Parse a Douyin link

Whether a Douyin link or pasted share text is a video, an account, a hashtag or a collection, with its id and canonical address. Free.

POST /resolve-url Utilities
https://api.fetchlayer.dev/douyin/resolve-url
OpenAPI JSON

Headers

Authorization string required

Bearer token — your FetchLayer API key.

Parameters

url string required

Any Douyin link — video, image post, profile, hashtag, collection, or a v.douyin.com share link — or share text containing one.

format string optional

json or markdown, lowercase; any other value is a 400. Over MCP, markdown returns the result rendered as text; the REST API accepts it and returns JSON. (default: json)

timeoutMs integer optional

Time limit for the whole request, in milliseconds (1000–120000); a value outside that range is a 400. Where possible a partial answer comes back with a note; a request with nothing to return yet fails with a 503 you can retry, marked with the response header X-Timeout-Source: caller.

Response Fields

resolve-url

Parse a Douyin link

transport string

The data source: always the platform id, "douyin".

fetchedAt string

When the data was read (ISO 8601).

notes string[]

Caveats you can act on, such as older videos existing beyond the list. Empty when there are none.

kind string

video, user, hashtag or collection.

id string

The video id, sec_uid, hashtag id or collection id.

canonicalUrl string

The canonical address.

Request

curl -X POST "https://api.fetchlayer.dev/douyin/resolve-url" \
  -H "Authorization: Bearer ss-your-key" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://www.douyin.com/video/7665908051974704410"}'

Response

{
  "transport": "douyin",
  "fetchedAt": "2026-10-15T15:54:02.874Z",
  "notes": [],
  "kind": "video",
  "id": "7665908051974704410",
  "canonicalUrl": "https://www.douyin.com/video/7665908051974704410"
}