READ-ONLY · R2 SNAPSHOTS · v1

YOUYOUMI 开放数据 API 接入说明

本文档面向外部开发者与 AI 代理。通过 API Key 只读查询已同步的经营快照(多店看板、利润、广告、达人、Upseller SKU 等)。 不提供写入、同步或删除能力。

GET only每人一个 KeyJSON 快照数据已脱敏

收到凭证后:通用数据先调 /catalog;广告开发可直接从 /api/open/v1/ads 查看分点接口。

快速开始

  1. 准备 API Key

    向管理员索取以 ydk_ 开头的密钥。完整密钥只在创建时显示一次。

  2. 验证连通性
    curl -sS \
      -H "Authorization: Bearer ydk_你的密钥" \
      "https://youyoumi.asia/api/open/v1/"

    成功时返回 ok: true 与当前 Key 标签。

  3. 拉取 catalog,再读快照
    curl -sS \
      -H "Authorization: Bearer ydk_你的密钥" \
      "https://youyoumi.asia/api/open/v1/catalog"

    从返回的 datasets[].fetchUrl 或下方「数据集速查」选择目标,再请求对应快照 URL。

基础信息

Base URLhttps://youyoumi.asia
API 前缀/api/open/v1
协议HTTPS · JSON · UTF-8
方法GET(读取);OPTIONS 用于 CORS 预检
Content-Type响应为 application/json(快照端点)或原始 JSON 文件
文档页https://youyoumi.asia/open-data-api/

鉴权

