Skip to content
Eden Engine

Douyin Account Profile Lookup (by UID)

omnial/douyin-web-fetch-user-profile-by-uid

Given a Douyin account's numeric UID, returns that account's public profile metadata: display name, bio (signature), verification status, profile city, stable identifiers (id, sec_uid, display id), follower/following counts, account create/modify timestamps and cancellation state. A UID with no visible profile returns the endpoint's own short notice and a non-zero status code rather than an error.

activeper callv3

Price

Up to $0.00205 per call; you pay what the call used

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.00.

Data source

Douyin

Data from Douyin.

Use it

Your AI assistant does the work: it finds this tool, shows you the price first, runs it, and you are charged when the run finishes. There is nothing to set up for this tool in particular.

Connect once and your AI can find and run this tool, and any other it needs.

For developers: the calls your assistant makes
agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/douyin-web-fetch-user-profile-by-uid" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/douyin-web-fetch-user-profile-by-uid" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/douyin-web-fetch-user-profile-by-uid", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/douyin-web-fetch-user-profile-by-uid", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.00205
Updated
Nov 6, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "uid"
  ],
  "properties": {
    "uid": {
      "type": "string",
      "examples": [
        "68141954464"
      ],
      "description": "User UID"
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "number",
          "description": "The account's numeric UID (matches the query)."
        },
        "city": {
          "type": "string",
          "description": "The profile's city field. Empty string observed on the one real account."
        },
        "id_str": {
          "type": "string",
          "description": "The same UID as a string."
        },
        "status": {
          "type": "number",
          "description": "Profile status code; 1 observed on the one real account."
        },
        "message": {
          "type": "string",
          "description": "Present only on the no-visible-profile case; the endpoint's own message (e.g. 'forbidden'). Absent on a successful profile fetch."
        },
        "prompts": {
          "type": "string",
          "description": "Present only on the no-visible-profile case; a human-readable notice from the platform ('temporarily no personal info viewable', in Chinese). Absent on a successful profile fetch."
        },
        "sec_uid": {
          "type": "string",
          "description": "The account's stable, resettable public identifier (a base64-ish token)."
        },
        "nickname": {
          "type": "string",
          "description": "The account's public display name."
        },
        "short_id": {
          "type": "number",
          "description": "The account's short numeric id."
        },
        "verified": {
          "type": "boolean"
        },
        "signature": {
          "type": "string",
          "description": "The account's public bio. Observed as a short Chinese phrase ('该减肥了') on the one real account; may be an empty string on other accounts."
        },
        "display_id": {
          "type": "string",
          "description": "The account's short numeric id rendered as a string."
        },
        "create_time": {
          "type": "number",
          "description": "Unix seconds. 0 observed on the one real account (the platform does not always populate it) -- do not read 0 as 'created at the epoch'."
        },
        "follow_info": {
          "type": "object",
          "properties": {
            "follower_count": {
              "type": "number"
            },
            "following_count": {
              "type": "number"
            },
            "follower_count_str": {
              "type": "string",
              "description": "Abbreviated follower count for display. Observed as '0' on the one real account even though the numeric `follower_count` was 61 (see usage.md)."
            },
            "following_count_str": {
              "type": "string",
              "description": "Abbreviated following count for display. Observed as '0' while the numeric `following_count` was 180 on the one real account (see usage.md)."
            }
          },
          "additionalProperties": true
        },
        "modify_time": {
          "type": "number",
          "description": "Unix seconds."
        },
        "avatar_large": {
          "type": "object",
          "properties": {
            "url_list": {
              "type": [
                "array",
                "null"
              ],
              "description": "The avatar's image URLs, withheld."
            }
          },
          "description": "Largest avatar. URL value withheld same as `avatar_thumb`.",
          "additionalProperties": true
        },
        "avatar_thumb": {
          "type": "object",
          "properties": {
            "url_list": {
              "type": [
                "array",
                "null"
              ],
              "description": "The avatar's image URLs, withheld. The raw URL-bearing array is nulled on the one real account; only presence is observable."
            }
          },
          "description": "Smallest avatar size. URL value withheld (stripped to `null`) -- only whether an avatar is set is observable, not the image itself.",
          "additionalProperties": true
        },
        "avatar_medium": {
          "type": "object",
          "properties": {
            "url_list": {
              "type": [
                "array",
                "null"
              ],
              "description": "The avatar's image URLs, withheld."
            }
          },
          "description": "Mid-size avatar. URL value withheld same as `avatar_thumb`.",
          "additionalProperties": true
        },
        "user_canceled": {
          "type": "boolean"
        },
        "verified_reason": {
          "type": "string",
          "description": "Public verification badge reason. Empty string observed."
        }
      },
      "description": "The account record. Carries only the `message`/`prompts` notice fields (below) on the no-visible-profile case, and the full profile fields on a real account.",
      "additionalProperties": true
    },
    "extra": {
      "type": "object",
      "properties": {
        "now": {
          "type": "number",
          "description": "Epoch milliseconds; present on every call observed."
        }
      },
      "description": "The upstream server clock at response time.",
      "additionalProperties": true
    },
    "status_code": {
      "type": "number",
      "description": "0 on a successful profile fetch; 10033 (the endpoint's own code) on the no-visible-profile case."
    }
  },
  "description": "The account profile record. Observed as `{ data: { message, prompts }, extra: { now }, status_code }` (no profile fields) when the given `uid` has no visible profile.",
  "additionalProperties": true
}