Skip to content
looot docs
Esc
↑↓navigate↵open⌘Jpreview
On this page

Get Douyin DOU+ estimated delivery results

TikHub tool tikhub-api-douyin-douplus-fetch-delivery-effect-estimate on looot: input fields, $0.001 per call, output shape, and code to run it with curl, JavaScript or Python.

Returns Douyin estimated delivery results for specified items, promotion target, budget and duration. Send item_ids (Item id(s), comma separated; normally use schema=0 for on..); optional schema, cost_int, pay_type, is_max_cv and more. Useful for comparing budget and duration options before creating a DOU+ order.

Inputs

Name Type Required Description
cost_int integer no Delivery budget in li (CNY 1/1000), default 30000 (CNY 30). Example: 30000
duration_seconds integer no Delivery duration in seconds, default 21600 (6 hours). Example: 21600
external_action integer no Optimization action code; must match target_id, default 44 (NativeAction). Common values: 45=like, 46=follow, 47=comment, 51=link click, 102=multiple native actions, 181=homepage visit. Example: 44
is_max_cv boolean no Whether to estimate in MaxCV (maximum-conversion-volume) mode; the official client derives it from target capability, item count, budget and manual-bid state, default true. Example: true
item_ids string yes Item id(s), comma separated; normally use schema=0 for one item and schema=3 for multiple items.
pay_type integer no Payment channel: 0=CashDesk, 1=IAP, 2=Caijing, 3=CgTradeCash; the official estimate request uses 1. Example: 1
schema integer no Delivery schema: 0=single-item Default, 3=multi-item BatchDelivery; the official client selects it from the item count. Example: 0
target_id integer no Promotion target id, default 31 (likes and comments). Common values: 32=followers, 33=homepage visits, 37=video plays, 40=live popularity, 45=comment-link clicks, 63=show to followers, 78=natural promotion, 81=high interaction frequency.

Output

The run’s result holds the provider’s answer. Signed in, looot inspect tikhub-api-douyin-douplus-fetch-delivery-effect-estimate prints its fields.

Run it

Every call needs your API token in LOOOT_TOKEN; Sign in shows how to get one. Each run also needs a new idempotency key, so a retry never pays twice. With wait: 30 the answer comes back inline when the run ends within 30 seconds. Otherwise you get the running run back: poll GET /v1/runs/<runId>.

Example input with placeholder values:

curl -X POST "https://api.looot.ai/v1/runs" \
  -H "Authorization: Bearer $LOOOT_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"endpointId":"tikhub-api-douyin-douplus-fetch-delivery-effect-estimate","input":{"item_ids":"<item_ids>","schema":0,"cost_int":30000,"pay_type":1,"is_max_cv":true,"target_id":"<target_id>","external_action":44,"duration_seconds":21600},"wait":30}'
const response = await fetch("https://api.looot.ai/v1/runs", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.LOOOT_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({
    endpointId: "tikhub-api-douyin-douplus-fetch-delivery-effect-estimate",
    input: {
      item_ids: "<item_ids>",
      schema: 0,
      cost_int: 30000,
      pay_type: 1,
      is_max_cv: true,
      target_id: "<target_id>",
      external_action: 44,
      duration_seconds: 21600,
    },
    wait: 30,
  }),
});
const run = await response.json();
console.log(run.status, run.result);
import os
import uuid

import requests

response = requests.post(
    "https://api.looot.ai/v1/runs",
    headers={
        "Authorization": f"Bearer {os.environ['LOOOT_TOKEN']}",
        "Idempotency-Key": str(uuid.uuid4()),
    },
    json={
        "endpointId": "tikhub-api-douyin-douplus-fetch-delivery-effect-estimate",
        "input": {
            "item_ids": "<item_ids>",
            "schema": 0,
            "cost_int": 30000,
            "pay_type": 1,
            "is_max_cv": True,
            "target_id": "<target_id>",
            "external_action": 44,
            "duration_seconds": 21600,
        },
        "wait": 30,
    },
    timeout=90,
)
run = response.json()
print(run["status"], run.get("result"))

To let looot pick among every provider of this job instead, send job:api.douyin.douplus.fetch-delivery-effect-estimate as endpointId; see the job page.

Was this page helpful?