Skip to content
Eden Engine

TikTok Profile Lookup (by Username, User ID, or Sec User ID)

omnial/tiktok-app-handler-user-profile

Given a TikTok unique_id (username), numeric user_id, or sec_user_id, returns that account's public profile: display name, bio (signature), verification status and reason, follower/following/video counts, total likes received, whether the account is private, and any linked Twitter, YouTube, or Instagram account the profile owner has published. Returns an empty result when the given identifier does not resolve to an existing account.

activeper callv1
Provider
Web & Business Data Network
Category
tiktok
Provider price
$0.0020475 per call
Latency p50 / p95
— / —
Success rate
Verified

Provider list price; Omnial MCP charges provider cost plus a platform markup on top.

Contract

input_schema.json
{
  "type": "object",
  "anyOf": [
    {
      "required": [
        "unique_id"
      ]
    },
    {
      "required": [
        "user_id"
      ]
    },
    {
      "required": [
        "sec_user_id"
      ]
    }
  ],
  "properties": {
    "user_id": {
      "type": "string",
      "description": "User uid (optional, pure number)"
    },
    "unique_id": {
      "type": "string",
      "description": "User unique_id (username)"
    },
    "sec_user_id": {
      "type": "string",
      "examples": [
        "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM"
      ],
      "description": "User sec_user_id"
    }
  },
  "additionalProperties": false
}
output_schema.json
{
  "type": "object",
  "properties": {
    "user": {
      "type": "object",
      "properties": {
        "uid": {
          "type": "string",
          "description": "The account's numeric platform id."
        },
        "ins_id": {
          "type": "string",
          "description": "Linked Instagram handle the account owner has published, when any. Empty string otherwise."
        },
        "secret": {
          "type": "number",
          "description": "Private-account flag. Observed `0` (public) on the one real account calibrated; unconfirmed whether populated values are ever anything other than 0/1."
        },
        "sec_uid": {
          "type": "string",
          "description": "The account's stable secure user id, usable as `sec_user_id` input to this or related lookups."
        },
        "category": {
          "type": "string",
          "description": "The account's self-set creator category, e.g. 'Public Figure'."
        },
        "nickname": {
          "type": "string",
          "description": "The account's public display name."
        },
        "short_id": {
          "type": "string"
        },
        "signature": {
          "type": "string",
          "description": "The account's bio text."
        },
        "unique_id": {
          "type": "string",
          "description": "The account's TikTok username, echoing the queried unique_id."
        },
        "ad_virtual": {
          "type": "boolean"
        },
        "share_info": {
          "type": "object",
          "properties": {
            "share_url": {
              "type": [
                "string",
                "null"
              ],
              "description": "The account's own shareable profile link, withheld the same way as the avatar URLs above."
            },
            "share_desc": {
              "type": "string",
              "description": "The default share caption for this profile."
            },
            "share_title": {
              "type": "string",
              "description": "The default share invite title for this profile."
            }
          },
          "additionalProperties": true
        },
        "twitter_id": {
          "type": "string",
          "description": "Linked Twitter/X numeric id the account owner has published, when any. Empty string otherwise."
        },
        "aweme_count": {
          "type": "number",
          "description": "The account's public video count."
        },
        "account_type": {
          "type": "number"
        },
        "avatar_thumb": {
          "type": "object",
          "properties": {
            "url_list": {
              "type": "array",
              "items": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": "Withheld, same as `avatar_168x168.url_list`."
            }
          },
          "additionalProperties": true
        },
        "twitter_name": {
          "type": "string",
          "description": "Linked Twitter/X handle the account owner has published, when any. Empty string otherwise."
        },
        "avatar_larger": {
          "type": "object",
          "properties": {
            "url_list": {
              "type": "array",
              "items": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": "Withheld, same as `avatar_168x168.url_list`."
            }
          },
          "additionalProperties": true
        },
        "avatar_medium": {
          "type": "object",
          "properties": {
            "url_list": {
              "type": "array",
              "items": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": "Withheld, same as `avatar_168x168.url_list`."
            }
          },
          "additionalProperties": true
        },
        "custom_verify": {
          "type": "string",
          "description": "The custom verification badge text, e.g. 'popular creator'. Empty string when unset."
        },
        "forward_count": {
          "type": "number"
        },
        "live_commerce": {
          "type": "boolean",
          "description": "Whether live-shopping is enabled for this account."
        },
        "avatar_168x168": {
          "type": "object",
          "properties": {
            "url_list": {
              "type": "array",
              "items": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": "Signed, time-limited CDN URLs for this avatar size, withheld (returned as `null` regardless of the account having one) -- only whether the field is populated is observable, not the destination itself."
            }
          },
          "additionalProperties": true
        },
        "avatar_300x300": {
          "type": "object",
          "properties": {
            "url_list": {
              "type": "array",
              "items": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": "Withheld, same as `avatar_168x168.url_list`."
            }
          },
          "additionalProperties": true
        },
        "follower_count": {
          "type": "number"
        },
        "following_count": {
          "type": "number"
        },
        "privacy_setting": {
          "type": "object",
          "properties": {
            "following_visibility": {
              "type": "number",
              "description": "Whether the account's following list is publicly visible."
            }
          },
          "additionalProperties": true
        },
        "total_favorited": {
          "type": "number",
          "description": "Total likes this account has received across all its videos."
        },
        "favoriting_count": {
          "type": "number",
          "description": "Videos this account has liked/favorited."
        },
        "is_effect_artist": {
          "type": "boolean",
          "description": "Whether this account is a published AR-effect creator."
        },
        "has_open_favorite": {
          "type": "boolean",
          "description": "Whether the account's favorites list is public."
        },
        "original_musician": {
          "type": "object",
          "properties": {
            "digg_count": {
              "type": "number"
            },
            "music_count": {
              "type": "number"
            },
            "music_used_count": {
              "type": "number"
            }
          },
          "description": "Musician stats, populated when this account is a music-rights holder on TikTok.",
          "additionalProperties": true
        },
        "verification_type": {
          "type": "number"
        },
        "show_favorite_list": {
          "type": "boolean"
        },
        "signature_language": {
          "type": "string",
          "description": "Language code detected for the bio text, e.g. 'un' (undetermined)."
        },
        "youtube_channel_id": {
          "type": "string",
          "description": "Linked YouTube channel id the account owner has published, when any. Empty string otherwise."
        },
        "visible_videos_count": {
          "type": "number"
        },
        "youtube_channel_title": {
          "type": "string",
          "description": "Linked YouTube channel name the account owner has published, when any. Empty string otherwise."
        },
        "verification_badge_type": {
          "type": "number"
        },
        "enterprise_verify_reason": {
          "type": "string",
          "description": "Empty string when not an enterprise-verified account."
        },
        "show_messaging_entrance_on_profile": {
          "type": "boolean"
        }
      },
      "description": "The looked-up account's profile. Absent entirely on a not-found lookup.",
      "additionalProperties": true
    },
    "status_msg": {
      "type": "string"
    },
    "status_code": {
      "type": "number",
      "description": "The upstream call's own status code, 0 on the one successful lookup calibrated."
    }
  },
  "description": "The profile record, as returned at routing.responseResultPath ($.output). Observed as an empty object `{}` when the given unique_id, user_id, or sec_user_id does not resolve to an existing TikTok account -- confirmed against the `notfound-empty` fixture, which billed $0 for that outcome.",
  "additionalProperties": true
}

Pricing

Every real charge, itemised. A model that quietly omits one is a slow financial leak, so nothing here is rolled up, and a charge that only applies to some inputs says so rather than being added in.

Prices in this catalog are the provider's own list price, not your bill: Omnial MCP charges provider cost plus a platform markup on top, so what you are charged is higher than the figure shown. For the exact amount a specific call will cost, run omnial_execute with dry_run: true; that number includes the markup and is what we hold while the call runs. It is a quote, not a cap on the charge.

ChargeRate
Per call
Flat, regardless of what comes back
$0.0020475
Cost basis
Not recorded

This tool's catalog entry does not record how its final bill is determined, so we will not tell you whether its cost is fixed before the call or reported by the provider afterwards. Either way what is held is a quote rather than a cap: you are charged what the call actually costs, bounded at 2x the quote.

Updated
Sep 8, 2026