Market NinjaMarket Ninja
使用情境

擷取工作階段

取得您剛透過擴充功能採集的資料——檢查工作階段狀態,並在資料完成合併後取出結果。

擴充功能發起的每一次擷取——無論是單頁還是批次執行——都會產生一個擷取工作階段,歸屬於您自己的帳戶。 GET /products 及本站的其他端點搜尋的是整個共享資料集;而這三個端點只會回傳屬於您自己的資料。

您不需要自己建立或選擇工作階段 id——每次開始擷取時,擴充功能都會自動產生一個。GET /me/scrapes 就是用來查找它的入口。

列出最近的擷取工作階段

curl -H "Authorization: Bearer mn_live_..." \
  "https://data.marketninja.ru/v1/me/scrapes"
{
  "data": [
    {
      "id": "b1f8b6b0-2f7d-4a1a-9a3c-2f6d8e9a1234",
      "status": "processing",
      "stats": { "total": 40, "pending": 12, "processing": 0, "merged": 28, "rejected": 0, "flagged": 0 },
      "metadata": { "source_type": "bulk", "intent": "data", "url_count": 40 },
      "created_at": "2026-08-04T10:15:00.000Z",
      "updated_at": "2026-08-04T10:16:42.000Z"
    }
  ],
  "meta": { "total": 1, "page": 1, "page_size": 100 }
}

一律依最新在前排序,不支援任何篩選參數——因為這本來就只是您自己帳戶的歷史記錄。

檢查工作階段狀態

當工作階段中不再有任何 pending/processing 的項目時,status 就會變為 completed—— 這並不等同於「每一項都成功合併了」。詳細明細請查看 stats 欄位。

curl -H "Authorization: Bearer mn_live_..." \
  "https://data.marketninja.ru/v1/me/scrapes/b1f8b6b0-2f7d-4a1a-9a3c-2f6d8e9a1234"
背景合併流程是依排程批次執行的,並非即時完成——剛擷取完之後,status 幾乎總是 processing。請輪詢這個端點(或直接重新請求下方的 .../products),直到狀態變為 completed,而不要假設擴充功能一結束,擷取就已經完成。

取得已擷取的資料

拿到工作階段 id 之後,這才是真正「給我剛擷取到的資料」的端點——它會回傳該工作階段中的每一筆 提交記錄,而不只是已經合併完成的那些:

curl -G -H "Authorization: Bearer mn_live_..." \
  "https://data.marketninja.ru/v1/me/scrapes/b1f8b6b0-2f7d-4a1a-9a3c-2f6d8e9a1234/products" \
  --data-urlencode "page_size=100"
{
  "data": [
    { "submission_status": "merged", "product": { "id": "e86bee19-...", "name": "..." } },
    { "submission_status": "pending", "product": null }
  ],
  "meta": { "total": 40, "page": 1, "page_size": 100 }
}

在對應項目完成合併之前,product 會維持 null——這是刻意設計,不是 bug:如果直接把 尚未合併的列完全省略,一次剛發起的擷取在最初一分鐘左右就會看起來像一個空頁面。已合併的 productGET /products 回傳的物件結構完全一致。

每日資料配額只會為真正帶有已合併 product 的列計費——pending 佔位記錄不消耗配額,因此反覆輪詢一個仍在處理中的工作階段是免費的。

Last updated on

On this page