跳到正文
LinkProfit

分页机制

所有列表端点均采用游标分页:响应外层结构、取值限制,以及可直接复制使用的遍历循环。

更新于 2026年8月13日

所有列表端点都使用不透明游标分页。游标在插入和删除记录时保持稳定:与页码不同,它在你遍历的过程中不会跳过、也不会重复任何行。

响应外层结构

{
  "data": [ { "id": "lnk_…" }, { "id": "lnk_…" } ],
  "pagination": {
    "next_cursor": "eyJpZCI6Imxua19hYmMiLCJjcmVhdGVkX2F0IjoiMjAyNi0uLi4ifQ",
    "has_more": true
  }
}
  • limit —— 每页数量,取值 1–100,默认 50。
  • cursor —— 上一页返回的 next_cursor,原样传入。
  • 在最后一页,next_cursornull

请把游标当作不透明字符串:它的格式可能发生变化,唯一有保证的是原样回传。格式错误的游标会返回 400 invalid_request,而不是悄悄从第一页重新开始。

遍历

curl -s "$LINKPROFIT_API_BASE/links?limit=100" \
  -H "Authorization: Bearer $LINKPROFIT_API_KEY"
# then with the next_cursor value from the response:
curl -s "$LINKPROFIT_API_BASE/links?limit=100&cursor=CURSOR_FROM_PREVIOUS_PAGE" \
  -H "Authorization: Bearer $LINKPROFIT_API_KEY"
async function* allLinks(base, key) {
  let cursor = null;
  do {
    const url = new URL(`${base}/links`);
    url.searchParams.set("limit", "100");
    if (cursor) url.searchParams.set("cursor", cursor);

    const response = await fetch(url, {
      headers: { Authorization: `Bearer ${key}` },
    });
    if (!response.ok) throw new Error(`HTTP ${response.status}`);

    const page = await response.json();
    yield* page.data;
    cursor = page.pagination.next_cursor;
  } while (cursor);
}

游标的适用范围

/links/events/partner/clients/webhooks/{id}/deliveries 支持游标分页。较短的列表——域名、套餐、Webhook——在一页内返回,has_more: false;付款和结算按 period 过滤,每个请求最多返回 100 行。

/partner/clients 之外,所有列表都按时间倒序排列(最新的在前);/partner/clients 按稳定的 id 顺序分页。