除本说明页外,所有 /api/open/v1/* 读取接口都需要 HTTP Header:

Authorization: Bearer ydk_你的密钥

推荐流程

1
GET /api/open/v1/catalog

获取全部 datasetId、是否可用、字节数、版本字段、fetchUrl,以及 Upseller 店铺列表。

2
GET /api/open/v1/snapshots/{datasetId}

按 id 读取快照。部分数据集需要 ?profile=?shopId=

3
广告开发:GET /api/open/v1/ads

无需 TikTok Marketing API Token;继续按账户、日期、Campaign、商品、漏斗或视频素材读取已同步数据。

快照是完整 JSON 文件,不是分页列表 API。大文件请本地缓存,并用 ETag / generatedAt 判断是否需要重新拉取。

端点

方法路径说明
GET/api/open/v1/服务信息、当前 Key 标签、端点索引
GET/api/open/v1/catalog全部数据集清单 + Upseller 店铺列表 + 额外 R2 对象
GET/api/open/v1/adsTikTok Marketing API 广告分点接口索引(服务器快照型,不暴露 Marketing Token)
GET/api/open/v1/snapshots/{datasetId}按 catalog 中的 id 拉取快照 JSON
GET/api/open/v1/snapshots/{datasetId}?profile=shop6需要 profile 的数据集(达人预览、评价、样品运营等)
GET/api/open/v1/snapshots/upsellerSampleProfitShopSkus?shopId=533322Upseller 单店 SKU 明细;shopId 见 catalog
GET/api/open/v1/r2?key=dashboard/tiktok-shops-summary.json按 R2 key 直读(仅限白名单前缀)
GET/api/open/v1/static?path=/data/...按静态路径读取(兼容旧路径,优先用 snapshots)

广告分点 API

首页广告数据由服务器持有的 TikTok Marketing API Token 定时同步到 R2。开发者调用下面的接口时只需要ydk_... API Key;Marketing Token 不会返回到浏览器、响应体或日志。

方法路径适用筛选核心返回字段
GET/api/open/v1/ads端点索引、鉴权方式、数据时效
GET/api/open/v1/ads/accounts账户advertiser_name、report_type、date_window、metrics、data_status
GET/api/open/v1/ads/summary账户spend、revenue、orders、roi 与各粒度可用性
GET/api/open/v1/ads/daily账户 + 日期date、spend、revenue、orders、roi
GET/api/open/v1/ads/campaigns账户 + campaignIdcampaign_id、报表 metrics / spend、配置与 sessions
GET/api/open/v1/ads/adgroups账户 + campaignIdcampaign_id、adgroup_id、adgroup_name、metrics
GET/api/open/v1/ads/ads账户 + campaignIdcampaign_id、ad_id、ad_name、metrics
GET/api/open/v1/ads/products账户 + campaignId/productIditem_group_id、product_name、spend、revenue、orders、roi
GET/api/open/v1/ads/products/daily账户 + campaignId/productId + 日期date、item_group_id、spend、revenue、orders、roi
GET/api/open/v1/ads/attention账户impressions、clicks、add_to_cart、initiate_checkout、purchases、视频观看
GET/api/open/v1/ads/funnel账户impressions、clicks、add_to_cart、conversions、available
GET/api/open/v1/ads/stores账户store_id、store_name、授权上下文与 status
GET/api/open/v1/ads/videos账户 + productIdvideo_id、item/product 标识、title、status
GET/api/open/v1/ads/sync-status账户schemaVersion、updatedAt、accountCount、syncStats、fx

筛选与分页

curl -sS \
  -H "Authorization: Bearer ydk_你的密钥" \
  "https://youyoumi.asia/api/open/v1/ads/campaigns?storeId=7494242775829480988&pageSize=100"

curl -sS \
  -H "Authorization: Bearer ydk_你的密钥" \
  "https://youyoumi.asia/api/open/v1/ads/daily?profile=shop1-gmv-max&startDate=2026-08-01&endDate=2026-08-25"

这些端点读取最近一次成功同步的快照,不会因为每次请求而消耗 TikTok 上游配额。响应的updatedAtdataSource 和各行状态用于判断新鲜度;缺失字段保持 null 或空数组,不伪造数据。 鉴权响应使用 private, no-store,如需缓存请在调用端按 updatedAt 管理私有副本。

数据集速查

共 28 个内置 datasetId。完整可用性与字节数以 catalog 实时返回为准。

datasetId名称参数存储版本字段示例路径
tiktokShops多店经营看板r2updated_at/api/open/v1/snapshots/tiktokShops
tiktokShopsSummary多店摘要r2updated_at/api/open/v1/snapshots/tiktokShopsSummary
tiktokShopsManifest看板分片清单r2updated_at/api/open/v1/snapshots/tiktokShopsManifest
productPerformance商品表现r2generatedAt/api/open/v1/snapshots/productPerformance
profitDashboard利润看板r2updatedAt/api/open/v1/snapshots/profitDashboard
creatorDashboard达人 BD 看板r2syncedAt/api/open/v1/snapshots/creatorDashboard
creatorTikTok达人 TikTok 同步r2syncedAt/api/open/v1/snapshots/creatorTikTok
creatorOpenIdDirectoryOpen ID 目录r2generatedAt/api/open/v1/snapshots/creatorOpenIdDirectory
creatorApiPreviewIndex达人 API 预览索引r2generatedAt/api/open/v1/snapshots/creatorApiPreviewIndex
creatorApiPreview达人 API 预览profile(如 default、shop6)r2generatedAt/api/open/v1/snapshots/creatorApiPreview?profile=default
creatorContentIndex达人内容索引profile(如 default、shop6)r2generatedAt/api/open/v1/snapshots/creatorContentIndex?profile=default
shopProductReviews商品评价情感profile(如 default、shop6)r2generatedAt/api/open/v1/snapshots/shopProductReviews?profile=default
tiktokAdsTikTok 广告快照r2updatedAt/api/open/v1/snapshots/tiktokAds
tiktokAdsMonitor广告监控切片r2updatedAt/api/open/v1/snapshots/tiktokAdsMonitor
costDataSKU 成本目录r2updatedAt/api/open/v1/snapshots/costData
shopProductMaster商品主档r2generatedAt/api/open/v1/snapshots/shopProductMaster
ordersAllFull全店订单(完整)r2updated_at/api/open/v1/snapshots/ordersAllFull
ordersAllSlim全店订单(精简)r2updated_at/api/open/v1/snapshots/ordersAllSlim
creatorSampleOperations达人样品运营profile(如 default、shop6)r2generatedAt/api/open/v1/snapshots/creatorSampleOperations?profile=default
shop6MarginPromotionPlan六店促销计划r2generatedAt/api/open/v1/snapshots/shop6MarginPromotionPlan
upsellerDaemonStatusUpseller 守护进程r2updatedAt/api/open/v1/snapshots/upsellerDaemonStatus
inventoryCatalog库存商品目录staticgeneratedAt/api/open/v1/snapshots/inventoryCatalog
upsellerSampleProfitUpseller 样品利润摘要r2generatedAt/api/open/v1/snapshots/upsellerSampleProfit
upsellerSampleProfitGlobalSkusUpseller 全部 SKU 明细r2generatedAt/api/open/v1/snapshots/upsellerSampleProfitGlobalSkus
upsellerSampleProfitStockIndexUpseller SKU 库存索引r2generatedAt/api/open/v1/snapshots/upsellerSampleProfitStockIndex
upsellerSampleProfitShopSkusUpseller 单店 SKU 明细shopId(Upseller 数字店铺 ID)r2generatedAt/api/open/v1/snapshots/upsellerSampleProfitShopSkus?shopId=533322
upsellerSampleProfitSourceUpseller 样品利润完整源r2generatedAt/api/open/v1/snapshots/upsellerSampleProfitSource
productAnalysis爆品证据分析staticgeneratedAt/api/open/v1/snapshots/productAnalysis

常用 Upseller datasetId

错误码

错误响应体统一为 JSON:{ "ok": false, "message": "..." }

HTTP含义常见原因处理建议
401未授权缺少 Header、Key 无效检查 Authorization: Bearer ydk_...
403禁止访问Key 已 revoke联系管理员重新发放
400参数错误profile/shopId/R2 key/path 不合法对照 catalog 与本文档修正参数
404未找到未知 datasetId、快照尚未生成先查 catalog 的 available 字段
405方法不允许使用了 POST/PUT/DELETE仅使用 GET
503服务暂不可用后端临时故障指数退避重试(见下方调用建议)

代码示例

ydk_你的密钥 替换为管理员提供的 Key。

cURL

# 1) 验证 Key
curl -sS -H "Authorization: Bearer ydk_你的密钥" \
  "https://youyoumi.asia/api/open/v1/"

# 2) 获取 catalog
curl -sS -H "Authorization: Bearer ydk_你的密钥" \
  "https://youyoumi.asia/api/open/v1/catalog"

# 3) 读取多店摘要
curl -sS -H "Authorization: Bearer ydk_你的密钥" \
  "https://youyoumi.asia/api/open/v1/snapshots/tiktokShopsSummary"

# 4) 读取 Upseller 全量 SKU
curl -sS -H "Authorization: Bearer ydk_你的密钥" \
  "https://youyoumi.asia/api/open/v1/snapshots/upsellerSampleProfitGlobalSkus"

Python

import requests

BASE = "https://youyoumi.asia"
API_KEY = "ydk_你的密钥"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Accept": "application/json"}

# catalog
catalog = requests.get(f"{BASE}/api/open/v1/catalog", headers=HEADERS, timeout=60)
catalog.raise_for_status()
print(len(catalog.json()["datasets"]), "datasets")

# snapshot
resp = requests.get(
    f"{BASE}/api/open/v1/snapshots/tiktokShopsSummary",
    headers=HEADERS,
    timeout=120,
)
resp.raise_for_status()
data = resp.json()
print(data.get("updated_at") or data.get("generatedAt"))

JavaScript (fetch)

const BASE = "https://youyoumi.asia";
const API_KEY = "ydk_你的密钥";
const headers = { Authorization: `Bearer ${API_KEY}`, Accept: "application/json" };

const catalog = await fetch(`${BASE}/api/open/v1/catalog`, { headers });
if (!catalog.ok) throw new Error(await catalog.text());
const { datasets } = await catalog.json();
console.log(datasets.length, "datasets");

const snapshot = await fetch(
  `${BASE}/api/open/v1/snapshots/profitDashboard`,
  { headers },
);
if (!snapshot.ok) throw new Error(await snapshot.text());
const profit = await snapshot.json();
console.log(profit.updatedAt || profit.meta?.generated_at);

调用建议

数据更新

数据类型更新方式典型频率
TikTok 店铺 / 利润 / 广告 / 达人后台 Cron 写入 R2,API 实时读取约每小时(各店错开)
Upseller SKU 明细本机守护进程重建后推送 R2 固定 key守护进程跑完即更新(通常日更)
静态构建产物随站点 deploy 更新手动 deploy 时

重新 deploy 网站不会使 API Key 失效;Key 存在 D1,快照存在 R2。

在线探测

输入 API Key 后加载 catalog(只读,密钥不会保存到服务器)。