Skip to content
Eden Engine

Douyin Promotable Video List (by Account)

omnial/douyin-douplus-fetch-promotable-item-list

Given a Douyin account's sec_uid, returns the video posts that account can promote through DOU+: one entry per video with its public caption, publish time, like/comment/share counts, and promotion eligibility flags (ad status, promotional status, enterprise-cart eligibility, post age). A sec_uid that does not resolve to a queryable account returns the endpoint's status code and message instead of a list.

activeper callv1
Provider
Web & Business Data Network
Category
douyin
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",
  "required": [
    "sec_uid"
  ],
  "properties": {
    "count": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": 30,
      "example": 30,
      "description": "返回作品数量/Number of items"
    },
    "sec_uid": {
      "type": "string",
      "example": "MS4wLjABAAAA9fe7vGjwyiaOjL6REhX8rvmSb32VzA_XsKca9F3_YSHRXlEqgT2cpX54WGbtgnsA",
      "description": "投放账号的 sec_uid/Delivery account sec_uid"
    },
    "target_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": 31,
      "example": 31,
      "description": "推广目标(DOU+ 页面上的目标卡片)ID/Promotion target id (the goal card on the page). 31=点赞评论量, 32=粉丝量, 33=主页浏览量, 37=视频播放量, 40=直播间人气, 45=评论链接点击, 63=展示给粉丝, 78=高质量互动. 仅用于按推广目标筛选可投作品;只拉作品列表用默认 31 即可/Only filters promotable items by goal; keep 31 for a plain video list"
    }
  },
  "additionalProperties": false
}
output_schema.json
{
  "type": "object",
  "properties": {
    "cursor": {
      "type": "string",
      "description": "List pagination marker; `0` on the not-found (error) fixture."
    },
    "has_more": {
      "type": "number",
      "description": "1 when more pages follow, 0 otherwise (0 on the error fixture)."
    },
    "status_msg": {
      "type": "string",
      "description": "Empty on a served list; the endpoint's error message (observed in Chinese) on the error fixture."
    },
    "status_code": {
      "type": "number",
      "description": "0 on a served list; a nonzero code (observed 301000) when the request could not be served."
    },
    "item_info_list": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "is_ad": {
            "type": "boolean",
            "description": "True when the post is an ad placement."
          },
          "aweme_info": {
            "type": "object",
            "properties": {
              "desc": {
                "type": "string",
                "description": "The video's public caption text."
              },
              "author": {
                "type": "object",
                "properties": {
                  "sec_uid": {
                    "type": "string",
                    "description": "The account's sec_uid, echoing the requested input."
                  },
                  "nickname": {
                    "type": "string",
                    "description": "The account's public display name."
                  }
                },
                "description": "The account this promotable list belongs to -- the account named in the request.",
                "additionalProperties": true
              },
              "aweme_id": {
                "type": "string",
                "description": "The video's numeric Douyin id."
              },
              "can_play": {
                "type": "boolean",
                "description": "Whether the video is currently playable."
              },
              "is_photo": {
                "type": "boolean",
                "description": "True when the post is a photo rather than a video."
              },
              "is_slides": {
                "type": "boolean",
                "description": "True when the post is a slideshow."
              },
              "statistics": {
                "type": "object",
                "properties": {
                  "digg_count": {
                    "type": "number",
                    "description": "Like count."
                  },
                  "share_count": {
                    "type": "number",
                    "description": "Share count."
                  },
                  "comment_count": {
                    "type": "number",
                    "description": "Comment count."
                  }
                },
                "description": "Public engagement counters for the video.",
                "additionalProperties": true
              },
              "create_time": {
                "type": "number",
                "description": "Publish time, Unix milliseconds."
              },
              "is_daily_story": {
                "type": "boolean",
                "description": "True when the post is a daily story."
              }
            },
            "description": "The video's own public record.",
            "additionalProperties": true
          },
          "is_over_90_days": {
            "type": "boolean",
            "description": "True when the post is older than 90 days, a DOU+ eligibility factor."
          },
          "is_item_promotional": {
            "type": "boolean",
            "description": "True when the post is itself a product-promotional placement."
          },
          "douplus_user_post_tag": {
            "type": [
              "string",
              "null"
            ],
            "description": "A promotional tag label for unusually promotable posts; most posts carry none (null -- observed on 2 of 30 entries in the calibration fixture)."
          },
          "item_can_mount_enterprise_cart": {
            "type": "number",
            "description": "Nonzero when the post can host an enterprise shopping cart, 0 otherwise."
          }
        },
        "additionalProperties": true
      },
      "description": "One entry per promotable video. Absent entirely on the error fixture (a sec_uid that does not resolve) -- callers must not assume the array is always present."
    }
  },
  "description": "The promotable-video list, as returned at routing.responseResultPath ($.output). Observed as `{ cursor, has_more, status_code, status_msg }` with NO `item_info_list` when the given `sec_uid` does not resolve to a queryable account -- confirmed against the `invalid-sec-uid-error` fixture, which still billed the normal per-call price.",
  "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 30, 2026