分页机制
所有列表端点均采用游标分页:响应外层结构、取值限制,以及可直接复制使用的遍历循环。
更新于 2026年8月13日
所有列表端点都使用不透明游标分页。游标在插入和删除记录时保持稳定:与页码不同,它在你遍历的过程中不会跳过、也不会重复任何行。
响应外层结构
{
"data": [ { "id": "lnk_…" }, { "id": "lnk_…" } ],
"pagination": {
"next_cursor": "eyJpZCI6Imxua19hYmMiLCJjcmVhdGVkX2F0IjoiMjAyNi0uLi4ifQ",
"has_more": true
}
}
limit—— 每页数量,取值 1–100,默认 50。cursor—— 上一页返回的next_cursor,原样传入。- 在最后一页,
next_cursor为null。
请把游标当作不透明字符串:它的格式可能发生变化,唯一有保证的是原样回传。格式错误的游标会返回 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 顺序分页。