{"id":"9f05c16f-19e5-4aa6-9f25-c9dc2a69f5fe","entityType":"agent","slug":"clawhub-linkfox-ai-linkfox-shopee-store-first-mile","name":"Shopee-店铺头程物流","canonicalUrl":"https://www.xpersona.co/agent/clawhub-linkfox-ai-linkfox-shopee-store-first-mile","canonicalPath":"/agent/clawhub-linkfox-ai-linkfox-shopee-store-first-mile","generatedAt":"2026-10-11T20:59:38.811Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T18:14:30.898Z","emptyReason":null},"description":"Shopee（虾皮）头程物流 FirstMile（与 linkfox-shopee-store-auth 同系列），经 /shopee/developerProxy 转发 Shopee Open API FirstMile 模块全部 16 个接口：get_unbind_order_list、generate_first_mile_tracking_number、bind_first_mile_tracking_number、get_waybill、get_channel_list 等。当用户提到 Shopee 头程、FirstMile、头程运单、绑定头程、first mile tracking、中转仓、get_unbind_order_list 时触发。即使未明确提及\"头程\"，只要涉及已授权 Shopee 店铺的头程运单绑定或面单，也应触发。","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s171g8b6m2khwdy9ye8bxj0wx183vd4z:linkfox-shopee-store-first-mile","sourceUrl":"https://clawhub.ai/linkfox-ai/linkfox-shopee-store-first-mile","homepage":"https://clawhub.ai/linkfox-ai/skills/linkfox-shopee-store-first-mile","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/linkfox-ai/linkfox-shopee-store-first-mile","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/linkfox-ai/skills/linkfox-shopee-store-first-mile","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Shopee-店铺头程物流 technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T18:14:30.898Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T18:14:30.898Z","emptyReason":null},"stars":null,"forks":null,"downloads":1011,"packageName":null,"latestVersion":"1.0.6","tractionLabel":"1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T18:14:30.829Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T18:14:30.898Z","lastCrawledAt":"2026-10-11T18:14:30.829Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T18:14:30.829Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.6","createdAt":"2026-09-14T05:27:12.117Z","changelog":"Update from 1.0.5 to 1.0.6","fileCount":43,"zipByteSize":52285},{"version":"1.0.5","createdAt":"2026-08-14T15:03:27.414Z","changelog":"Update from 1.0.4 to 1.0.5","fileCount":43,"zipByteSize":52271},{"version":"1.0.4","createdAt":"2026-08-07T11:00:54.505Z","changelog":"Update from 1.0.3 to 1.0.4","fileCount":43,"zipByteSize":52507},{"version":"1.0.3","createdAt":"2026-07-13T12:20:52.023Z","changelog":"Update from 1.0.2 to 1.0.3","fileCount":25,"zipByteSize":25269},{"version":"1.0.2","createdAt":"2026-07-06T11:29:28.800Z","changelog":"Update from 1.0.1 to 1.0.2","fileCount":25,"zipByteSize":24519},{"version":"1.0.1","createdAt":"2026-07-03T08:28:47.097Z","changelog":"Update from 1.0.0 to 1.0.1","fileCount":24,"zipByteSize":22921},{"version":"1.0.0","createdAt":"2026-07-02T13:46:48.290Z","changelog":"Initial release","fileCount":25,"zipByteSize":24155}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s171g8b6m2khwdy9ye8bxj0wx183vd4z:linkfox-shopee-store-first-mile","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s171g8b6m2khwdy9ye8bxj0wx183vd4z:linkfox-shopee-store-first-mile` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/linkfox-ai/linkfox-shopee-store-first-mile before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-shopee-store-first-mile/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-shopee-store-first-mile/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-shopee-store-first-mile/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-shopee-store-first-mile/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-shopee-store-first-mile/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-shopee-store-first-mile/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T20:59:38.808Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-shopee-store-first-mile/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-shopee-store-first-mile/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-shopee-store-first-mile/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-shopee-store-first-mile/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T18:14:30.898Z","emptyReason":null},"readme":"Skill: Shopee-店铺头程物流\n\nOwner: linkfox-ai\n\nSummary: Shopee（虾皮）头程物流 FirstMile（与 linkfox-shopee-store-auth 同系列），经 /shopee/developerProxy 转发 Shopee Open API FirstMile 模块全部 16 个接口：get_unbind_order_list、generate_first_mile_tracking_number、bind_first_mile_tracking_number、get_waybill、get_channel_list 等。当用户提到 Shopee 头程、FirstMile、头程运单、绑定头程、first mile tracking、中转仓、get_unbind_order_list 时触发。即使未明确提及\"头程\"，只要涉及已授权 Shopee 店铺的头程运单绑定或面单，也应触发。\n\nTags: latest:1.0.6\n\nVersion history:\n\nv1.0.6 | 2026-09-14T05:27:12.117Z | user\n\nUpdate from 1.0.5 to 1.0.6\n\nv1.0.5 | 2026-08-14T15:03:27.414Z | user\n\nUpdate from 1.0.4 to 1.0.5\n\nv1.0.4 | 2026-08-07T11:00:54.505Z | user\n\nUpdate from 1.0.3 to 1.0.4\n\nv1.0.3 | 2026-07-13T12:20:52.023Z | user\n\nUpdate from 1.0.2 to 1.0.3\n\nv1.0.2 | 2026-07-06T11:29:28.800Z | user\n\nUpdate from 1.0.1 to 1.0.2\n\nv1.0.1 | 2026-07-03T08:28:47.097Z | user\n\nUpdate from 1.0.0 to 1.0.1\n\nv1.0.0 | 2026-07-02T13:46:48.290Z | user\n\nInitial release\n\nArchive index:\n\nArchive v1.0.6: 43 files, 52285 bytes\n\nFiles: references/api.md (7491b), references/apis/bind-courier-delivery-first-mile-tracking-number.md (1664b), references/apis/bind-first-mile-tracking-number.md (1530b), references/apis/generate-and-bind-first-mile-tracking-number.md (1626b), references/apis/generate-first-mile-tracking-number.md (1572b), references/apis/get-channel-list.md (1382b), references/apis/get-courier-delivery-channel-list.md (1528b), references/apis/get-courier-delivery-detail.md (1491b), references/apis/get-courier-delivery-tracking-number-list.md (1607b), references/apis/get-courier-delivery-waybill.md (1479b), references/apis/get-detail.md (1379b), references/apis/get-tracking-number-list.md (1463b), references/apis/get-transit-warehouse-list.md (1459b), references/apis/get-unbind-order-list.md (1461b), references/apis/get-waybill.md (1341b), references/apis/unbind-first-mile-tracking-number-all.md (1571b), references/apis/unbind-first-mile-tracking-number.md (1554b), references/onboarding.md (1999b), scripts/_first_mile_api_runner.py (4315b), scripts/_first_mile_endpoints.py (4802b), scripts/_shopee_first_mile_common.py (11831b), scripts/bind_courier_delivery_first_mile_tracking_number.py (887b), scripts/bind_first_mile_tracking_number.py (785b), scripts/check_auth_dependency.py (3989b), scripts/first_mile_api.py (1074b), scripts/generate_and_bind_first_mile_tracking_number.py (863b), scripts/generate_first_mile_tracking_number.py (809b), scripts/get_channel_list.py (695b), scripts/get_courier_delivery_channel_list.py (797b), scripts/get_courier_delivery_detail.py (761b), scripts/get_courier_delivery_tracking_number_list.py (845b), scripts/get_courier_delivery_waybill.py (767b), scripts/get_detail.py (659b), scripts/get_tracking_number_list.py (743b), scripts/get_transit_warehouse_list.py (755b), scripts/get_unbind_order_list.py (725b), scripts/get_waybill.py (665b), scripts/onboarding.py (24027b), scripts/unbind_first_mile_tracking_number_all.py (821b), scripts/unbind_first_mile_tracking_number.py (797b), skill-card.md (2586b), SKILL.md (7029b), _meta.json (150b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: linkfox-shopee-store-first-mile\ndescription: Shopee（虾皮）头程物流 FirstMile（与 linkfox-shopee-store-auth 同系列），经 /shopee/developerProxy 转发 Shopee Open API FirstMile 模块全部 16 个接口：get_unbind_order_list、generate_first_mile_tracking_number、bind_first_mile_tracking_number、get_waybill、get_channel_list 等。当用户提到 Shopee 头程、FirstMile、头程运单、绑定头程、first mile tracking、中转仓、get_unbind_order_list 时触发。即使未明确提及\"头程\"，只要涉及已授权 Shopee 店铺的头程运单绑定或面单，也应触发。\n---\n\n# Shopee 头程 FirstMile\n\nShopee Open Platform **FirstMile 模块**（16 个 API）。**依赖 `linkfox-shopee-store-auth`** 选店；经 **`POST /shopee/developerProxy`** 传入 `shopId`（或 `merchantId`），由服务端解析 token 转发（`path` 须 `api/v2/first_mile/...`）。\n\n## 调用方式\n\n- **API 端点**：`POST /shopee/developerProxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/first_mile_api.py '{\"api\": \"get_unbind_order_list\", ...}' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗算力；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和算力问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示算力或余额不足**：消息含\"算力余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## 官方参考\n\nFirstMile 模块索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n---\n\n## Prerequisites\n\n1. 运行 `python scripts/check_auth_dependency.py`；exit code **42** → 先安装 **`linkfox-shopee-store-auth`**。\n2. **头程 vs 正向物流**：本 skill 为跨境**头程**（First Mile）；店铺发货/面单见 `linkfox-shopee-store-logistics`。\n\n## 可用脚本（16 个 API）\n\n| 分组 | 脚本 |\n|------|------|\n| 绑定/解绑 | `get_unbind_order_list.py`、`generate_first_mile_tracking_number.py`、`bind_first_mile_tracking_number.py`、`generate_and_bind_first_mile_tracking_number.py`、`unbind_first_mile_tracking_number.py` |\n| 运单/面单 | `get_tracking_number_list.py`、`get_waybill.py`、`get_detail.py` |\n| 渠道/仓库 | `get_channel_list.py`、`get_transit_warehouse_list.py`、`get_courier_delivery_channel_list.py` |\n| 快递头程 | `bind_courier_delivery_first_mile_tracking_number.py`、`get_courier_delivery_detail.py`、`get_courier_delivery_waybill.py` 等 |\n| 通用入口 | `first_mile_api.py` |\n\n完整列表见 `references/api.md`。\n\n## 接口说明（按 API）\n\n入参与响应细节放在 `references/apis/`，SKILL 只保留索引。\n\n| API | 说明文档 |\n|-----|----------|\n| `bind_courier_delivery_first_mile_tracking_number` | [references/apis/bind-courier-delivery-first-mile-tracking-number.md](./references/apis/bind-courier-delivery-first-mile-tracking-number.md) |\n| `bind_first_mile_tracking_number` | [references/apis/bind-first-mile-tracking-number.md](./references/apis/bind-first-mile-tracking-number.md) |\n| `generate_and_bind_first_mile_tracking_number` | [references/apis/generate-and-bind-first-mile-tracking-number.md](./references/apis/generate-and-bind-first-mile-tracking-number.md) |\n| `generate_first_mile_tracking_number` | [references/apis/generate-first-mile-tracking-number.md](./references/apis/generate-first-mile-tracking-number.md) |\n| `get_channel_list` | [references/apis/get-channel-list.md](./references/apis/get-channel-list.md) |\n| `get_courier_delivery_channel_list` | [references/apis/get-courier-delivery-channel-list.md](./references/apis/get-courier-delivery-channel-list.md) |\n| `get_courier_delivery_detail` | [references/apis/get-courier-delivery-detail.md](./references/apis/get-courier-delivery-detail.md) |\n| `get_courier_delivery_tracking_number_list` | [references/apis/get-courier-delivery-tracking-number-list.md](./references/apis/get-courier-delivery-tracking-number-list.md) |\n| `get_courier_delivery_waybill` | [references/apis/get-courier-delivery-waybill.md](./references/apis/get-courier-delivery-waybill.md) |\n| `get_detail` | [references/apis/get-detail.md](./references/apis/get-detail.md) |\n| `get_tracking_number_list` | [references/apis/get-tracking-number-list.md](./references/apis/get-tracking-number-list.md) |\n| `get_transit_warehouse_list` | [references/apis/get-transit-warehouse-list.md](./references/apis/get-transit-warehouse-list.md) |\n| `get_unbind_order_list` | [references/apis/get-unbind-order-list.md](./references/apis/get-unbind-order-list.md) |\n| `get_waybill` | [references/apis/get-waybill.md](./references/apis/get-waybill.md) |\n| `unbind_first_mile_tracking_number` | [references/apis/unbind-first-mile-tracking-number.md](./references/apis/unbind-first-mile-tracking-number.md) |\n| `unbind_first_mile_tracking_number_all` | [references/apis/unbind-first-mile-tracking-number-all.md](./references/apis/unbind-first-mile-tracking-number-all.md) |\n\n模块总览 / Feedback 见 [references/api.md](./references/api.md)。\n\n## Usage Scenarios\n\n### 1. 绑定头程运单\n1. `get_unbind_order_list.py` 查未绑定订单\n2. `generate_and_bind_first_mile_tracking_number.py` 或分步 generate + bind\n3. `get_waybill.py` 获取面单\n\n## Not Applicable\n\n- 店铺授权 → `linkfox-shopee-store-auth`\n- 正向物流发货 → `linkfox-shopee-store-logistics`\n- SBS 仓储库存 → `linkfox-shopee-store-sbs`\n- 订单查询 → `linkfox-shopee-store-orders`\n\n## 算力消耗规则\n\n不消耗算力。\n\n**Feedback:** 见 `references/api.md`。\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-shopee-store-first-mile\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1789363632117\n}\n\nFile v1.0.6:references/api.md\n\n# linkfox-shopee-store-first-mile — 参数与字段参考\n\n> 单接口入参/响应说明已拆到 **`apis/`**（按 API 一份）；本文件保留模块总览与 Feedback。\nShopee **FirstMile 模块**全部 16 个 API，经 **`POST /shopee/developerProxy`** 转发。\n\n授权见 **`linkfox-shopee-store-auth`**。官方索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n## 通用约定\n\n- **path**：须 `api/v2/first_mile/...`\n- **标识**：通常传 **`shopId`**\n- **官方文档 URL 规则**：`https://open.shopee.com/documents/v2/v2.first_mile.{api}?module=96&type=1`\n\n---\n\n## FirstMile 模块总览\n\n| # | API | Method | path | 脚本 | 官方文档 |\n|---|-----|--------|------|------|----------|\n| 1 | bind_courier_delivery_first_mile_tracking_number | POST | `api/v2/first_mile/bind_courier_delivery_first_mile_tracking_number` | `bind_courier_delivery_first_mile_tracking_number.py` | [apis/bind-courier-delivery-first-mile-tracking-number.md](./apis/bind-courier-delivery-first-mile-tracking-number.md) |\n| 2 | bind_first_mile_tracking_number | POST | `api/v2/first_mile/bind_first_mile_tracking_number` | `bind_first_mile_tracking_number.py` | [apis/bind-first-mile-tracking-number.md](./apis/bind-first-mile-tracking-number.md) |\n| 3 | generate_and_bind_first_mile_tracking_number | POST | `api/v2/first_mile/generate_and_bind_first_mile_tracking_number` | `generate_and_bind_first_mile_tracking_number.py` | [apis/generate-and-bind-first-mile-tracking-number.md](./apis/generate-and-bind-first-mile-tracking-number.md) |\n| 4 | generate_first_mile_tracking_number | POST | `api/v2/first_mile/generate_first_mile_tracking_number` | `generate_first_mile_tracking_number.py` | [apis/generate-first-mile-tracking-number.md](./apis/generate-first-mile-tracking-number.md) |\n| 5 | get_channel_list | GET | `api/v2/first_mile/get_channel_list` | `get_channel_list.py` | [apis/get-channel-list.md](./apis/get-channel-list.md) |\n| 6 | get_courier_delivery_channel_list | GET | `api/v2/first_mile/get_courier_delivery_channel_list` | `get_courier_delivery_channel_list.py` | [apis/get-courier-delivery-channel-list.md](./apis/get-courier-delivery-channel-list.md) |\n| 7 | get_courier_delivery_detail | GET | `api/v2/first_mile/get_courier_delivery_detail` | `get_courier_delivery_detail.py` | [apis/get-courier-delivery-detail.md](./apis/get-courier-delivery-detail.md) |\n| 8 | get_courier_delivery_tracking_number_list | GET | `api/v2/first_mile/get_courier_delivery_tracking_number_list` | `get_courier_delivery_tracking_number_list.py` | [apis/get-courier-delivery-tracking-number-list.md](./apis/get-courier-delivery-tracking-number-list.md) |\n| 9 | get_courier_delivery_waybill | GET | `api/v2/first_mile/get_courier_delivery_waybill` | `get_courier_delivery_waybill.py` | [apis/get-courier-delivery-waybill.md](./apis/get-courier-delivery-waybill.md) |\n| 10 | get_detail | GET | `api/v2/first_mile/get_detail` | `get_detail.py` | [apis/get-detail.md](./apis/get-detail.md) |\n| 11 | get_tracking_number_list | GET | `api/v2/first_mile/get_tracking_number_list` | `get_tracking_number_list.py` | [apis/get-tracking-number-list.md](./apis/get-tracking-number-list.md) |\n| 12 | get_transit_warehouse_list | GET | `api/v2/first_mile/get_transit_warehouse_list` | `get_transit_warehouse_list.py` | [apis/get-transit-warehouse-list.md](./apis/get-transit-warehouse-list.md) |\n| 13 | get_unbind_order_list | GET | `api/v2/first_mile/get_unbind_order_list` | `get_unbind_order_list.py` | [apis/get-unbind-order-list.md](./apis/get-unbind-order-list.md) |\n| 14 | get_waybill | GET | `api/v2/first_mile/get_waybill` | `get_waybill.py` | [apis/get-waybill.md](./apis/get-waybill.md) |\n| 15 | unbind_first_mile_tracking_number | POST | `api/v2/first_mile/unbind_first_mile_tracking_number` | `unbind_first_mile_tracking_number.py` | [apis/unbind-first-mile-tracking-number.md](./apis/unbind-first-mile-tracking-number.md) |\n| 16 | unbind_first_mile_tracking_number_all | POST | `api/v2/first_mile/unbind_first_mile_tracking_number_all` | `unbind_first_mile_tracking_number_all.py` | [apis/unbind-first-mile-tracking-number-all.md](./apis/unbind-first-mile-tracking-number-all.md) |\n通用入口：`first_mile_api.py`（JSON 含 `\"api\": \"<上表 API 名>\"`）。\n\n---\n\n## 常用接口说明\n\n### 头程绑定\n\n| API | 要点 |\n|-----|------|\n| `get_unbind_order_list` | 未绑定头程运单的订单 — [apis/get-unbind-order-list.md](./apis/get-unbind-order-list.md) |\n| `generate_first_mile_tracking_number` | 生成头程运单号 — [apis/generate-first-mile-tracking-number.md](./apis/generate-first-mile-tracking-number.md) |\n| `bind_first_mile_tracking_number` | 绑定订单到头程运单 — [apis/bind-first-mile-tracking-number.md](./apis/bind-first-mile-tracking-number.md) |\n| `generate_and_bind_first_mile_tracking_number` | 一步生成并绑定 — [apis/generate-and-bind-first-mile-tracking-number.md](./apis/generate-and-bind-first-mile-tracking-number.md) |\n| `unbind_first_mile_tracking_number` | 解绑 — [apis/unbind-first-mile-tracking-number.md](./apis/unbind-first-mile-tracking-number.md) |\n| `get_tracking_number_list` | 头程运单号列表 — [apis/get-tracking-number-list.md](./apis/get-tracking-number-list.md) |\n| `get_waybill` | 头程面单 — [apis/get-waybill.md](./apis/get-waybill.md) |\n\n### 渠道与仓库\n\n| API | 要点 |\n|-----|------|\n| `get_channel_list` | 头程渠道 — [apis/get-channel-list.md](./apis/get-channel-list.md) |\n| `get_transit_warehouse_list` | 中转仓列表 — [apis/get-transit-warehouse-list.md](./apis/get-transit-warehouse-list.md) |\n| `get_courier_delivery_channel_list` | 快递配送渠道 — [apis/get-courier-delivery-channel-list.md](./apis/get-courier-delivery-channel-list.md) |\n\n### 快递配送头程\n\n| API | 要点 |\n|-----|------|\n| `bind_courier_delivery_first_mile_tracking_number` | 绑定快递头程运单 — [apis/bind-courier-delivery-first-mile-tracking-number.md](./apis/bind-courier-delivery-first-mile-tracking-number.md) |\n| `get_courier_delivery_detail` | 快递头程详情 — [apis/get-courier-delivery-detail.md](./apis/get-courier-delivery-detail.md) |\n| `get_courier_delivery_waybill` | 快递头程面单 — [apis/get-courier-delivery-waybill.md](./apis/get-courier-delivery-waybill.md) |\n| `get_courier_delivery_tracking_number_list` | 快递头程运单列表 — [apis/get-courier-delivery-tracking-number-list.md](./apis/get-courier-delivery-tracking-number-list.md) |\n\n---\n\n## curl 示例\n\n```bash\ncurl -X POST ${LINKFOX_TOOL_GATEWAY}/shopee/developerProxy \\\n  -H \"Authorization: $LINKFOX_AGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"path\": \"api/v2/first_mile/get_unbind_order_list\",\n    \"method\": \"GET\",\n    \"accessToken\": \"xxx\",\n    \"shopId\": \"67890\"\n  }'\n```\n\n> 认证：从 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY` 任一环境变量读取（如未配置 按 SKILL.md 的 **## 解决认证和算力问题** 处理）。请求地址使用 `${LINKFOX_TOOL_GATEWAY}`（回退到 `SHOPEE_API_BASE_URL`，再回退到 `https://tool-gateway.linkfox.com`）。\n\n---\n\n## Feedback API\n\n```bash\ncurl -X POST https://skill-api.linkfox.com/api/v1/public/feedback \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"skillName\":\"linkfox-shopee-store-first-mile\",\"sentiment\":\"POSITIVE\",\n       \"category\":\"OTHER\",\"content\":\"头程订单查询正常\"}'\n```\n\nFile v1.0.6:references/apis/bind-courier-delivery-first-mile-tracking-number.md\n\n# bind_courier_delivery_first_mile_tracking_number\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/bind_courier_delivery_first_mile_tracking_number.py` |\n| Method / path | POST `api/v2/first_mile/bind_courier_delivery_first_mile_tracking_number` |\n| 官方文档 | [bind_courier_delivery_first_mile_tracking_number](https://open.shopee.com/documents/v2/v2.first_mile.bind_courier_delivery_first_mile_tracking_number?module=96&type=1) |\n| 用途 | Bind courier delivery first-mile tracking |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**POST**\n- POST：传 `body` / `requestBody`，或把 `body_fields` 列在 JSON 顶层\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Bind courier delivery first-mile tracking\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/bind_courier_delivery_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"bind_courier_delivery_first_mile_tracking_number\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`bindCourierDeliveryFirstMileTrackingNumber`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.6:references/apis/bind-first-mile-tracking-number.md\n\n# bind_first_mile_tracking_number\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/bind_first_mile_tracking_number.py` |\n| Method / path | POST `api/v2/first_mile/bind_first_mile_tracking_number` |\n| 官方文档 | [bind_first_mile_tracking_number](https://open.shopee.com/documents/v2/v2.first_mile.bind_first_mile_tracking_number?module=96&type=1) |\n| 用途 | Bind orders to first-mile tracking number |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**POST**\n- POST：传 `body` / `requestBody`，或把 `body_fields` 列在 JSON 顶层\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Bind orders to first-mile tracking number\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/bind_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"bind_first_mile_tracking_number\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`bindFirstMileTrackingNumber`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.6:references/apis/generate-and-bind-first-mile-tracking-number.md\n\n# generate_and_bind_first_mile_tracking_number\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/generate_and_bind_first_mile_tracking_number.py` |\n| Method / path | POST `api/v2/first_mile/generate_and_bind_first_mile_tracking_number` |\n| 官方文档 | [generate_and_bind_first_mile_tracking_number](https://open.shopee.com/documents/v2/v2.first_mile.generate_and_bind_first_mile_tracking_number?module=96&type=1) |\n| 用途 | Generate and bind tracking in one step |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**POST**\n- POST：传 `body` / `requestBody`，或把 `body_fields` 列在 JSON 顶层\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Generate and bind tracking in one step\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/generate_and_bind_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"generate_and_bind_first_mile_tracking_number\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`generateAndBindFirstMileTrackingNumber`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.6:references/apis/generate-first-mile-tracking-number.md\n\n# generate_first_mile_tracking_number\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/generate_first_mile_tracking_number.py` |\n| Method / path | POST `api/v2/first_mile/generate_first_mile_tracking_number` |\n| 官方文档 | [generate_first_mile_tracking_number](https://open.shopee.com/documents/v2/v2.first_mile.generate_first_mile_tracking_number?module=96&type=1) |\n| 用途 | Generate first-mile tracking number; pass body |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**POST**\n- POST：传 `body` / `requestBody`，或把 `body_fields` 列在 JSON 顶层\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Generate first-mile tracking number; pass body\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/generate_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"generate_first_mile_tracking_number\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`generateFirstMileTrackingNumber`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.6:references/apis/get-channel-list.md\n\n# get_channel_list\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_channel_list.py` |\n| Method / path | GET `api/v2/first_mile/get_channel_list` |\n| 官方文档 | [get_channel_list](https://open.shopee.com/documents/v2/v2.first_mile.get_channel_list?module=96&type=1) |\n| 用途 | First-mile channel list |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：First-mile channel list\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_channel_list.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_channel_list\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getChannelList`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.6:references/apis/get-courier-delivery-channel-list.md\n\n# get_courier_delivery_channel_list\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_courier_delivery_channel_list.py` |\n| Method / path | GET `api/v2/first_mile/get_courier_delivery_channel_list` |\n| 官方文档 | [get_courier_delivery_channel_list](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_channel_list?module=96&type=1) |\n| 用途 | Courier delivery channel list |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Courier delivery channel list\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_courier_delivery_channel_list.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_courier_delivery_channel_list\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getCourierDeliveryChannelList`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.6:references/apis/get-courier-delivery-detail.md\n\n# get_courier_delivery_detail\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_courier_delivery_detail.py` |\n| Method / path | GET `api/v2/first_mile/get_courier_delivery_detail` |\n| 官方文档 | [get_courier_delivery_detail](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_detail?module=96&type=1) |\n| 用途 | Courier delivery first-mile detail |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Courier delivery first-mile detail\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_courier_delivery_detail.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_courier_delivery_detail\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getCourierDeliveryDetail`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.6:references/apis/get-courier-delivery-tracking-number-list.md\n\n# get_courier_delivery_tracking_number_list\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_courier_delivery_tracking_number_list.py` |\n| Method / path | GET `api/v2/first_mile/get_courier_delivery_tracking_number_list` |\n| 官方文档 | [get_courier_delivery_tracking_number_list](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_tracking_number_list?module=96&type=1) |\n| 用途 | Courier delivery tracking number list |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Courier delivery tracking number list\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_courier_delivery_tracking_number_list.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_courier_delivery_tracking_number_list\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getCourierDeliveryTrackingNumberList`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.6:references/apis/get-courier-delivery-waybill.md\n\n# get_courier_delivery_waybill\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_courier_delivery_waybill.py` |\n| Method / path | GET `api/v2/first_mile/get_courier_delivery_waybill` |\n| 官方文档 | [get_courier_delivery_waybill](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_waybill?module=96&type=1) |\n| 用途 | Courier delivery waybill |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Courier delivery waybill\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_courier_delivery_waybill.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_courier_delivery_waybill\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getCourierDeliveryWaybill`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nArchive v1.0.5: 43 files, 52271 bytes\n\nFiles: references/api.md (7491b), references/apis/bind-courier-delivery-first-mile-tracking-number.md (1664b), references/apis/bind-first-mile-tracking-number.md (1530b), references/apis/generate-and-bind-first-mile-tracking-number.md (1626b), references/apis/generate-first-mile-tracking-number.md (1572b), references/apis/get-channel-list.md (1382b), references/apis/get-courier-delivery-channel-list.md (1528b), references/apis/get-courier-delivery-detail.md (1491b), references/apis/get-courier-delivery-tracking-number-list.md (1607b), references/apis/get-courier-delivery-waybill.md (1479b), references/apis/get-detail.md (1379b), references/apis/get-tracking-number-list.md (1463b), references/apis/get-transit-warehouse-list.md (1459b), references/apis/get-unbind-order-list.md (1461b), references/apis/get-waybill.md (1341b), references/apis/unbind-first-mile-tracking-number-all.md (1571b), references/apis/unbind-first-mile-tracking-number.md (1554b), references/onboarding.md (2046b), scripts/_first_mile_api_runner.py (4315b), scripts/_first_mile_endpoints.py (4802b), scripts/_shopee_first_mile_common.py (11601b), scripts/bind_courier_delivery_first_mile_tracking_number.py (887b), scripts/bind_first_mile_tracking_number.py (785b), scripts/check_auth_dependency.py (3989b), scripts/first_mile_api.py (1074b), scripts/generate_and_bind_first_mile_tracking_number.py (863b), scripts/generate_first_mile_tracking_number.py (809b), scripts/get_channel_list.py (695b), scripts/get_courier_delivery_channel_list.py (797b), scripts/get_courier_delivery_detail.py (761b), scripts/get_courier_delivery_tracking_number_list.py (845b), scripts/get_courier_delivery_waybill.py (767b), scripts/get_detail.py (659b), scripts/get_tracking_number_list.py (743b), scripts/get_transit_warehouse_list.py (755b), scripts/get_unbind_order_list.py (725b), scripts/get_waybill.py (665b), scripts/onboarding.py (24089b), scripts/unbind_first_mile_tracking_number_all.py (821b), scripts/unbind_first_mile_tracking_number.py (797b), skill-card.md (2515b), SKILL.md (7029b), _meta.json (150b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: linkfox-shopee-store-first-mile\ndescription: Shopee（虾皮）头程物流 FirstMile（与 linkfox-shopee-store-auth 同系列），经 /shopee/developerProxy 转发 Shopee Open API FirstMile 模块全部 16 个接口：get_unbind_order_list、generate_first_mile_tracking_number、bind_first_mile_tracking_number、get_waybill、get_channel_list 等。当用户提到 Shopee 头程、FirstMile、头程运单、绑定头程、first mile tracking、中转仓、get_unbind_order_list 时触发。即使未明确提及\"头程\"，只要涉及已授权 Shopee 店铺的头程运单绑定或面单，也应触发。\n---\n\n# Shopee 头程 FirstMile\n\nShopee Open Platform **FirstMile 模块**（16 个 API）。**依赖 `linkfox-shopee-store-auth`** 选店；经 **`POST /shopee/developerProxy`** 传入 `shopId`（或 `merchantId`），由服务端解析 token 转发（`path` 须 `api/v2/first_mile/...`）。\n\n## 调用方式\n\n- **API 端点**：`POST /shopee/developerProxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/first_mile_api.py '{\"api\": \"get_unbind_order_list\", ...}' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和积分问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## 官方参考\n\nFirstMile 模块索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n---\n\n## Prerequisites\n\n1. 运行 `python scripts/check_auth_dependency.py`；exit code **42** → 先安装 **`linkfox-shopee-store-auth`**。\n2. **头程 vs 正向物流**：本 skill 为跨境**头程**（First Mile）；店铺发货/面单见 `linkfox-shopee-store-logistics`。\n\n## 可用脚本（16 个 API）\n\n| 分组 | 脚本 |\n|------|------|\n| 绑定/解绑 | `get_unbind_order_list.py`、`generate_first_mile_tracking_number.py`、`bind_first_mile_tracking_number.py`、`generate_and_bind_first_mile_tracking_number.py`、`unbind_first_mile_tracking_number.py` |\n| 运单/面单 | `get_tracking_number_list.py`、`get_waybill.py`、`get_detail.py` |\n| 渠道/仓库 | `get_channel_list.py`、`get_transit_warehouse_list.py`、`get_courier_delivery_channel_list.py` |\n| 快递头程 | `bind_courier_delivery_first_mile_tracking_number.py`、`get_courier_delivery_detail.py`、`get_courier_delivery_waybill.py` 等 |\n| 通用入口 | `first_mile_api.py` |\n\n完整列表见 `references/api.md`。\n\n## 接口说明（按 API）\n\n入参与响应细节放在 `references/apis/`，SKILL 只保留索引。\n\n| API | 说明文档 |\n|-----|----------|\n| `bind_courier_delivery_first_mile_tracking_number` | [references/apis/bind-courier-delivery-first-mile-tracking-number.md](./references/apis/bind-courier-delivery-first-mile-tracking-number.md) |\n| `bind_first_mile_tracking_number` | [references/apis/bind-first-mile-tracking-number.md](./references/apis/bind-first-mile-tracking-number.md) |\n| `generate_and_bind_first_mile_tracking_number` | [references/apis/generate-and-bind-first-mile-tracking-number.md](./references/apis/generate-and-bind-first-mile-tracking-number.md) |\n| `generate_first_mile_tracking_number` | [references/apis/generate-first-mile-tracking-number.md](./references/apis/generate-first-mile-tracking-number.md) |\n| `get_channel_list` | [references/apis/get-channel-list.md](./references/apis/get-channel-list.md) |\n| `get_courier_delivery_channel_list` | [references/apis/get-courier-delivery-channel-list.md](./references/apis/get-courier-delivery-channel-list.md) |\n| `get_courier_delivery_detail` | [references/apis/get-courier-delivery-detail.md](./references/apis/get-courier-delivery-detail.md) |\n| `get_courier_delivery_tracking_number_list` | [references/apis/get-courier-delivery-tracking-number-list.md](./references/apis/get-courier-delivery-tracking-number-list.md) |\n| `get_courier_delivery_waybill` | [references/apis/get-courier-delivery-waybill.md](./references/apis/get-courier-delivery-waybill.md) |\n| `get_detail` | [references/apis/get-detail.md](./references/apis/get-detail.md) |\n| `get_tracking_number_list` | [references/apis/get-tracking-number-list.md](./references/apis/get-tracking-number-list.md) |\n| `get_transit_warehouse_list` | [references/apis/get-transit-warehouse-list.md](./references/apis/get-transit-warehouse-list.md) |\n| `get_unbind_order_list` | [references/apis/get-unbind-order-list.md](./references/apis/get-unbind-order-list.md) |\n| `get_waybill` | [references/apis/get-waybill.md](./references/apis/get-waybill.md) |\n| `unbind_first_mile_tracking_number` | [references/apis/unbind-first-mile-tracking-number.md](./references/apis/unbind-first-mile-tracking-number.md) |\n| `unbind_first_mile_tracking_number_all` | [references/apis/unbind-first-mile-tracking-number-all.md](./references/apis/unbind-first-mile-tracking-number-all.md) |\n\n模块总览 / Feedback 见 [references/api.md](./references/api.md)。\n\n## Usage Scenarios\n\n### 1. 绑定头程运单\n1. `get_unbind_order_list.py` 查未绑定订单\n2. `generate_and_bind_first_mile_tracking_number.py` 或分步 generate + bind\n3. `get_waybill.py` 获取面单\n\n## Not Applicable\n\n- 店铺授权 → `linkfox-shopee-store-auth`\n- 正向物流发货 → `linkfox-shopee-store-logistics`\n- SBS 仓储库存 → `linkfox-shopee-store-sbs`\n- 订单查询 → `linkfox-shopee-store-orders`\n\n## 积分消耗规则\n\n不消耗积分。\n\n**Feedback:** 见 `references/api.md`。\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-shopee-store-first-mile\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1786719807414\n}\n\nFile v1.0.5:references/api.md\n\n# linkfox-shopee-store-first-mile — 参数与字段参考\n\n> 单接口入参/响应说明已拆到 **`apis/`**（按 API 一份）；本文件保留模块总览与 Feedback。\nShopee **FirstMile 模块**全部 16 个 API，经 **`POST /shopee/developerProxy`** 转发。\n\n授权见 **`linkfox-shopee-store-auth`**。官方索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n## 通用约定\n\n- **path**：须 `api/v2/first_mile/...`\n- **标识**：通常传 **`shopId`**\n- **官方文档 URL 规则**：`https://open.shopee.com/documents/v2/v2.first_mile.{api}?module=96&type=1`\n\n---\n\n## FirstMile 模块总览\n\n| # | API | Method | path | 脚本 | 官方文档 |\n|---|-----|--------|------|------|----------|\n| 1 | bind_courier_delivery_first_mile_tracking_number | POST | `api/v2/first_mile/bind_courier_delivery_first_mile_tracking_number` | `bind_courier_delivery_first_mile_tracking_number.py` | [apis/bind-courier-delivery-first-mile-tracking-number.md](./apis/bind-courier-delivery-first-mile-tracking-number.md) |\n| 2 | bind_first_mile_tracking_number | POST | `api/v2/first_mile/bind_first_mile_tracking_number` | `bind_first_mile_tracking_number.py` | [apis/bind-first-mile-tracking-number.md](./apis/bind-first-mile-tracking-number.md) |\n| 3 | generate_and_bind_first_mile_tracking_number | POST | `api/v2/first_mile/generate_and_bind_first_mile_tracking_number` | `generate_and_bind_first_mile_tracking_number.py` | [apis/generate-and-bind-first-mile-tracking-number.md](./apis/generate-and-bind-first-mile-tracking-number.md) |\n| 4 | generate_first_mile_tracking_number | POST | `api/v2/first_mile/generate_first_mile_tracking_number` | `generate_first_mile_tracking_number.py` | [apis/generate-first-mile-tracking-number.md](./apis/generate-first-mile-tracking-number.md) |\n| 5 | get_channel_list | GET | `api/v2/first_mile/get_channel_list` | `get_channel_list.py` | [apis/get-channel-list.md](./apis/get-channel-list.md) |\n| 6 | get_courier_delivery_channel_list | GET | `api/v2/first_mile/get_courier_delivery_channel_list` | `get_courier_delivery_channel_list.py` | [apis/get-courier-delivery-channel-list.md](./apis/get-courier-delivery-channel-list.md) |\n| 7 | get_courier_delivery_detail | GET | `api/v2/first_mile/get_courier_delivery_detail` | `get_courier_delivery_detail.py` | [apis/get-courier-delivery-detail.md](./apis/get-courier-delivery-detail.md) |\n| 8 | get_courier_delivery_tracking_number_list | GET | `api/v2/first_mile/get_courier_delivery_tracking_number_list` | `get_courier_delivery_tracking_number_list.py` | [apis/get-courier-delivery-tracking-number-list.md](./apis/get-courier-delivery-tracking-number-list.md) |\n| 9 | get_courier_delivery_waybill | GET | `api/v2/first_mile/get_courier_delivery_waybill` | `get_courier_delivery_waybill.py` | [apis/get-courier-delivery-waybill.md](./apis/get-courier-delivery-waybill.md) |\n| 10 | get_detail | GET | `api/v2/first_mile/get_detail` | `get_detail.py` | [apis/get-detail.md](./apis/get-detail.md) |\n| 11 | get_tracking_number_list | GET | `api/v2/first_mile/get_tracking_number_list` | `get_tracking_number_list.py` | [apis/get-tracking-number-list.md](./apis/get-tracking-number-list.md) |\n| 12 | get_transit_warehouse_list | GET | `api/v2/first_mile/get_transit_warehouse_list` | `get_transit_warehouse_list.py` | [apis/get-transit-warehouse-list.md](./apis/get-transit-warehouse-list.md) |\n| 13 | get_unbind_order_list | GET | `api/v2/first_mile/get_unbind_order_list` | `get_unbind_order_list.py` | [apis/get-unbind-order-list.md](./apis/get-unbind-order-list.md) |\n| 14 | get_waybill | GET | `api/v2/first_mile/get_waybill` | `get_waybill.py` | [apis/get-waybill.md](./apis/get-waybill.md) |\n| 15 | unbind_first_mile_tracking_number | POST | `api/v2/first_mile/unbind_first_mile_tracking_number` | `unbind_first_mile_tracking_number.py` | [apis/unbind-first-mile-tracking-number.md](./apis/unbind-first-mile-tracking-number.md) |\n| 16 | unbind_first_mile_tracking_number_all | POST | `api/v2/first_mile/unbind_first_mile_tracking_number_all` | `unbind_first_mile_tracking_number_all.py` | [apis/unbind-first-mile-tracking-number-all.md](./apis/unbind-first-mile-tracking-number-all.md) |\n通用入口：`first_mile_api.py`（JSON 含 `\"api\": \"<上表 API 名>\"`）。\n\n---\n\n## 常用接口说明\n\n### 头程绑定\n\n| API | 要点 |\n|-----|------|\n| `get_unbind_order_list` | 未绑定头程运单的订单 — [apis/get-unbind-order-list.md](./apis/get-unbind-order-list.md) |\n| `generate_first_mile_tracking_number` | 生成头程运单号 — [apis/generate-first-mile-tracking-number.md](./apis/generate-first-mile-tracking-number.md) |\n| `bind_first_mile_tracking_number` | 绑定订单到头程运单 — [apis/bind-first-mile-tracking-number.md](./apis/bind-first-mile-tracking-number.md) |\n| `generate_and_bind_first_mile_tracking_number` | 一步生成并绑定 — [apis/generate-and-bind-first-mile-tracking-number.md](./apis/generate-and-bind-first-mile-tracking-number.md) |\n| `unbind_first_mile_tracking_number` | 解绑 — [apis/unbind-first-mile-tracking-number.md](./apis/unbind-first-mile-tracking-number.md) |\n| `get_tracking_number_list` | 头程运单号列表 — [apis/get-tracking-number-list.md](./apis/get-tracking-number-list.md) |\n| `get_waybill` | 头程面单 — [apis/get-waybill.md](./apis/get-waybill.md) |\n\n### 渠道与仓库\n\n| API | 要点 |\n|-----|------|\n| `get_channel_list` | 头程渠道 — [apis/get-channel-list.md](./apis/get-channel-list.md) |\n| `get_transit_warehouse_list` | 中转仓列表 — [apis/get-transit-warehouse-list.md](./apis/get-transit-warehouse-list.md) |\n| `get_courier_delivery_channel_list` | 快递配送渠道 — [apis/get-courier-delivery-channel-list.md](./apis/get-courier-delivery-channel-list.md) |\n\n### 快递配送头程\n\n| API | 要点 |\n|-----|------|\n| `bind_courier_delivery_first_mile_tracking_number` | 绑定快递头程运单 — [apis/bind-courier-delivery-first-mile-tracking-number.md](./apis/bind-courier-delivery-first-mile-tracking-number.md) |\n| `get_courier_delivery_detail` | 快递头程详情 — [apis/get-courier-delivery-detail.md](./apis/get-courier-delivery-detail.md) |\n| `get_courier_delivery_waybill` | 快递头程面单 — [apis/get-courier-delivery-waybill.md](./apis/get-courier-delivery-waybill.md) |\n| `get_courier_delivery_tracking_number_list` | 快递头程运单列表 — [apis/get-courier-delivery-tracking-number-list.md](./apis/get-courier-delivery-tracking-number-list.md) |\n\n---\n\n## curl 示例\n\n```bash\ncurl -X POST ${LINKFOX_TOOL_GATEWAY}/shopee/developerProxy \\\n  -H \"Authorization: $LINKFOX_AGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"path\": \"api/v2/first_mile/get_unbind_order_list\",\n    \"method\": \"GET\",\n    \"accessToken\": \"xxx\",\n    \"shopId\": \"67890\"\n  }'\n```\n\n> 认证：从 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY` 任一环境变量读取（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）。请求地址使用 `${LINKFOX_TOOL_GATEWAY}`（回退到 `SHOPEE_API_BASE_URL`，再回退到 `https://tool-gateway.linkfox.com`）。\n\n---\n\n## Feedback API\n\n```bash\ncurl -X POST https://skill-api.linkfox.com/api/v1/public/feedback \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"skillName\":\"linkfox-shopee-store-first-mile\",\"sentiment\":\"POSITIVE\",\n       \"category\":\"OTHER\",\"content\":\"头程订单查询正常\"}'\n```\n\nFile v1.0.5:references/apis/bind-courier-delivery-first-mile-tracking-number.md\n\n# bind_courier_delivery_first_mile_tracking_number\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/bind_courier_delivery_first_mile_tracking_number.py` |\n| Method / path | POST `api/v2/first_mile/bind_courier_delivery_first_mile_tracking_number` |\n| 官方文档 | [bind_courier_delivery_first_mile_tracking_number](https://open.shopee.com/documents/v2/v2.first_mile.bind_courier_delivery_first_mile_tracking_number?module=96&type=1) |\n| 用途 | Bind courier delivery first-mile tracking |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**POST**\n- POST：传 `body` / `requestBody`，或把 `body_fields` 列在 JSON 顶层\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Bind courier delivery first-mile tracking\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/bind_courier_delivery_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"bind_courier_delivery_first_mile_tracking_number\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`bindCourierDeliveryFirstMileTrackingNumber`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.5:references/apis/bind-first-mile-tracking-number.md\n\n# bind_first_mile_tracking_number\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/bind_first_mile_tracking_number.py` |\n| Method / path | POST `api/v2/first_mile/bind_first_mile_tracking_number` |\n| 官方文档 | [bind_first_mile_tracking_number](https://open.shopee.com/documents/v2/v2.first_mile.bind_first_mile_tracking_number?module=96&type=1) |\n| 用途 | Bind orders to first-mile tracking number |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**POST**\n- POST：传 `body` / `requestBody`，或把 `body_fields` 列在 JSON 顶层\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Bind orders to first-mile tracking number\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/bind_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"bind_first_mile_tracking_number\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`bindFirstMileTrackingNumber`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.5:references/apis/generate-and-bind-first-mile-tracking-number.md\n\n# generate_and_bind_first_mile_tracking_number\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/generate_and_bind_first_mile_tracking_number.py` |\n| Method / path | POST `api/v2/first_mile/generate_and_bind_first_mile_tracking_number` |\n| 官方文档 | [generate_and_bind_first_mile_tracking_number](https://open.shopee.com/documents/v2/v2.first_mile.generate_and_bind_first_mile_tracking_number?module=96&type=1) |\n| 用途 | Generate and bind tracking in one step |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**POST**\n- POST：传 `body` / `requestBody`，或把 `body_fields` 列在 JSON 顶层\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Generate and bind tracking in one step\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/generate_and_bind_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"generate_and_bind_first_mile_tracking_number\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`generateAndBindFirstMileTrackingNumber`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.5:references/apis/generate-first-mile-tracking-number.md\n\n# generate_first_mile_tracking_number\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/generate_first_mile_tracking_number.py` |\n| Method / path | POST `api/v2/first_mile/generate_first_mile_tracking_number` |\n| 官方文档 | [generate_first_mile_tracking_number](https://open.shopee.com/documents/v2/v2.first_mile.generate_first_mile_tracking_number?module=96&type=1) |\n| 用途 | Generate first-mile tracking number; pass body |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**POST**\n- POST：传 `body` / `requestBody`，或把 `body_fields` 列在 JSON 顶层\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Generate first-mile tracking number; pass body\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/generate_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"generate_first_mile_tracking_number\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`generateFirstMileTrackingNumber`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.5:references/apis/get-channel-list.md\n\n# get_channel_list\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_channel_list.py` |\n| Method / path | GET `api/v2/first_mile/get_channel_list` |\n| 官方文档 | [get_channel_list](https://open.shopee.com/documents/v2/v2.first_mile.get_channel_list?module=96&type=1) |\n| 用途 | First-mile channel list |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：First-mile channel list\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_channel_list.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_channel_list\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getChannelList`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.5:references/apis/get-courier-delivery-channel-list.md\n\n# get_courier_delivery_channel_list\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_courier_delivery_channel_list.py` |\n| Method / path | GET `api/v2/first_mile/get_courier_delivery_channel_list` |\n| 官方文档 | [get_courier_delivery_channel_list](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_channel_list?module=96&type=1) |\n| 用途 | Courier delivery channel list |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Courier delivery channel list\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_courier_delivery_channel_list.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_courier_delivery_channel_list\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getCourierDeliveryChannelList`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.5:references/apis/get-courier-delivery-detail.md\n\n# get_courier_delivery_detail\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_courier_delivery_detail.py` |\n| Method / path | GET `api/v2/first_mile/get_courier_delivery_detail` |\n| 官方文档 | [get_courier_delivery_detail](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_detail?module=96&type=1) |\n| 用途 | Courier delivery first-mile detail |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Courier delivery first-mile detail\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_courier_delivery_detail.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_courier_delivery_detail\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getCourierDeliveryDetail`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.5:references/apis/get-courier-delivery-tracking-number-list.md\n\n# get_courier_delivery_tracking_number_list\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_courier_delivery_tracking_number_list.py` |\n| Method / path | GET `api/v2/first_mile/get_courier_delivery_tracking_number_list` |\n| 官方文档 | [get_courier_delivery_tracking_number_list](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_tracking_number_list?module=96&type=1) |\n| 用途 | Courier delivery tracking number list |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Courier delivery tracking number list\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_courier_delivery_tracking_number_list.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_courier_delivery_tracking_number_list\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getCourierDeliveryTrackingNumberList`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.5:references/apis/get-courier-delivery-waybill.md\n\n# get_courier_delivery_waybill\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_courier_delivery_waybill.py` |\n| Method / path | GET `api/v2/first_mile/get_courier_delivery_waybill` |\n| 官方文档 | [get_courier_delivery_waybill](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_waybill?module=96&type=1) |\n| 用途 | Courier delivery waybill |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Courier delivery waybill\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_courier_delivery_waybill.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_courier_delivery_waybill\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getCourierDeliveryWaybill`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nArchive v1.0.4: 43 files, 52507 bytes\n\nFiles: references/api.md (7491b), references/apis/bind-courier-delivery-first-mile-tracking-number.md (1664b), references/apis/bind-first-mile-tracking-number.md (1530b), references/apis/generate-and-bind-first-mile-tracking-number.md (1626b), references/apis/generate-first-mile-tracking-number.md (1572b), references/apis/get-channel-list.md (1382b), references/apis/get-courier-delivery-channel-list.md (1528b), references/apis/get-courier-delivery-detail.md (1491b), references/apis/get-courier-delivery-tracking-number-list.md (1607b), references/apis/get-courier-delivery-waybill.md (1479b), references/apis/get-detail.md (1379b), references/apis/get-tracking-number-list.md (1463b), references/apis/get-transit-warehouse-list.md (1459b), references/apis/get-unbind-order-list.md (1461b), references/apis/get-waybill.md (1341b), references/apis/unbind-first-mile-tracking-number-all.md (1571b), references/apis/unbind-first-mile-tracking-number.md (1554b), references/onboarding.md (2046b), scripts/_first_mile_api_runner.py (4315b), scripts/_first_mile_endpoints.py (4802b), scripts/_shopee_first_mile_common.py (11601b), scripts/bind_courier_delivery_first_mile_tracking_number.py (887b), scripts/bind_first_mile_tracking_number.py (785b), scripts/check_auth_dependency.py (3989b), scripts/first_mile_api.py (1074b), scripts/generate_and_bind_first_mile_tracking_number.py (863b), scripts/generate_first_mile_tracking_number.py (809b), scripts/get_channel_list.py (695b), scripts/get_courier_delivery_channel_list.py (797b), scripts/get_courier_delivery_detail.py (761b), scripts/get_courier_delivery_tracking_number_list.py (845b), scripts/get_courier_delivery_waybill.py (767b), scripts/get_detail.py (659b), scripts/get_tracking_number_list.py (743b), scripts/get_transit_warehouse_list.py (755b), scripts/get_unbind_order_list.py (725b), scripts/get_waybill.py (665b), scripts/onboarding.py (24089b), scripts/unbind_first_mile_tracking_number_all.py (821b), scripts/unbind_first_mile_tracking_number.py (797b), skill-card.md (3084b), SKILL.md (7029b), _meta.json (150b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: linkfox-shopee-store-first-mile\ndescription: Shopee（虾皮）头程物流 FirstMile（与 linkfox-shopee-store-auth 同系列），经 /shopee/developerProxy 转发 Shopee Open API FirstMile 模块全部 16 个接口：get_unbind_order_list、generate_first_mile_tracking_number、bind_first_mile_tracking_number、get_waybill、get_channel_list 等。当用户提到 Shopee 头程、FirstMile、头程运单、绑定头程、first mile tracking、中转仓、get_unbind_order_list 时触发。即使未明确提及\"头程\"，只要涉及已授权 Shopee 店铺的头程运单绑定或面单，也应触发。\n---\n\n# Shopee 头程 FirstMile\n\nShopee Open Platform **FirstMile 模块**（16 个 API）。**依赖 `linkfox-shopee-store-auth`** 选店；经 **`POST /shopee/developerProxy`** 传入 `shopId`（或 `merchantId`），由服务端解析 token 转发（`path` 须 `api/v2/first_mile/...`）。\n\n## 调用方式\n\n- **API 端点**：`POST /shopee/developerProxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/first_mile_api.py '{\"api\": \"get_unbind_order_list\", ...}' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和积分问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## 官方参考\n\nFirstMile 模块索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n---\n\n## Prerequisites\n\n1. 运行 `python scripts/check_auth_dependency.py`；exit code **42** → 先安装 **`linkfox-shopee-store-auth`**。\n2. **头程 vs 正向物流**：本 skill 为跨境**头程**（First Mile）；店铺发货/面单见 `linkfox-shopee-store-logistics`。\n\n## 可用脚本（16 个 API）\n\n| 分组 | 脚本 |\n|------|------|\n| 绑定/解绑 | `get_unbind_order_list.py`、`generate_first_mile_tracking_number.py`、`bind_first_mile_tracking_number.py`、`generate_and_bind_first_mile_tracking_number.py`、`unbind_first_mile_tracking_number.py` |\n| 运单/面单 | `get_tracking_number_list.py`、`get_waybill.py`、`get_detail.py` |\n| 渠道/仓库 | `get_channel_list.py`、`get_transit_warehouse_list.py`、`get_courier_delivery_channel_list.py` |\n| 快递头程 | `bind_courier_delivery_first_mile_tracking_number.py`、`get_courier_delivery_detail.py`、`get_courier_delivery_waybill.py` 等 |\n| 通用入口 | `first_mile_api.py` |\n\n完整列表见 `references/api.md`。\n\n## 接口说明（按 API）\n\n入参与响应细节放在 `references/apis/`，SKILL 只保留索引。\n\n| API | 说明文档 |\n|-----|----------|\n| `bind_courier_delivery_first_mile_tracking_number` | [references/apis/bind-courier-delivery-first-mile-tracking-number.md](./references/apis/bind-courier-delivery-first-mile-tracking-number.md) |\n| `bind_first_mile_tracking_number` | [references/apis/bind-first-mile-tracking-number.md](./references/apis/bind-first-mile-tracking-number.md) |\n| `generate_and_bind_first_mile_tracking_number` | [references/apis/generate-and-bind-first-mile-tracking-number.md](./references/apis/generate-and-bind-first-mile-tracking-number.md) |\n| `generate_first_mile_tracking_number` | [references/apis/generate-first-mile-tracking-number.md](./references/apis/generate-first-mile-tracking-number.md) |\n| `get_channel_list` | [references/apis/get-channel-list.md](./references/apis/get-channel-list.md) |\n| `get_courier_delivery_channel_list` | [references/apis/get-courier-delivery-channel-list.md](./references/apis/get-courier-delivery-channel-list.md) |\n| `get_courier_delivery_detail` | [references/apis/get-courier-delivery-detail.md](./references/apis/get-courier-delivery-detail.md) |\n| `get_courier_delivery_tracking_number_list` | [references/apis/get-courier-delivery-tracking-number-list.md](./references/apis/get-courier-delivery-tracking-number-list.md) |\n| `get_courier_delivery_waybill` | [references/apis/get-courier-delivery-waybill.md](./references/apis/get-courier-delivery-waybill.md) |\n| `get_detail` | [references/apis/get-detail.md](./references/apis/get-detail.md) |\n| `get_tracking_number_list` | [references/apis/get-tracking-number-list.md](./references/apis/get-tracking-number-list.md) |\n| `get_transit_warehouse_list` | [references/apis/get-transit-warehouse-list.md](./references/apis/get-transit-warehouse-list.md) |\n| `get_unbind_order_list` | [references/apis/get-unbind-order-list.md](./references/apis/get-unbind-order-list.md) |\n| `get_waybill` | [references/apis/get-waybill.md](./references/apis/get-waybill.md) |\n| `unbind_first_mile_tracking_number` | [references/apis/unbind-first-mile-tracking-number.md](./references/apis/unbind-first-mile-tracking-number.md) |\n| `unbind_first_mile_tracking_number_all` | [references/apis/unbind-first-mile-tracking-number-all.md](./references/apis/unbind-first-mile-tracking-number-all.md) |\n\n模块总览 / Feedback 见 [references/api.md](./references/api.md)。\n\n## Usage Scenarios\n\n### 1. 绑定头程运单\n1. `get_unbind_order_list.py` 查未绑定订单\n2. `generate_and_bind_first_mile_tracking_number.py` 或分步 generate + bind\n3. `get_waybill.py` 获取面单\n\n## Not Applicable\n\n- 店铺授权 → `linkfox-shopee-store-auth`\n- 正向物流发货 → `linkfox-shopee-store-logistics`\n- SBS 仓储库存 → `linkfox-shopee-store-sbs`\n- 订单查询 → `linkfox-shopee-store-orders`\n\n## 积分消耗规则\n\n不消耗积分。\n\n**Feedback:** 见 `references/api.md`。\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-shopee-store-first-mile\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1786100454505\n}\n\nFile v1.0.4:references/api.md\n\n# linkfox-shopee-store-first-mile — 参数与字段参考\n\n> 单接口入参/响应说明已拆到 **`apis/`**（按 API 一份）；本文件保留模块总览与 Feedback。\nShopee **FirstMile 模块**全部 16 个 API，经 **`POST /shopee/developerProxy`** 转发。\n\n授权见 **`linkfox-shopee-store-auth`**。官方索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n## 通用约定\n\n- **path**：须 `api/v2/first_mile/...`\n- **标识**：通常传 **`shopId`**\n- **官方文档 URL 规则**：`https://open.shopee.com/documents/v2/v2.first_mile.{api}?module=96&type=1`\n\n---\n\n## FirstMile 模块总览\n\n| # | API | Method | path | 脚本 | 官方文档 |\n|---|-----|--------|------|------|----------|\n| 1 | bind_courier_delivery_first_mile_tracking_number | POST | `api/v2/first_mile/bind_courier_delivery_first_mile_tracking_number` | `bind_courier_delivery_first_mile_tracking_number.py` | [apis/bind-courier-delivery-first-mile-tracking-number.md](./apis/bind-courier-delivery-first-mile-tracking-number.md) |\n| 2 | bind_first_mile_tracking_number | POST | `api/v2/first_mile/bind_first_mile_tracking_number` | `bind_first_mile_tracking_number.py` | [apis/bind-first-mile-tracking-number.md](./apis/bind-first-mile-tracking-number.md) |\n| 3 | generate_and_bind_first_mile_tracking_number | POST | `api/v2/first_mile/generate_and_bind_first_mile_tracking_number` | `generate_and_bind_first_mile_tracking_number.py` | [apis/generate-and-bind-first-mile-tracking-number.md](./apis/generate-and-bind-first-mile-tracking-number.md) |\n| 4 | generate_first_mile_tracking_number | POST | `api/v2/first_mile/generate_first_mile_tracking_number` | `generate_first_mile_tracking_number.py` | [apis/generate-first-mile-tracking-number.md](./apis/generate-first-mile-tracking-number.md) |\n| 5 | get_channel_list | GET | `api/v2/first_mile/get_channel_list` | `get_channel_list.py` | [apis/get-channel-list.md](./apis/get-channel-list.md) |\n| 6 | get_courier_delivery_channel_list | GET | `api/v2/first_mile/get_courier_delivery_channel_list` | `get_courier_delivery_channel_list.py` | [apis/get-courier-delivery-channel-list.md](./apis/get-courier-delivery-channel-list.md) |\n| 7 | get_courier_delivery_detail | GET | `api/v2/first_mile/get_courier_delivery_detail` | `get_courier_delivery_detail.py` | [apis/get-courier-delivery-detail.md](./apis/get-courier-delivery-detail.md) |\n| 8 | get_courier_delivery_tracking_number_list | GET | `api/v2/first_mile/get_courier_delivery_tracking_number_list` | `get_courier_delivery_tracking_number_list.py` | [apis/get-courier-delivery-tracking-number-list.md](./apis/get-courier-delivery-tracking-number-list.md) |\n| 9 | get_courier_delivery_waybill | GET | `api/v2/first_mile/get_courier_delivery_waybill` | `get_courier_delivery_waybill.py` | [apis/get-courier-delivery-waybill.md](./apis/get-courier-delivery-waybill.md) |\n| 10 | get_detail | GET | `api/v2/first_mile/get_detail` | `get_detail.py` | [apis/get-detail.md](./apis/get-detail.md) |\n| 11 | get_tracking_number_list | GET | `api/v2/first_mile/get_tracking_number_list` | `get_tracking_number_list.py` | [apis/get-tracking-number-list.md](./apis/get-tracking-number-list.md) |\n| 12 | get_transit_warehouse_list | GET | `api/v2/first_mile/get_transit_warehouse_list` | `get_transit_warehouse_list.py` | [apis/get-transit-warehouse-list.md](./apis/get-transit-warehouse-list.md) |\n| 13 | get_unbind_order_list | GET | `api/v2/first_mile/get_unbind_order_list` | `get_unbind_order_list.py` | [apis/get-unbind-order-list.md](./apis/get-unbind-order-list.md) |\n| 14 | get_waybill | GET | `api/v2/first_mile/get_waybill` | `get_waybill.py` | [apis/get-waybill.md](./apis/get-waybill.md) |\n| 15 | unbind_first_mile_tracking_number | POST | `api/v2/first_mile/unbind_first_mile_tracking_number` | `unbind_first_mile_tracking_number.py` | [apis/unbind-first-mile-tracking-number.md](./apis/unbind-first-mile-tracking-number.md) |\n| 16 | unbind_first_mile_tracking_number_all | POST | `api/v2/first_mile/unbind_first_mile_tracking_number_all` | `unbind_first_mile_tracking_number_all.py` | [apis/unbind-first-mile-tracking-number-all.md](./apis/unbind-first-mile-tracking-number-all.md) |\n通用入口：`first_mile_api.py`（JSON 含 `\"api\": \"<上表 API 名>\"`）。\n\n---\n\n## 常用接口说明\n\n### 头程绑定\n\n| API | 要点 |\n|-----|------|\n| `get_unbind_order_list` | 未绑定头程运单的订单 — [apis/get-unbind-order-list.md](./apis/get-unbind-order-list.md) |\n| `generate_first_mile_tracking_number` | 生成头程运单号 — [apis/generate-first-mile-tracking-number.md](./apis/generate-first-mile-tracking-number.md) |\n| `bind_first_mile_tracking_number` | 绑定订单到头程运单 — [apis/bind-first-mile-tracking-number.md](./apis/bind-first-mile-tracking-number.md) |\n| `generate_and_bind_first_mile_tracking_number` | 一步生成并绑定 — [apis/generate-and-bind-first-mile-tracking-number.md](./apis/generate-and-bind-first-mile-tracking-number.md) |\n| `unbind_first_mile_tracking_number` | 解绑 — [apis/unbind-first-mile-tracking-number.md](./apis/unbind-first-mile-tracking-number.md) |\n| `get_tracking_number_list` | 头程运单号列表 — [apis/get-tracking-number-list.md](./apis/get-tracking-number-list.md) |\n| `get_waybill` | 头程面单 — [apis/get-waybill.md](./apis/get-waybill.md) |\n\n### 渠道与仓库\n\n| API | 要点 |\n|-----|------|\n| `get_channel_list` | 头程渠道 — [apis/get-channel-list.md](./apis/get-channel-list.md) |\n| `get_transit_warehouse_list` | 中转仓列表 — [apis/get-transit-warehouse-list.md](./apis/get-transit-warehouse-list.md) |\n| `get_courier_delivery_channel_list` | 快递配送渠道 — [apis/get-courier-delivery-channel-list.md](./apis/get-courier-delivery-channel-list.md) |\n\n### 快递配送头程\n\n| API | 要点 |\n|-----|------|\n| `bind_courier_delivery_first_mile_tracking_number` | 绑定快递头程运单 — [apis/bind-courier-delivery-first-mile-tracking-number.md](./apis/bind-courier-delivery-first-mile-tracking-number.md) |\n| `get_courier_delivery_detail` | 快递头程详情 — [apis/get-courier-delivery-detail.md](./apis/get-courier-delivery-detail.md) |\n| `get_courier_delivery_waybill` | 快递头程面单 — [apis/get-courier-delivery-waybill.md](./apis/get-courier-delivery-waybill.md) |\n| `get_courier_delivery_tracking_number_list` | 快递头程运单列表 — [apis/get-courier-delivery-tracking-number-list.md](./apis/get-courier-delivery-tracking-number-list.md) |\n\n---\n\n## curl 示例\n\n```bash\ncurl -X POST ${LINKFOX_TOOL_GATEWAY}/shopee/developerProxy \\\n  -H \"Authorization: $LINKFOX_AGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"path\": \"api/v2/first_mile/get_unbind_order_list\",\n    \"method\": \"GET\",\n    \"accessToken\": \"xxx\",\n    \"shopId\": \"67890\"\n  }'\n```\n\n> 认证：从 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY` 任一环境变量读取（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）。请求地址使用 `${LINKFOX_TOOL_GATEWAY}`（回退到 `SHOPEE_API_BASE_URL`，再回退到 `https://tool-gateway.linkfox.com`）。\n\n---\n\n## Feedback API\n\n```bash\ncurl -X POST https://skill-api.linkfox.com/api/v1/public/feedback \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"skillName\":\"linkfox-shopee-store-first-mile\",\"sentiment\":\"POSITIVE\",\n       \"category\":\"OTHER\",\"content\":\"头程订单查询正常\"}'\n```\n\nFile v1.0.4:references/apis/bind-courier-delivery-first-mile-tracking-number.md\n\n# bind_courier_delivery_first_mile_tracking_number\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/bind_courier_delivery_first_mile_tracking_number.py` |\n| Method / path | POST `api/v2/first_mile/bind_courier_delivery_first_mile_tracking_number` |\n| 官方文档 | [bind_courier_delivery_first_mile_tracking_number](https://open.shopee.com/documents/v2/v2.first_mile.bind_courier_delivery_first_mile_tracking_number?module=96&type=1) |\n| 用途 | Bind courier delivery first-mile tracking |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**POST**\n- POST：传 `body` / `requestBody`，或把 `body_fields` 列在 JSON 顶层\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Bind courier delivery first-mile tracking\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/bind_courier_delivery_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"bind_courier_delivery_first_mile_tracking_number\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`bindCourierDeliveryFirstMileTrackingNumber`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.4:references/apis/bind-first-mile-tracking-number.md\n\n# bind_first_mile_tracking_number\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/bind_first_mile_tracking_number.py` |\n| Method / path | POST `api/v2/first_mile/bind_first_mile_tracking_number` |\n| 官方文档 | [bind_first_mile_tracking_number](https://open.shopee.com/documents/v2/v2.first_mile.bind_first_mile_tracking_number?module=96&type=1) |\n| 用途 | Bind orders to first-mile tracking number |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**POST**\n- POST：传 `body` / `requestBody`，或把 `body_fields` 列在 JSON 顶层\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Bind orders to first-mile tracking number\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/bind_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"bind_first_mile_tracking_number\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`bindFirstMileTrackingNumber`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.4:references/apis/generate-and-bind-first-mile-tracking-number.md\n\n# generate_and_bind_first_mile_tracking_number\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/generate_and_bind_first_mile_tracking_number.py` |\n| Method / path | POST `api/v2/first_mile/generate_and_bind_first_mile_tracking_number` |\n| 官方文档 | [generate_and_bind_first_mile_tracking_number](https://open.shopee.com/documents/v2/v2.first_mile.generate_and_bind_first_mile_tracking_number?module=96&type=1) |\n| 用途 | Generate and bind tracking in one step |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**POST**\n- POST：传 `body` / `requestBody`，或把 `body_fields` 列在 JSON 顶层\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Generate and bind tracking in one step\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/generate_and_bind_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"generate_and_bind_first_mile_tracking_number\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`generateAndBindFirstMileTrackingNumber`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.4:references/apis/generate-first-mile-tracking-number.md\n\n# generate_first_mile_tracking_number\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/generate_first_mile_tracking_number.py` |\n| Method / path | POST `api/v2/first_mile/generate_first_mile_tracking_number` |\n| 官方文档 | [generate_first_mile_tracking_number](https://open.shopee.com/documents/v2/v2.first_mile.generate_first_mile_tracking_number?module=96&type=1) |\n| 用途 | Generate first-mile tracking number; pass body |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**POST**\n- POST：传 `body` / `requestBody`，或把 `body_fields` 列在 JSON 顶层\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Generate first-mile tracking number; pass body\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/generate_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"generate_first_mile_tracking_number\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`generateFirstMileTrackingNumber`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.4:references/apis/get-channel-list.md\n\n# get_channel_list\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_channel_list.py` |\n| Method / path | GET `api/v2/first_mile/get_channel_list` |\n| 官方文档 | [get_channel_list](https://open.shopee.com/documents/v2/v2.first_mile.get_channel_list?module=96&type=1) |\n| 用途 | First-mile channel list |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：First-mile channel list\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_channel_list.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_channel_list\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getChannelList`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.4:references/apis/get-courier-delivery-channel-list.md\n\n# get_courier_delivery_channel_list\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_courier_delivery_channel_list.py` |\n| Method / path | GET `api/v2/first_mile/get_courier_delivery_channel_list` |\n| 官方文档 | [get_courier_delivery_channel_list](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_channel_list?module=96&type=1) |\n| 用途 | Courier delivery channel list |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Courier delivery channel list\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_courier_delivery_channel_list.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_courier_delivery_channel_list\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getCourierDeliveryChannelList`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.4:references/apis/get-courier-delivery-detail.md\n\n# get_courier_delivery_detail\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_courier_delivery_detail.py` |\n| Method / path | GET `api/v2/first_mile/get_courier_delivery_detail` |\n| 官方文档 | [get_courier_delivery_detail](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_detail?module=96&type=1) |\n| 用途 | Courier delivery first-mile detail |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Courier delivery first-mile detail\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_courier_delivery_detail.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_courier_delivery_detail\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getCourierDeliveryDetail`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.4:references/apis/get-courier-delivery-tracking-number-list.md\n\n# get_courier_delivery_tracking_number_list\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_courier_delivery_tracking_number_list.py` |\n| Method / path | GET `api/v2/first_mile/get_courier_delivery_tracking_number_list` |\n| 官方文档 | [get_courier_delivery_tracking_number_list](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_tracking_number_list?module=96&type=1) |\n| 用途 | Courier delivery tracking number list |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Courier delivery tracking number list\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_courier_delivery_tracking_number_list.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_courier_delivery_tracking_number_list\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getCourierDeliveryTrackingNumberList`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nFile v1.0.4:references/apis/get-courier-delivery-waybill.md\n\n# get_courier_delivery_waybill\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/get_courier_delivery_waybill.py` |\n| Method / path | GET `api/v2/first_mile/get_courier_delivery_waybill` |\n| 官方文档 | [get_courier_delivery_waybill](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_waybill?module=96&type=1) |\n| 用途 | Courier delivery waybill |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**GET**\n- GET：业务字段放 JSON **顶层**，runner 拼进 `queryString`（不含 `?`）\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Courier delivery waybill\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/get_courier_delivery_waybill.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"get_courier_delivery_waybill\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`getCourierDeliveryWaybill`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准\n\nArchive v1.0.3: 25 files, 25269 bytes\n\nFiles: references/api.md (6543b), scripts/_first_mile_api_runner.py (4302b), scripts/_first_mile_endpoints.py (4802b), scripts/_shopee_first_mile_common.py (11415b), scripts/bind_courier_delivery_first_mile_tracking_number.py (930b), scripts/bind_first_mile_tracking_number.py (828b), scripts/check_auth_dependency.py (3989b), scripts/first_mile_api.py (1074b), scripts/generate_and_bind_first_mile_tracking_number.py (906b), scripts/generate_first_mile_tracking_number.py (852b), scripts/get_channel_list.py (738b), scripts/get_courier_delivery_channel_list.py (840b), scripts/get_courier_delivery_detail.py (804b), scripts/get_courier_delivery_tracking_number_list.py (888b), scripts/get_courier_delivery_waybill.py (810b), scripts/get_detail.py (702b), scripts/get_tracking_number_list.py (786b), scripts/get_transit_warehouse_list.py (798b), scripts/get_unbind_order_list.py (768b), scripts/get_waybill.py (708b), scripts/unbind_first_mile_tracking_number_all.py (864b), scripts/unbind_first_mile_tracking_number.py (840b), skill-card.md (3252b), SKILL.md (5120b), _meta.json (150b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: linkfox-shopee-store-first-mile\ndescription: Shopee（虾皮）头程物流 FirstMile（与 linkfox-shopee-store-auth 同系列），经 /shopee/developerProxy 转发 Shopee Open API FirstMile 模块全部 16 个接口：get_unbind_order_list、generate_first_mile_tracking_number、bind_first_mile_tracking_number、get_waybill、get_channel_list 等。当用户提到 Shopee 头程、FirstMile、头程运单、绑定头程、first mile tracking、中转仓、get_unbind_order_list 时触发。即使未明确提及\"头程\"，只要涉及已授权 Shopee 店铺的头程运单绑定或面单，也应触发。\n---\n\n# Shopee 头程 FirstMile\n\nShopee Open Platform **FirstMile 模块**（16 个 API）。**依赖 `linkfox-shopee-store-auth`**：先取 `accessToken`，再经 **`POST /shopee/developerProxy`** 转发（`path` 须 `api/v2/first_mile/...`）。\n\n## 调用方式\n\n- **API 端点**：`POST /shopee/developerProxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/first_mile_api.py '{\"api\": \"get_unbind_order_list\", ...}' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和积分问题\n发生以下异常情况时，采用以下措施来处理：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n### 措施\n- 优先采用skill内的 onboarding.md 引导解决问题。\n- 如找不到 onboarding.md 文件，则加载 /linkfox-onboarding 这个skill并根据它的引导来处理。如未安装请先安装：\n    - 下载 https://agent-files.linkfox.com/skills/linkfox-onboarding/release.zip，解压后安装这个skill。如需用户授权才可下载，要询问用户获得授权，你不能自己放弃下载。\n- 兜底措施：仅当前面两个措施经过所有努力都走不通时，才提示用户依据 https://skill.linkfox.com/linkfoxskills/guide.htm 指引获取API Key，或去 https://os.linkfox.com/ 补充积分。\n\n## 官方参考\n\nFirstMile 模块索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n---\n\n## Prerequisites\n\n1. 运行 `python scripts/check_auth_dependency.py`；exit code **42** → 先安装 **`linkfox-shopee-store-auth`**。\n2. **头程 vs 正向物流**：本 skill 为跨境**头程**（First Mile）；店铺发货/面单见 `linkfox-shopee-store-logistics`。\n\n## 可用脚本（16 个 API）\n\n| 分组 | 脚本 |\n|------|------|\n| 绑定/解绑 | `get_unbind_order_list.py`、`generate_first_mile_tracking_number.py`、`bind_first_mile_tracking_number.py`、`generate_and_bind_first_mile_tracking_number.py`、`unbind_first_mile_tracking_number.py` |\n| 运单/面单 | `get_tracking_number_list.py`、`get_waybill.py`、`get_detail.py` |\n| 渠道/仓库 | `get_channel_list.py`、`get_transit_warehouse_list.py`、`get_courier_delivery_channel_list.py` |\n| 快递头程 | `bind_courier_delivery_first_mile_tracking_number.py`、`get_courier_delivery_detail.py`、`get_courier_delivery_waybill.py` 等 |\n| 通用入口 | `first_mile_api.py` |\n\n完整列表见 `references/api.md`。\n\n## Usage Scenarios\n\n### 1. 绑定头程运单\n1. `get_unbind_order_list.py` 查未绑定订单\n2. `generate_and_bind_first_mile_tracking_number.py` 或分步 generate + bind\n3. `get_waybill.py` 获取面单\n\n## Not Applicable\n\n- 店铺授权 → `linkfox-shopee-store-auth`\n- 正向物流发货 → `linkfox-shopee-store-logistics`\n- SBS 仓储库存 → `linkfox-shopee-store-sbs`\n- 订单查询 → `linkfox-shopee-store-orders`\n\n## 积分消耗规则\n\n不消耗积分。\n\n**Feedback:** 见 `references/api.md`。\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-shopee-store-first-mile\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1783945252023\n}\n\nFile v1.0.3:references/api.md\n\n# linkfox-shopee-store-first-mile — 参数与字段参考\n\nShopee **FirstMile 模块**全部 16 个 API，经 **`POST /shopee/developerProxy`** 转发。\n\n授权见 **`linkfox-shopee-store-auth`**。官方索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n## 通用约定\n\n- **path**：须 `api/v2/first_mile/...`\n- **标识**：通常传 **`shopId`**\n- **官方文档 URL 规则**：`https://open.shopee.com/documents/v2/v2.first_mile.{api}?module=96&type=1`\n\n---\n\n## FirstMile 模块总览\n\n| # | API | Method | path | 脚本 | 官方文档 |\n|---|-----|--------|------|------|----------|\n| 1 | bind_courier_delivery_first_mile_tracking_number | POST | `api/v2/first_mile/bind_courier_delivery_first_mile_tracking_number` | `bind_courier_delivery_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.bind_courier_delivery_first_mile_tracking_number?module=96&type=1) |\n| 2 | bind_first_mile_tracking_number | POST | `api/v2/first_mile/bind_first_mile_tracking_number` | `bind_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.bind_first_mile_tracking_number?module=96&type=1) |\n| 3 | generate_and_bind_first_mile_tracking_number | POST | `api/v2/first_mile/generate_and_bind_first_mile_tracking_number` | `generate_and_bind_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.generate_and_bind_first_mile_tracking_number?module=96&type=1) |\n| 4 | generate_first_mile_tracking_number | POST | `api/v2/first_mile/generate_first_mile_tracking_number` | `generate_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.generate_first_mile_tracking_number?module=96&type=1) |\n| 5 | get_channel_list | GET | `api/v2/first_mile/get_channel_list` | `get_channel_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_channel_list?module=96&type=1) |\n| 6 | get_courier_delivery_channel_list | GET | `api/v2/first_mile/get_courier_delivery_channel_list` | `get_courier_delivery_channel_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_channel_list?module=96&type=1) |\n| 7 | get_courier_delivery_detail | GET | `api/v2/first_mile/get_courier_delivery_detail` | `get_courier_delivery_detail.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_detail?module=96&type=1) |\n| 8 | get_courier_delivery_tracking_number_list | GET | `api/v2/first_mile/get_courier_delivery_tracking_number_list` | `get_courier_delivery_tracking_number_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_tracking_number_list?module=96&type=1) |\n| 9 | get_courier_delivery_waybill | GET | `api/v2/first_mile/get_courier_delivery_waybill` | `get_courier_delivery_waybill.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_waybill?module=96&type=1) |\n| 10 | get_detail | GET | `api/v2/first_mile/get_detail` | `get_detail.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_detail?module=96&type=1) |\n| 11 | get_tracking_number_list | GET | `api/v2/first_mile/get_tracking_number_list` | `get_tracking_number_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_tracking_number_list?module=96&type=1) |\n| 12 | get_transit_warehouse_list | GET | `api/v2/first_mile/get_transit_warehouse_list` | `get_transit_warehouse_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_transit_warehouse_list?module=96&type=1) |\n| 13 | get_unbind_order_list | GET | `api/v2/first_mile/get_unbind_order_list` | `get_unbind_order_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1) |\n| 14 | get_waybill | GET | `api/v2/first_mile/get_waybill` | `get_waybill.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_waybill?module=96&type=1) |\n| 15 | unbind_first_mile_tracking_number | POST | `api/v2/first_mile/unbind_first_mile_tracking_number` | `unbind_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.unbind_first_mile_tracking_number?module=96&type=1) |\n| 16 | unbind_first_mile_tracking_number_all | POST | `api/v2/first_mile/unbind_first_mile_tracking_number_all` | `unbind_first_mile_tracking_number_all.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.unbind_first_mile_tracking_number_all?module=96&type=1) |\n通用入口：`first_mile_api.py`（JSON 含 `\"api\": \"<上表 API 名>\"`）。\n\n---\n\n## 常用接口说明\n\n### 头程绑定\n\n| API | 要点 |\n|-----|------|\n| `get_unbind_order_list` | 未绑定头程运单的订单 |\n| `generate_first_mile_tracking_number` | 生成头程运单号 |\n| `bind_first_mile_tracking_number` | 绑定订单到头程运单 |\n| `generate_and_bind_first_mile_tracking_number` | 一步生成并绑定 |\n| `unbind_first_mile_tracking_number` | 解绑 |\n| `get_tracking_number_list` | 头程运单号列表 |\n| `get_waybill` | 头程面单 |\n\n### 渠道与仓库\n\n| API | 要点 |\n|-----|------|\n| `get_channel_list` | 头程渠道 |\n| `get_transit_warehouse_list` | 中转仓列表 |\n| `get_courier_delivery_channel_list` | 快递配送渠道 |\n\n### 快递配送头程\n\n| API | 要点 |\n|-----|------|\n| `bind_courier_delivery_first_mile_tracking_number` | 绑定快递头程运单 |\n| `get_courier_delivery_detail` | 快递头程详情 |\n| `get_courier_delivery_waybill` | 快递头程面单 |\n| `get_courier_delivery_tracking_number_list` | 快递头程运单列表 |\n\n---\n\n## curl 示例\n\n```bash\ncurl -X POST ${LINKFOX_TOOL_GATEWAY}/shopee/developerProxy \\\n  -H \"Authorization: $LINKFOX_AGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"path\": \"api/v2/first_mile/get_unbind_order_list\",\n    \"method\": \"GET\",\n    \"accessToken\": \"xxx\",\n    \"shopId\": \"67890\"\n  }'\n```\n\n> 认证：从 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY` 任一环境变量读取（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）。请求地址使用 `${LINKFOX_TOOL_GATEWAY}`（回退到 `SHOPEE_API_BASE_URL`，再回退到 `https://tool-gateway.linkfox.com`）。\n\n---\n\n## Feedback API\n\n```bash\ncurl -X POST https://skill-api.linkfox.com/api/v1/public/feedback \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"skillName\":\"linkfox-shopee-store-first-mile\",\"sentiment\":\"POSITIVE\",\n       \"category\":\"OTHER\",\"content\":\"头程订单查询正常\"}'\n```\n\nFile v1.0.3:skill-card.md\n\n## Description: <br>\nProvides agent workflows and Python scripts for Shopee FirstMile store logistics, including unbound-order lookup, tracking-number generation, binding and unbinding, waybills, channels, transit warehouses, and courier-delivery first-mile endpoints. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[linkfox-ai](https://clawhub.ai/user/linkfox-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal Shopee sellers, commerce operators, and developers use this skill to manage cross-border FirstMile logistics for authorized stores, including finding unbound orders, generating or binding first-mile tracking numbers, retrieving waybills, and checking channel or warehouse information. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can change Shopee first-mile logistics state by generating, binding, or unbinding tracking numbers. <br>\nMitigation: Require explicit user approval before any generate, bind, or unbind operation, especially when working with real stores. <br>\nRisk: Full API responses are always saved locally and may include store, order, tracking, or waybill details. <br>\nMitigation: Use the skill only in workspaces where local response storage is acceptable, avoid --inline unless necessary, and delete the linkfox output tree after sensitive work. <br>\nRisk: The local storage location can be broader than the documentation suggests. <br>\nMitigation: Check the configured workspace and linkfox data directory before use, and review saved output paths after each run. <br>\nRisk: The skill depends on LinkFox authentication and a companion Shopee store auth skill. <br>\nMitigation: Run dependency checks first, use only the needed LinkFox API key, and avoid exposing unrelated credentials in the execution environment. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/linkfox-ai/skills/linkfox-shopee-store-first-mile) <br>\n- [FirstMile API reference](artifact/references/api.md) <br>\n- [Shopee FirstMile API documentation](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1) <br>\n- [LinkFox API key and credit guide](https://skill.linkfox.com/linkfoxskills/guide.htm) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with Python command examples and JSON request parameters; runtime output is saved JSON plus either full JSON or a concise text summary.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires LinkFox authentication and the companion Shopee store auth skill. Full API responses are saved under a linkfox data directory, small responses are printed inline, and large responses are summarized unless --inline is used.] <br>\n\n## Skill Version(s): <br>\n1.0.3 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.2: 25 files, 24519 bytes\n\nFiles: references/api.md (6466b), scripts/_first_mile_api_runner.py (4302b), scripts/_first_mile_endpoints.py (4802b), scripts/_shopee_first_mile_common.py (11321b), scripts/bind_courier_delivery_first_mile_tracking_number.py (930b), scripts/bind_first_mile_tracking_number.py (828b), scripts/check_auth_dependency.py (3989b), scripts/first_mile_api.py (1074b), scripts/generate_and_bind_first_mile_tracking_number.py (906b), scripts/generate_first_mile_tracking_number.py (852b), scripts/get_channel_list.py (738b), scripts/get_courier_delivery_channel_list.py (840b), scripts/get_courier_delivery_detail.py (804b), scripts/get_courier_delivery_tracking_number_list.py (888b), scripts/get_courier_delivery_waybill.py (810b), scripts/get_detail.py (702b), scripts/get_tracking_number_list.py (786b), scripts/get_transit_warehouse_list.py (798b), scripts/get_unbind_order_list.py (768b), scripts/get_waybill.py (708b), scripts/unbind_first_mile_tracking_number_all.py (864b), scripts/unbind_first_mile_tracking_number.py (840b), skill-card.md (3188b), SKILL.md (3986b), _meta.json (150b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: linkfox-shopee-store-first-mile\ndescription: Shopee（虾皮）头程物流 FirstMile（与 linkfox-shopee-store-auth 同系列），经 /shopee/developerProxy 转发 Shopee Open API FirstMile 模块全部 16 个接口：get_unbind_order_list、generate_first_mile_tracking_number、bind_first_mile_tracking_number、get_waybill、get_channel_list 等。当用户提到 Shopee 头程、FirstMile、头程运单、绑定头程、first mile tracking、中转仓、get_unbind_order_list 时触发。即使未明确提及\"头程\"，只要涉及已授权 Shopee 店铺的头程运单绑定或面单，也应触发。\n---\n\n# Shopee 头程 FirstMile\n\nShopee Open Platform **FirstMile 模块**（16 个 API）。**依赖 `linkfox-shopee-store-auth`**：先取 `accessToken`，再经 **`POST /shopee/developerProxy`** 转发（`path` 须 `api/v2/first_mile/...`）。\n\n## 调用方式\n\n- **API 端点**：`POST /shopee/developerProxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/first_mile_api.py '{\"api\": \"get_unbind_order_list\", ...}' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 官方参考\n\nFirstMile 模块索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n---\n\n## Prerequisites\n\n1. 运行 `python scripts/check_auth_dependency.py`；exit code **42** → 先安装 **`linkfox-shopee-store-auth`**。\n2. **头程 vs 正向物流**：本 skill 为跨境**头程**（First Mile）；店铺发货/面单见 `linkfox-shopee-store-logistics`。\n\n## 可用脚本（16 个 API）\n\n| 分组 | 脚本 |\n|------|------|\n| 绑定/解绑 | `get_unbind_order_list.py`、`generate_first_mile_tracking_number.py`、`bind_first_mile_tracking_number.py`、`generate_and_bind_first_mile_tracking_number.py`、`unbind_first_mile_tracking_number.py` |\n| 运单/面单 | `get_tracking_number_list.py`、`get_waybill.py`、`get_detail.py` |\n| 渠道/仓库 | `get_channel_list.py`、`get_transit_warehouse_list.py`、`get_courier_delivery_channel_list.py` |\n| 快递头程 | `bind_courier_delivery_first_mile_tracking_number.py`、`get_courier_delivery_detail.py`、`get_courier_delivery_waybill.py` 等 |\n| 通用入口 | `first_mile_api.py` |\n\n完整列表见 `references/api.md`。\n\n## Usage Scenarios\n\n### 1. 绑定头程运单\n1. `get_unbind_order_list.py` 查未绑定订单\n2. `generate_and_bind_first_mile_tracking_number.py` 或分步 generate + bind\n3. `get_waybill.py` 获取面单\n\n## Not Applicable\n\n- 店铺授权 → `linkfox-shopee-store-auth`\n- 正向物流发货 → `linkfox-shopee-store-logistics`\n- SBS 仓储库存 → `linkfox-shopee-store-sbs`\n- 订单查询 → `linkfox-shopee-store-orders`\n\n**Feedback:** 见 `references/api.md`。\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-shopee-store-first-mile\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1783337368800\n}\n\nFile v1.0.2:references/api.md\n\n# linkfox-shopee-store-first-mile — 参数与字段参考\n\nShopee **FirstMile 模块**全部 16 个 API，经 **`POST /shopee/developerProxy`** 转发。\n\n授权见 **`linkfox-shopee-store-auth`**。官方索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n## 通用约定\n\n- **path**：须 `api/v2/first_mile/...`\n- **标识**：通常传 **`shopId`**\n- **官方文档 URL 规则**：`https://open.shopee.com/documents/v2/v2.first_mile.{api}?module=96&type=1`\n\n---\n\n## FirstMile 模块总览\n\n| # | API | Method | path | 脚本 | 官方文档 |\n|---|-----|--------|------|------|----------|\n| 1 | bind_courier_delivery_first_mile_tracking_number | POST | `api/v2/first_mile/bind_courier_delivery_first_mile_tracking_number` | `bind_courier_delivery_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.bind_courier_delivery_first_mile_tracking_number?module=96&type=1) |\n| 2 | bind_first_mile_tracking_number | POST | `api/v2/first_mile/bind_first_mile_tracking_number` | `bind_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.bind_first_mile_tracking_number?module=96&type=1) |\n| 3 | generate_and_bind_first_mile_tracking_number | POST | `api/v2/first_mile/generate_and_bind_first_mile_tracking_number` | `generate_and_bind_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.generate_and_bind_first_mile_tracking_number?module=96&type=1) |\n| 4 | generate_first_mile_tracking_number | POST | `api/v2/first_mile/generate_first_mile_tracking_number` | `generate_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.generate_first_mile_tracking_number?module=96&type=1) |\n| 5 | get_channel_list | GET | `api/v2/first_mile/get_channel_list` | `get_channel_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_channel_list?module=96&type=1) |\n| 6 | get_courier_delivery_channel_list | GET | `api/v2/first_mile/get_courier_delivery_channel_list` | `get_courier_delivery_channel_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_channel_list?module=96&type=1) |\n| 7 | get_courier_delivery_detail | GET | `api/v2/first_mile/get_courier_delivery_detail` | `get_courier_delivery_detail.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_detail?module=96&type=1) |\n| 8 | get_courier_delivery_tracking_number_list | GET | `api/v2/first_mile/get_courier_delivery_tracking_number_list` | `get_courier_delivery_tracking_number_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_tracking_number_list?module=96&type=1) |\n| 9 | get_courier_delivery_waybill | GET | `api/v2/first_mile/get_courier_delivery_waybill` | `get_courier_delivery_waybill.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_waybill?module=96&type=1) |\n| 10 | get_detail | GET | `api/v2/first_mile/get_detail` | `get_detail.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_detail?module=96&type=1) |\n| 11 | get_tracking_number_list | GET | `api/v2/first_mile/get_tracking_number_list` | `get_tracking_number_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_tracking_number_list?module=96&type=1) |\n| 12 | get_transit_warehouse_list | GET | `api/v2/first_mile/get_transit_warehouse_list` | `get_transit_warehouse_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_transit_warehouse_list?module=96&type=1) |\n| 13 | get_unbind_order_list | GET | `api/v2/first_mile/get_unbind_order_list` | `get_unbind_order_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1) |\n| 14 | get_waybill | GET | `api/v2/first_mile/get_waybill` | `get_waybill.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_waybill?module=96&type=1) |\n| 15 | unbind_first_mile_tracking_number | POST | `api/v2/first_mile/unbind_first_mile_tracking_number` | `unbind_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.unbind_first_mile_tracking_number?module=96&type=1) |\n| 16 | unbind_first_mile_tracking_number_all | POST | `api/v2/first_mile/unbind_first_mile_tracking_number_all` | `unbind_first_mile_tracking_number_all.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.unbind_first_mile_tracking_number_all?module=96&type=1) |\n通用入口：`first_mile_api.py`（JSON 含 `\"api\": \"<上表 API 名>\"`）。\n\n---\n\n## 常用接口说明\n\n### 头程绑定\n\n| API | 要点 |\n|-----|------|\n| `get_unbind_order_list` | 未绑定头程运单的订单 |\n| `generate_first_mile_tracking_number` | 生成头程运单号 |\n| `bind_first_mile_tracking_number` | 绑定订单到头程运单 |\n| `generate_and_bind_first_mile_tracking_number` | 一步生成并绑定 |\n| `unbind_first_mile_tracking_number` | 解绑 |\n| `get_tracking_number_list` | 头程运单号列表 |\n| `get_waybill` | 头程面单 |\n\n### 渠道与仓库\n\n| API | 要点 |\n|-----|------|\n| `get_channel_list` | 头程渠道 |\n| `get_transit_warehouse_list` | 中转仓列表 |\n| `get_courier_delivery_channel_list` | 快递配送渠道 |\n\n### 快递配送头程\n\n| API | 要点 |\n|-----|------|\n| `bind_courier_delivery_first_mile_tracking_number` | 绑定快递头程运单 |\n| `get_courier_delivery_detail` | 快递头程详情 |\n| `get_courier_delivery_waybill` | 快递头程面单 |\n| `get_courier_delivery_tracking_number_list` | 快递头程运单列表 |\n\n---\n\n## curl 示例\n\n```bash\ncurl -X POST ${LINKFOX_TOOL_GATEWAY}/shopee/developerProxy \\\n  -H \"Authorization: $LINKFOX_AGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"path\": \"api/v2/first_mile/get_unbind_order_list\",\n    \"method\": \"GET\",\n    \"accessToken\": \"xxx\",\n    \"shopId\": \"67890\"\n  }'\n```\n\n> 认证：从 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY` 任一环境变量读取。请求地址使用 `${LINKFOX_TOOL_GATEWAY}`（回退到 `SHOPEE_API_BASE_URL`，再回退到 `https://tool-gateway.linkfox.com`）。\n\n---\n\n## Feedback API\n\n```bash\ncurl -X POST https://skill-api.linkfox.com/api/v1/public/feedback \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"skillName\":\"linkfox-shopee-store-first-mile\",\"sentiment\":\"POSITIVE\",\n       \"category\":\"OTHER\",\"content\":\"头程订单查询正常\"}'\n```\n\nFile v1.0.2:skill-card.md\n\n## Description: <br>\nProvides agent guidance and Python entry points for authorized Shopee store FirstMile logistics operations, including tracking-number generation, binding, unbinding, waybill retrieval, channel lookup, warehouse lookup, and courier-delivery detail queries through LinkFox's Shopee developer proxy. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[linkfox-ai](https://clawhub.ai/user/linkfox-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and operations agents use this skill to manage cross-border Shopee FirstMile workflows for already authorized stores. It supports checking unbound orders, generating and binding first-mile tracking numbers, retrieving waybills, and inspecting channels, transit warehouses, and courier-delivery details. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can perform live shipment-changing actions such as generating, binding, and unbinding Shopee FirstMile tracking numbers. <br>\nMitigation: Confirm shop, order, tracking, and waybill details with the user before executing any generate, bind, or unbind operation. <br>\nRisk: Full API responses are persistently saved locally and may contain sensitive logistics or shop data. <br>\nMitigation: Use only workspaces where saved Shopee logistics data is acceptable, avoid committing the linkfox data directory, and treat saved responses as sensitive. <br>\nRisk: API keys, access tokens, shop IDs, waybills, and tracking data are sensitive operational credentials or identifiers. <br>\nMitigation: Keep credentials in environment variables or approved secret stores, limit stdout sharing, and avoid pasting sensitive response data into unrelated contexts. <br>\nRisk: The server security verdict is suspicious because the skill exposes live operations without strong safeguards. <br>\nMitigation: Review the skill before installing or running it and require explicit approval for operations that mutate logistics state. <br>\n\n\n## Reference(s): <br>\n- [Skill API reference](artifact/references/api.md) <br>\n- [Shopee FirstMile API documentation](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1) <br>\n- [ClawHub skill page](https://clawhub.ai/linkfox-ai/skills/linkfox-shopee-store-first-mile) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Shell commands, API Calls, JSON, Files] <br>\n**Output Format:** [Markdown guidance with Python command examples; script runs save full JSON responses to local files and print JSON or summaries to stdout] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Large responses are summarized unless --inline is used; full responses are persisted under a local linkfox data directory.] <br>\n\n## Skill Version(s): <br>\n1.0.2 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.1: 24 files, 22921 bytes\n\nFiles: references/api.md (6466b), scripts/_first_mile_api_runner.py (4302b), scripts/_first_mile_endpoints.py (4802b), scripts/_shopee_first_mile_common.py (11321b), scripts/bind_courier_delivery_first_mile_tracking_number.py (930b), scripts/bind_first_mile_tracking_number.py (828b), scripts/check_auth_dependency.py (3989b), scripts/first_mile_api.py (1074b), scripts/generate_and_bind_first_mile_tracking_number.py (906b), scripts/generate_first_mile_tracking_number.py (852b), scripts/get_channel_list.py (738b), scripts/get_courier_delivery_channel_list.py (840b), scripts/get_courier_delivery_detail.py (804b), scripts/get_courier_delivery_tracking_number_list.py (888b), scripts/get_courier_delivery_waybill.py (810b), scripts/get_detail.py (702b), scripts/get_tracking_number_list.py (786b), scripts/get_transit_warehouse_list.py (798b), scripts/get_unbind_order_list.py (768b), scripts/get_waybill.py (708b), scripts/unbind_first_mile_tracking_number_all.py (864b), scripts/unbind_first_mile_tracking_number.py (840b), SKILL.md (3986b), _meta.json (150b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: linkfox-shopee-store-first-mile\ndescription: Shopee（虾皮）头程物流 FirstMile（与 linkfox-shopee-store-auth 同系列），经 /shopee/developerProxy 转发 Shopee Open API FirstMile 模块全部 16 个接口：get_unbind_order_list、generate_first_mile_tracking_number、bind_first_mile_tracking_number、get_waybill、get_channel_list 等。当用户提到 Shopee 头程、FirstMile、头程运单、绑定头程、first mile tracking、中转仓、get_unbind_order_list 时触发。即使未明确提及\"头程\"，只要涉及已授权 Shopee 店铺的头程运单绑定或面单，也应触发。\n---\n\n# Shopee 头程 FirstMile\n\nShopee Open Platform **FirstMile 模块**（16 个 API）。**依赖 `linkfox-shopee-store-auth`**：先取 `accessToken`，再经 **`POST /shopee/developerProxy`** 转发（`path` 须 `api/v2/first_mile/...`）。\n\n## 调用方式\n\n- **API 端点**：`POST /shopee/developerProxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/first_mile_api.py '{\"api\": \"get_unbind_order_list\", ...}' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 官方参考\n\nFirstMile 模块索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n---\n\n## Prerequisites\n\n1. 运行 `python scripts/check_auth_dependency.py`；exit code **42** → 先安装 **`linkfox-shopee-store-auth`**。\n2. **头程 vs 正向物流**：本 skill 为跨境**头程**（First Mile）；店铺发货/面单见 `linkfox-shopee-store-logistics`。\n\n## 可用脚本（16 个 API）\n\n| 分组 | 脚本 |\n|------|------|\n| 绑定/解绑 | `get_unbind_order_list.py`、`generate_first_mile_tracking_number.py`、`bind_first_mile_tracking_number.py`、`generate_and_bind_first_mile_tracking_number.py`、`unbind_first_mile_tracking_number.py` |\n| 运单/面单 | `get_tracking_number_list.py`、`get_waybill.py`、`get_detail.py` |\n| 渠道/仓库 | `get_channel_list.py`、`get_transit_warehouse_list.py`、`get_courier_delivery_channel_list.py` |\n| 快递头程 | `bind_courier_delivery_first_mile_tracking_number.py`、`get_courier_delivery_detail.py`、`get_courier_delivery_waybill.py` 等 |\n| 通用入口 | `first_mile_api.py` |\n\n完整列表见 `references/api.md`。\n\n## Usage Scenarios\n\n### 1. 绑定头程运单\n1. `get_unbind_order_list.py` 查未绑定订单\n2. `generate_and_bind_first_mile_tracking_number.py` 或分步 generate + bind\n3. `get_waybill.py` 获取面单\n\n## Not Applicable\n\n- 店铺授权 → `linkfox-shopee-store-auth`\n- 正向物流发货 → `linkfox-shopee-store-logistics`\n- SBS 仓储库存 → `linkfox-shopee-store-sbs`\n- 订单查询 → `linkfox-shopee-store-orders`\n\n**Feedback:** 见 `references/api.md`。\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-shopee-store-first-mile\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1783067327097\n}\n\nFile v1.0.1:references/api.md\n\n# linkfox-shopee-store-first-mile — 参数与字段参考\n\nShopee **FirstMile 模块**全部 16 个 API，经 **`POST /shopee/developerProxy`** 转发。\n\n授权见 **`linkfox-shopee-store-auth`**。官方索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n## 通用约定\n\n- **path**：须 `api/v2/first_mile/...`\n- **标识**：通常传 **`shopId`**\n- **官方文档 URL 规则**：`https://open.shopee.com/documents/v2/v2.first_mile.{api}?module=96&type=1`\n\n---\n\n## FirstMile 模块总览\n\n| # | API | Method | path | 脚本 | 官方文档 |\n|---|-----|--------|------|------|----------|\n| 1 | bind_courier_delivery_first_mile_tracking_number | POST | `api/v2/first_mile/bind_courier_delivery_first_mile_tracking_number` | `bind_courier_delivery_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.bind_courier_delivery_first_mile_tracking_number?module=96&type=1) |\n| 2 | bind_first_mile_tracking_number | POST | `api/v2/first_mile/bind_first_mile_tracking_number` | `bind_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.bind_first_mile_tracking_number?module=96&type=1) |\n| 3 | generate_and_bind_first_mile_tracking_number | POST | `api/v2/first_mile/generate_and_bind_first_mile_tracking_number` | `generate_and_bind_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.generate_and_bind_first_mile_tracking_number?module=96&type=1) |\n| 4 | generate_first_mile_tracking_number | POST | `api/v2/first_mile/generate_first_mile_tracking_number` | `generate_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.generate_first_mile_tracking_number?module=96&type=1) |\n| 5 | get_channel_list | GET | `api/v2/first_mile/get_channel_list` | `get_channel_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_channel_list?module=96&type=1) |\n| 6 | get_courier_delivery_channel_list | GET | `api/v2/first_mile/get_courier_delivery_channel_list` | `get_courier_delivery_channel_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_channel_list?module=96&type=1) |\n| 7 | get_courier_delivery_detail | GET | `api/v2/first_mile/get_courier_delivery_detail` | `get_courier_delivery_detail.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_detail?module=96&type=1) |\n| 8 | get_courier_delivery_tracking_number_list | GET | `api/v2/first_mile/get_courier_delivery_tracking_number_list` | `get_courier_delivery_tracking_number_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_tracking_number_list?module=96&type=1) |\n| 9 | get_courier_delivery_waybill | GET | `api/v2/first_mile/get_courier_delivery_waybill` | `get_courier_delivery_waybill.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_waybill?module=96&type=1) |\n| 10 | get_detail | GET | `api/v2/first_mile/get_detail` | `get_detail.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_detail?module=96&type=1) |\n| 11 | get_tracking_number_list | GET | `api/v2/first_mile/get_tracking_number_list` | `get_tracking_number_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_tracking_number_list?module=96&type=1) |\n| 12 | get_transit_warehouse_list | GET | `api/v2/first_mile/get_transit_warehouse_list` | `get_transit_warehouse_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_transit_warehouse_list?module=96&type=1) |\n| 13 | get_unbind_order_list | GET | `api/v2/first_mile/get_unbind_order_list` | `get_unbind_order_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1) |\n| 14 | get_waybill | GET | `api/v2/first_mile/get_waybill` | `get_waybill.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_waybill?module=96&type=1) |\n| 15 | unbind_first_mile_tracking_number | POST | `api/v2/first_mile/unbind_first_mile_tracking_number` | `unbind_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.unbind_first_mile_tracking_number?module=96&type=1) |\n| 16 | unbind_first_mile_tracking_number_all | POST | `api/v2/first_mile/unbind_first_mile_tracking_number_all` | `unbind_first_mile_tracking_number_all.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.unbind_first_mile_tracking_number_all?module=96&type=1) |\n通用入口：`first_mile_api.py`（JSON 含 `\"api\": \"<上表 API 名>\"`）。\n\n---\n\n## 常用接口说明\n\n### 头程绑定\n\n| API | 要点 |\n|-----|------|\n| `get_unbind_order_list` | 未绑定头程运单的订单 |\n| `generate_first_mile_tracking_number` | 生成头程运单号 |\n| `bind_first_mile_tracking_number` | 绑定订单到头程运单 |\n| `generate_and_bind_first_mile_tracking_number` | 一步生成并绑定 |\n| `unbind_first_mile_tracking_number` | 解绑 |\n| `get_tracking_number_list` | 头程运单号列表 |\n| `get_waybill` | 头程面单 |\n\n### 渠道与仓库\n\n| API | 要点 |\n|-----|------|\n| `get_channel_list` | 头程渠道 |\n| `get_transit_warehouse_list` | 中转仓列表 |\n| `get_courier_delivery_channel_list` | 快递配送渠道 |\n\n### 快递配送头程\n\n| API | 要点 |\n|-----|------|\n| `bind_courier_delivery_first_mile_tracking_number` | 绑定快递头程运单 |\n| `get_courier_delivery_detail` | 快递头程详情 |\n| `get_courier_delivery_waybill` | 快递头程面单 |\n| `get_courier_delivery_tracking_number_list` | 快递头程运单列表 |\n\n---\n\n## curl 示例\n\n```bash\ncurl -X POST ${LINKFOX_TOOL_GATEWAY}/shopee/developerProxy \\\n  -H \"Authorization: $LINKFOX_AGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"path\": \"api/v2/first_mile/get_unbind_order_list\",\n    \"method\": \"GET\",\n    \"accessToken\": \"xxx\",\n    \"shopId\": \"67890\"\n  }'\n```\n\n> 认证：从 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY` 任一环境变量读取。请求地址使用 `${LINKFOX_TOOL_GATEWAY}`（回退到 `SHOPEE_API_BASE_URL`，再回退到 `https://tool-gateway.linkfox.com`）。\n\n---\n\n## Feedback API\n\n```bash\ncurl -X POST https://skill-api.linkfox.com/api/v1/public/feedback \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"skillName\":\"linkfox-shopee-store-first-mile\",\"sentiment\":\"POSITIVE\",\n       \"category\":\"OTHER\",\"content\":\"头程订单查询正常\"}'\n```\n\nArchive v1.0.0: 25 files, 24155 bytes\n\nFiles: references/api.md (6468b), scripts/_first_mile_api_runner.py (4302b), scripts/_first_mile_endpoints.py (4802b), scripts/_shopee_first_mile_common.py (11322b), scripts/bind_courier_delivery_first_mile_tracking_number.py (930b), scripts/bind_first_mile_tracking_number.py (828b), scripts/check_auth_dependency.py (3989b), scripts/first_mile_api.py (1074b), scripts/generate_and_bind_first_mile_tracking_number.py (906b), scripts/generate_first_mile_tracking_number.py (852b), scripts/get_channel_list.py (738b), scripts/get_courier_delivery_channel_list.py (840b), scripts/get_courier_delivery_detail.py (804b), scripts/get_courier_delivery_tracking_number_list.py (888b), scripts/get_courier_delivery_waybill.py (810b), scripts/get_detail.py (702b), scripts/get_tracking_number_list.py (786b), scripts/get_transit_warehouse_list.py (798b), scripts/get_unbind_order_list.py (768b), scripts/get_waybill.py (708b), scripts/unbind_first_mile_tracking_number_all.py (864b), scripts/unbind_first_mile_tracking_number.py (840b), skill-card.md (2410b), SKILL.md (3986b), _meta.json (150b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: linkfox-shopee-store-first-mile\ndescription: Shopee（虾皮）头程物流 FirstMile（与 linkfox-shopee-store-auth 同系列），经 /shopee/developerProxy 转发 Shopee Open API FirstMile 模块全部 16 个接口：get_unbind_order_list、generate_first_mile_tracking_number、bind_first_mile_tracking_number、get_waybill、get_channel_list 等。当用户提到 Shopee 头程、FirstMile、头程运单、绑定头程、first mile tracking、中转仓、get_unbind_order_list 时触发。即使未明确提及\"头程\"，只要涉及已授权 Shopee 店铺的头程运单绑定或面单，也应触发。\n---\n\n# Shopee 头程 FirstMile\n\nShopee Open Platform **FirstMile 模块**（16 个 API）。**依赖 `linkfox-shopee-store-auth`**：先取 `accessToken`，再经 **`POST /shopee/developerProxy`** 转发（`path` 须 `api/v2/first_mile/...`）。\n\n## 调用方式\n\n- **API 端点**：`POST /shopee/developerProxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/first_mile_api.py '{\"api\": \"get_unbind_order_list\", ...}' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 官方参考\n\nFirstMile 模块索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n---\n\n## Prerequisites\n\n1. 运行 `python scripts/check_auth_dependency.py`；exit code **42** → 先安装 **`linkfox-shopee-store-auth`**。\n2. **头程 vs 正向物流**：本 skill 为跨境**头程**（First Mile）；店铺发货/面单见 `linkfox-shopee-store-logistics`。\n\n## 可用脚本（16 个 API）\n\n| 分组 | 脚本 |\n|------|------|\n| 绑定/解绑 | `get_unbind_order_list.py`、`generate_first_mile_tracking_number.py`、`bind_first_mile_tracking_number.py`、`generate_and_bind_first_mile_tracking_number.py`、`unbind_first_mile_tracking_number.py` |\n| 运单/面单 | `get_tracking_number_list.py`、`get_waybill.py`、`get_detail.py` |\n| 渠道/仓库 | `get_channel_list.py`、`get_transit_warehouse_list.py`、`get_courier_delivery_channel_list.py` |\n| 快递头程 | `bind_courier_delivery_first_mile_tracking_number.py`、`get_courier_delivery_detail.py`、`get_courier_delivery_waybill.py` 等 |\n| 通用入口 | `first_mile_api.py` |\n\n完整列表见 `references/api.md`。\n\n## Usage Scenarios\n\n### 1. 绑定头程运单\n1. `get_unbind_order_list.py` 查未绑定订单\n2. `generate_and_bind_first_mile_tracking_number.py` 或分步 generate + bind\n3. `get_waybill.py` 获取面单\n\n## Not Applicable\n\n- 店铺授权 → `linkfox-shopee-store-auth`\n- 正向物流发货 → `linkfox-shopee-store-logistics`\n- SBS 仓储库存 → `linkfox-shopee-store-sbs`\n- 订单查询 → `linkfox-shopee-store-orders`\n\n**Feedback:** 见 `references/api.md`。\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-shopee-store-first-mile\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1783000008290\n}\n\nFile v1.0.0:references/api.md\n\n# linkfox-shopee-store-first-mile — 参数与字段参考\n\nShopee **FirstMile 模块**全部 16 个 API，经 **`POST /shopee/developerProxy`** 转发。\n\n授权见 **`linkfox-shopee-store-auth`**。官方索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n## 通用约定\n\n- **path**：须 `api/v2/first_mile/...`\n- **标识**：通常传 **`shopId`**\n- **官方文档 URL 规则**：`https://open.shopee.com/documents/v2/v2.first_mile.{api}?module=96&type=1`\n\n---\n\n## FirstMile 模块总览\n\n| # | API | Method | path | 脚本 | 官方文档 |\n|---|-----|--------|------|------|----------|\n| 1 | bind_courier_delivery_first_mile_tracking_number | POST | `api/v2/first_mile/bind_courier_delivery_first_mile_tracking_number` | `bind_courier_delivery_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.bind_courier_delivery_first_mile_tracking_number?module=96&type=1) |\n| 2 | bind_first_mile_tracking_number | POST | `api/v2/first_mile/bind_first_mile_tracking_number` | `bind_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.bind_first_mile_tracking_number?module=96&type=1) |\n| 3 | generate_and_bind_first_mile_tracking_number | POST | `api/v2/first_mile/generate_and_bind_first_mile_tracking_number` | `generate_and_bind_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.generate_and_bind_first_mile_tracking_number?module=96&type=1) |\n| 4 | generate_first_mile_tracking_number | POST | `api/v2/first_mile/generate_first_mile_tracking_number` | `generate_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.generate_first_mile_tracking_number?module=96&type=1) |\n| 5 | get_channel_list | GET | `api/v2/first_mile/get_channel_list` | `get_channel_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_channel_list?module=96&type=1) |\n| 6 | get_courier_delivery_channel_list | GET | `api/v2/first_mile/get_courier_delivery_channel_list` | `get_courier_delivery_channel_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_channel_list?module=96&type=1) |\n| 7 | get_courier_delivery_detail | GET | `api/v2/first_mile/get_courier_delivery_detail` | `get_courier_delivery_detail.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_detail?module=96&type=1) |\n| 8 | get_courier_delivery_tracking_number_list | GET | `api/v2/first_mile/get_courier_delivery_tracking_number_list` | `get_courier_delivery_tracking_number_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_tracking_number_list?module=96&type=1) |\n| 9 | get_courier_delivery_waybill | GET | `api/v2/first_mile/get_courier_delivery_waybill` | `get_courier_delivery_waybill.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_courier_delivery_waybill?module=96&type=1) |\n| 10 | get_detail | GET | `api/v2/first_mile/get_detail` | `get_detail.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_detail?module=96&type=1) |\n| 11 | get_tracking_number_list | GET | `api/v2/first_mile/get_tracking_number_list` | `get_tracking_number_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_tracking_number_list?module=96&type=1) |\n| 12 | get_transit_warehouse_list | GET | `api/v2/first_mile/get_transit_warehouse_list` | `get_transit_warehouse_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_transit_warehouse_list?module=96&type=1) |\n| 13 | get_unbind_order_list | GET | `api/v2/first_mile/get_unbind_order_list` | `get_unbind_order_list.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1) |\n| 14 | get_waybill | GET | `api/v2/first_mile/get_waybill` | `get_waybill.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.get_waybill?module=96&type=1) |\n| 15 | unbind_first_mile_tracking_number | POST | `api/v2/first_mile/unbind_first_mile_tracking_number` | `unbind_first_mile_tracking_number.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.unbind_first_mile_tracking_number?module=96&type=1) |\n| 16 | unbind_first_mile_tracking_number_all | POST | `api/v2/first_mile/unbind_first_mile_tracking_number_all` | `unbind_first_mile_tracking_number_all.py` | [doc](https://open.shopee.com/documents/v2/v2.first_mile.unbind_first_mile_tracking_number_all?module=96&type=1) |\n通用入口：`first_mile_api.py`（JSON 含 `\"api\": \"<上表 API 名>\"`）。\n\n---\n\n## 常用接口说明\n\n### 头程绑定\n\n| API | 要点 |\n|-----|------|\n| `get_unbind_order_list` | 未绑定头程运单的订单 |\n| `generate_first_mile_tracking_number` | 生成头程运单号 |\n| `bind_first_mile_tracking_number` | 绑定订单到头程运单 |\n| `generate_and_bind_first_mile_tracking_number` | 一步生成并绑定 |\n| `unbind_first_mile_tracking_number` | 解绑 |\n| `get_tracking_number_list` | 头程运单号列表 |\n| `get_waybill` | 头程面单 |\n\n### 渠道与仓库\n\n| API | 要点 |\n|-----|------|\n| `get_channel_list` | 头程渠道 |\n| `get_transit_warehouse_list` | 中转仓列表 |\n| `get_courier_delivery_channel_list` | 快递配送渠道 |\n\n### 快递配送头程\n\n| API | 要点 |\n|-----|------|\n| `bind_courier_delivery_first_mile_tracking_number` | 绑定快递头程运单 |\n| `get_courier_delivery_detail` | 快递头程详情 |\n| `get_courier_delivery_waybill` | 快递头程面单 |\n| `get_courier_delivery_tracking_number_list` | 快递头程运单列表 |\n\n---\n\n## curl 示例\n\n```bash\ncurl -X POST ${LINKFOX_AGENT_API_URL}/shopee/developerProxy \\\n  -H \"Authorization: $LINKFOX_AGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"path\": \"api/v2/first_mile/get_unbind_order_list\",\n    \"method\": \"GET\",\n    \"accessToken\": \"xxx\",\n    \"shopId\": \"67890\"\n  }'\n```\n\n> 认证：从 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY` 任一环境变量读取。请求地址使用 `${LINKFOX_AGENT_API_URL}`（回退到 `SHOPEE_API_BASE_URL`，再回退到 `https://tool-gateway.linkfox.com`）。\n\n---\n\n## Feedback API\n\n```bash\ncurl -X POST https://skill-api.linkfox.com/api/v1/public/feedback \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"skillName\":\"linkfox-shopee-store-first-mile\",\"sentiment\":\"POSITIVE\",\n       \"category\":\"OTHER\",\"content\":\"头程订单查询正常\"}'\n```\n\nFile v1.0.0:skill-card.md\n\n## Description: <br>\nHelps agents work with authorized Shopee store FirstMile logistics by calling Shopee Open Platform FirstMile endpoints for unbound orders, tracking numbers, waybills, channels, transit warehouses, and courier first-mile details. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[linkfox-ai](https://clawhub.ai/user/linkfox-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal sellers, operators, and developers use this skill to manage cross-border Shopee first-mile logistics for authorized stores, including generating and binding tracking numbers, retrieving waybills, and checking channels or transit warehouses. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Authenticated API calls can change Shopee first-mile logistics state. <br>\nMitigation: Review operation parameters with the user before running binding, unbinding, or generate-and-bind actions. <br>\nRisk: Full authenticated responses are saved locally in plaintext and may contain Shopee order, waybill, or shipment data. <br>\nMitigation: Use only in workspaces where local retention is acceptable; restrict file access and avoid shared projects for sensitive store data. <br>\n\n\n## Reference(s): <br>\n- [FirstMile API Reference](references/api.md) <br>\n- [Shopee Open Platform FirstMile get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1) <br>\n- [ClawHub skill listing](https://clawhub.ai/linkfox-ai/skills/linkfox-shopee-store-first-mile) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, shell commands, configuration, guidance] <br>\n**Output Format:** [JSON responses saved as local files with stdout JSON or summary text] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires LinkFox API credentials and the Shopee store auth skill; full authenticated responses may include order, waybill, or shipment data and are retained locally in plaintext.] <br>\n\n## Skill Version(s): <br>\n1.0.0 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: Shopee-店铺头程物流 Owner: linkfox-ai Summary: Shopee（虾皮）头程物流 FirstMile（与 linkfox-shopee-store-auth 同系列），经 /shopee/developerProxy 转发 Shopee Open API FirstMile 模块全部 16 个接口：get_unbind_order_list、generate_first_mile_tracking_number、bind_first_mile_tracking_number、get_waybill、get_channel_list 等。当用户提到 Shopee 头程、FirstMile、头程运单、绑定头程、first mile tracking、中转仓、get_unbind_order_list 时触发。即使未明确提及\"头程\"，只要涉及已授权 Shopee 店铺的头程运单绑定或面单，也","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"curl -X POST ${LINKFOX_TOOL_GATEWAY}/shopee/developerProxy \\\n  -H \"Authorization: $LINKFOX_AGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{"},{"language":"bash","snippet":"curl -X POST ${LINKFOX_TOOL_GATEWAY}/shopee/developerProxy \\\n  -H \"Authorization: $LINKFOX_AGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"path\": \"api/v2/first_mile/get_unbind_order_list\",\n    \"method\": \"GET\",\n    \"accessToken\": \"xxx\",\n    \"shopId\": \"67890\"\n  }'"},{"language":"bash","snippet":"curl -X POST https://skill-api.linkfox.com/api/v1/public/feedback \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"skillName\":\"linkfox-shopee-store-first-mile\",\"sentiment\":\"POSITIVE\","},{"language":"bash","snippet":"curl -X POST https://skill-api.linkfox.com/api/v1/public/feedback \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"skillName\":\"linkfox-shopee-store-first-mile\",\"sentiment\":\"POSITIVE\",\n       \"category\":\"OTHER\",\"content\":\"头程订单查询正常\"}'"},{"language":"bash","snippet":"export LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/bind_courier_delivery_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"bind_courier_delivery_first_mile_tracking_number\", \"shopId\": \"67890\"}'"},{"language":"bash","snippet":"export LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/bind_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"bind_first_mile_tracking_number\", \"shopId\": \"67890\"}'"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: linkfox-shopee-store-first-mile\ndescription: Shopee（虾皮）头程物流 FirstMile（与 linkfox-shopee-store-auth 同系列），经 /shopee/developerProxy 转发 Shopee Open API FirstMile 模块全部 16 个接口：get_unbind_order_list、generate_first_mile_tracking_number、bind_first_mile_tracking_number、get_waybill、get_channel_list 等。当用户提到 Shopee 头程、FirstMile、头程运单、绑定头程、first mile tracking、中转仓、get_unbind_order_list 时触发。即使未明确提及\"头程\"，只要涉及已授权 Shopee 店铺的头程运单绑定或面单，也应触发。\n---\n\n# Shopee 头程 FirstMile\n\nShopee Open Platform **FirstMile 模块**（16 个 API）。**依赖 `linkfox-shopee-store-auth`** 选店；经 **`POST /shopee/developerProxy`** 传入 `shopId`（或 `merchantId`），由服务端解析 token 转发（`path` 须 `api/v2/first_mile/...`）。\n\n## 调用方式\n\n- **API 端点**：`POST /shopee/developerProxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/first_mile_api.py '{\"api\": \"get_unbind_order_list\", ...}' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗算力；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和算力问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示算力或余额不足**：消息含\"算力余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## 官方参考\n\nFirstMile 模块索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n---\n\n## Prerequisites\n\n1. 运行 `python scripts/check_auth_dependency.py`；exit code **42** → 先安装 **`linkfox-shopee-store-auth`**。\n2. **头程 vs 正向物流**：本 skill 为跨境**头程**（First Mile）；店铺发货/面单见 `linkfox-shopee-store-logistics`。\n\n## 可用脚本（16 个 API）\n\n| 分组 | 脚本 |\n|------|------|\n| 绑定/解绑 | `get_unbind_order_list.py`、`generate_first_mile_tracking_number.py`、`bind_first_mile_tracking_number.py`、`generate_and_bind_first_mile_tracking_number.py`、`unbind_first_mile_tracking_number.py` |\n| 运单/面单 | `get_tracking_number_list.py`、`get_waybill.py`、`get_detail.py` |\n| 渠道/仓库 | `get_channel_list.py`、`get_transit_warehouse_list.py`、`get_courier_delivery_channel_list.py` |\n| 快递头程 | `bind_courier_delivery_first_mile_tracking_number.py`、`get_courier_delivery_detail.py`、`get_courier_delivery_waybill.py` 等 |\n| 通用入口 | `first_mile_api.py` |\n\n完整列表见 `references/api.md`。\n\n## 接口说明（按 API）\n\n入参与响应细节放在 `references/apis/`，SKILL 只保留索引。\n\n| API | 说明文档 |\n|-----|----------|\n| `bind_courier_delivery_first_mile_tracking_number` | [references/apis/bind-courier-delivery-first-mile-tracking-number.md](./references/apis/bind-courier-delivery-first-mile-tracking-number.md) |\n| `bind_first_mile_tracking_number` |"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-shopee-store-first-mile\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1789363632117\n}"},{"path":"references/api.md","content":"# linkfox-shopee-store-first-mile — 参数与字段参考\n\n> 单接口入参/响应说明已拆到 **`apis/`**（按 API 一份）；本文件保留模块总览与 Feedback。\nShopee **FirstMile 模块**全部 16 个 API，经 **`POST /shopee/developerProxy`** 转发。\n\n授权见 **`linkfox-shopee-store-auth`**。官方索引：[v2.first_mile.get_unbind_order_list](https://open.shopee.com/documents/v2/v2.first_mile.get_unbind_order_list?module=96&type=1)\n\n## 通用约定\n\n- **path**：须 `api/v2/first_mile/...`\n- **标识**：通常传 **`shopId`**\n- **官方文档 URL 规则**：`https://open.shopee.com/documents/v2/v2.first_mile.{api}?module=96&type=1`\n\n---\n\n## FirstMile 模块总览\n\n| # | API | Method | path | 脚本 | 官方文档 |\n|---|-----|--------|------|------|----------|\n| 1 | bind_courier_delivery_first_mile_tracking_number | POST | `api/v2/first_mile/bind_courier_delivery_first_mile_tracking_number` | `bind_courier_delivery_first_mile_tracking_number.py` | [apis/bind-courier-delivery-first-mile-tracking-number.md](./apis/bind-courier-delivery-first-mile-tracking-number.md) |\n| 2 | bind_first_mile_tracking_number | POST | `api/v2/first_mile/bind_first_mile_tracking_number` | `bind_first_mile_tracking_number.py` | [apis/bind-first-mile-tracking-number.md](./apis/bind-first-mile-tracking-number.md) |\n| 3 | generate_and_bind_first_mile_tracking_number | POST | `api/v2/first_mile/generate_and_bind_first_mile_tracking_number` | `generate_and_bind_first_mile_tracking_number.py` | [apis/generate-and-bind-first-mile-tracking-number.md](./apis/generate-and-bind-first-mile-tracking-number.md) |\n| 4 | generate_first_mile_tracking_number | POST | `api/v2/first_mile/generate_first_mile_tracking_number` | `generate_first_mile_tracking_number.py` | [apis/generate-first-mile-tracking-number.md](./apis/generate-first-mile-tracking-number.md) |\n| 5 | get_channel_list | GET | `api/v2/first_mile/get_channel_list` | `get_channel_list.py` | [apis/get-channel-list.md](./apis/get-channel-list.md) |\n| 6 | get_courier_delivery_channel_list | GET | `api/v2/first_mile/get_courier_delivery_channel_list` | `get_courier_delivery_channel_list.py` | [apis/get-courier-delivery-channel-list.md](./apis/get-courier-delivery-channel-list.md) |\n| 7 | get_courier_delivery_detail | GET | `api/v2/first_mile/get_courier_delivery_detail` | `get_courier_delivery_detail.py` | [apis/get-courier-delivery-detail.md](./apis/get-courier-delivery-detail.md) |\n| 8 | get_courier_delivery_tracking_number_list | GET | `api/v2/first_mile/get_courier_delivery_tracking_number_list` | `get_courier_delivery_tracking_number_list.py` | [apis/get-courier-delivery-tracking-number-list.md](./apis/get-courier-delivery-tracking-number-list.md) |\n| 9 | get_courier_delivery_waybill | GET | `api/v2/first_mile/get_courier_delivery_waybill` | `get_courier_delivery_waybill.py` | [apis/get-courier-delivery-waybill.md](./apis/get-courier-delivery-waybill.md) |\n| 10 | get_detail | GET | `api/v2/first_mile/get_detail` | `get_detail.py` | [apis/get-detail.md](./apis/get-detail.md) |\n| 11 | get_tracking_number_list | GET | `api/v2/first_mile/get_tracking_number_list` | `get_"},{"path":"references/apis/bind-courier-delivery-first-mile-tracking-number.md","content":"# bind_courier_delivery_first_mile_tracking_number\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/bind_courier_delivery_first_mile_tracking_number.py` |\n| Method / path | POST `api/v2/first_mile/bind_courier_delivery_first_mile_tracking_number` |\n| 官方文档 | [bind_courier_delivery_first_mile_tracking_number](https://open.shopee.com/documents/v2/v2.first_mile.bind_courier_delivery_first_mile_tracking_number?module=96&type=1) |\n| 用途 | Bind courier delivery first-mile tracking |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**POST**\n- POST：传 `body` / `requestBody`，或把 `body_fields` 列在 JSON 顶层\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Bind courier delivery first-mile tracking\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/bind_courier_delivery_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"bind_courier_delivery_first_mile_tracking_number\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`bindCourierDeliveryFirstMileTrackingNumber`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准"},{"path":"references/apis/bind-first-mile-tracking-number.md","content":"# bind_first_mile_tracking_number\n\n| 项 | 值 |\n|----|-----|\n| 脚本 | `scripts/bind_first_mile_tracking_number.py` |\n| Method / path | POST `api/v2/first_mile/bind_first_mile_tracking_number` |\n| 官方文档 | [bind_first_mile_tracking_number](https://open.shopee.com/documents/v2/v2.first_mile.bind_first_mile_tracking_number?module=96&type=1) |\n| 用途 | Bind orders to first-mile tracking number |\n\n经 **`POST /shopee/developerProxy`** 转发；依赖 **`linkfox-shopee-store-auth`** 选店（通常传 `shopId` 或 `merchantId`）。\n\n---\n\n## 脚本 JSON 入参\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `shopId` | string | 与 `merchantId` 二选一 | 店铺 ID（推荐；Public 等无店铺接口可省略） |\n| `merchantId` | string | 与 `shopId` 二选一 | 商户 ID |\n\n- Method：**POST**\n- POST：传 `body` / `requestBody`，或把 `body_fields` 列在 JSON 顶层\n- `shopId` / `merchantId` / `skipDepCheck` 等为网关选店保留字段，不会进 Shopee query/body\n- Registry notes：Bind orders to first-mile tracking number\n\n---\n\n## 调用示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\n\npython scripts/bind_first_mile_tracking_number.py '{\"shopId\": \"67890\"}'\n\n# 通用入口\npython scripts/first_mile_api.py '{\"api\": \"bind_first_mile_tracking_number\", \"shopId\": \"67890\"}'\n```\n\n---\n\n## 响应要点\n\n1. 先看 **`developerProxy.httpStatus`** / `errcode`\n2. 再读 **`bindFirstMileTrackingNumber`**（Shopee `response` 解析结果）\n3. 字段以官方文档为准"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1217,"uniquenessScore":29,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T18:14:30.898Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T18:14:30.898Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T20:59:38.811Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}