カタログAPI2026-11プレビュー

同期ルール

中国の出品者が価格を変えたり売り切れたりしたとき、出品に起きること。
  • 注文が入ったときと定期的なスケジュールで出品を再読み込みします。各商品の last_checked_at に最後に読み取った日時が入ります。商品の同期は無料です。
  • 当社が対応したすべての変更はイベントにもなります:product.cost_changedとproduct.out_of_stock。

Sync ruleオブジェクト

idstring
rule_ で始まります。既定ルールは rule_default です。
applies_tostring
既定ルールなら all、個別ルールなら商品ID。
on_cost_increase.actionstring
利益を維持するよう価格変更、商品を一時停止、または通知のみ。
on_cost_increase.keep_margin_percentstring
reprice の場合:販売価格に対して維持する利益率。
on_cost_increase.max_increase_percentstring|null
reprice の場合:一度に上げられる価格の上限。超えた場合は above_max が適用されます:pause または notify。
on_cost_decreasestring
keep_price、または同じ利益率まで値下げ。
on_out_of_stockstring
常に zero_stock:売り切れのSKUは各チャンネルで在庫0と表示されます。
on_back_in_stockstring
restock、または再開するまで stay_paused。
round_tostring|null
価格変更後の価格の端数(.99や.00など)。
sync_rule
{
  "id": "rule_default",
  "applies_to": "all",
  "on_cost_increase": {
    "action": "reprice",
    "keep_margin_percent": "30",
    "max_increase_percent": "15",
    "above_max": "pause"
  },
  "on_cost_decrease": "keep_price",
  "on_out_of_stock": "zero_stock",
  "on_back_in_stock": "restock",
  "round_to": ".99",
  "updated_at": "2026-11-02T08:00:00Z"
}

同期ルール一覧

GET/v1/sync_rules

まず既定ルール、次に商品ごとのすべての個別ルール。

スコープproducts:read

curl "https://www.ninjabuy.com/api/v1/sync_rules" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11"
Response 200
HTTP/2 200 OK

{
  "data": [
    {
      "id": "rule_default",
      "applies_to": "all",
      "on_cost_increase": {
        "action": "reprice",
        "keep_margin_percent": "30",
        "max_increase_percent": "15",
        "above_max": "pause"
      },
      "on_cost_decrease": "keep_price",
      "on_out_of_stock": "zero_stock",
      "on_back_in_stock": "restock",
      "round_to": ".99",
      "updated_at": "2026-11-02T08:00:00Z"
    },
    {
      "id": "rule_9p3e",
      "applies_to": "prd_1x0a",
      "on_cost_increase": { "action": "pause" },
      "on_cost_decrease": "keep_price",
      "on_out_of_stock": "zero_stock",
      "on_back_in_stock": "stay_paused",
      "round_to": null,
      "updated_at": "2026-11-03T10:14:00Z"
    }
  ],
  "has_more": false,
  "cursor": null
}

同期ルールを取得

GET/v1/sync_rules/{id}

ルール1つ。

スコープproducts:read

パスパラメータ

idstring必須
ルールのID。

エラー

ステータスタイプ時期
404not-foundこのアカウントにそのルールはありません。
curl "https://www.ninjabuy.com/api/v1/sync_rules/rule_default" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11"
Response 200
HTTP/2 200 OK

{
  "id": "rule_default",
  "applies_to": "all",
  "on_cost_increase": {
    "action": "reprice",
    "keep_margin_percent": "30",
    "max_increase_percent": "15",
    "above_max": "pause"
  },
  "on_cost_decrease": "keep_price",
  "on_out_of_stock": "zero_stock",
  "on_back_in_stock": "restock",
  "round_to": ".99",
  "updated_at": "2026-11-02T08:00:00Z"
}

商品の個別ルール

POST/v1/sync_rules

個別ルールのある商品は、既定ルールではなくそちらに従います。省略したフィールドは既定ルールの値を使います。

スコープproducts:write

ボディ

applies_tostring必須
既定ルールなら all、個別ルールなら商品ID。
on_cost_increase.actionstring
利益を維持するよう価格変更、商品を一時停止、または通知のみ。
on_cost_increase.keep_margin_percentstring
reprice の場合:販売価格に対して維持する利益率。
on_cost_increase.max_increase_percentstring|null
reprice の場合:一度に上げられる価格の上限。超えた場合は above_max が適用されます:pause または notify。
on_cost_decreasestring
keep_price、または同じ利益率まで値下げ。
on_out_of_stockstring
常に zero_stock:売り切れのSKUは各チャンネルで在庫0と表示されます。
on_back_in_stockstring
restock、または再開するまで stay_paused。
round_tostring|null
価格変更後の価格の端数(.99や.00など)。

エラー

ステータスタイプ時期
404not-foundこのアカウントにその商品はありません。
409invalid-stateこの商品にはすでに個別ルールがあります。そちらを置き換えてください。
curl -X POST "https://www.ninjabuy.com/api/v1/sync_rules" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "applies_to": "prd_1x0a",
    "on_cost_increase": { "action": "pause" },
    "on_back_in_stock": "stay_paused"
  }'
Response 201
HTTP/2 201 Created

{
  "id": "rule_9p3e",
  "applies_to": "prd_1x0a",
  "on_cost_increase": { "action": "pause" },
  "on_cost_decrease": "keep_price",
  "on_out_of_stock": "zero_stock",
  "on_back_in_stock": "stay_paused",
  "round_to": null,
  "updated_at": "2026-11-03T10:14:00Z"
}

同期ルールを置き換え

PUT/v1/sync_rules/{id}

ルール全体を送ってください。各出品を次に読み取ったときから適用されます。

スコープproducts:write

パスパラメータ

idstring必須
ルールのID。

ボディ

on_cost_increase.actionstring
利益を維持するよう価格変更、商品を一時停止、または通知のみ。
on_cost_increase.keep_margin_percentstring
reprice の場合:販売価格に対して維持する利益率。
on_cost_increase.max_increase_percentstring|null
reprice の場合:一度に上げられる価格の上限。超えた場合は above_max が適用されます:pause または notify。
on_cost_decreasestring
keep_price、または同じ利益率まで値下げ。
on_out_of_stockstring
常に zero_stock:売り切れのSKUは各チャンネルで在庫0と表示されます。
on_back_in_stockstring
restock、または再開するまで stay_paused。
round_tostring|null
価格変更後の価格の端数(.99や.00など)。

エラー

ステータスタイプ時期
404not-foundこのアカウントにそのルールはありません。
curl -X PUT "https://www.ninjabuy.com/api/v1/sync_rules/rule_default" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11" \
  -H "Content-Type: application/json" \
  -d '{
    "on_cost_increase": { "action": "notify" },
    "on_cost_decrease": "keep_price",
    "on_out_of_stock": "zero_stock",
    "on_back_in_stock": "restock",
    "round_to": ".99"
  }'
Response 200
HTTP/2 200 OK

{
  "id": "rule_default",
  "applies_to": "all",
  "on_cost_increase": { "action": "notify" },
  "on_cost_decrease": "keep_price",
  "on_out_of_stock": "zero_stock",
  "on_back_in_stock": "restock",
  "round_to": ".99",
  "updated_at": "2026-11-02T08:00:00Z"
}

個別ルールを削除

DELETE/v1/sync_rules/{id}

商品は再び既定ルールに従います。rule_default 自体は削除できません。

スコープproducts:write

パスパラメータ

idstring必須
ルールのID。

エラー

ステータスタイプ時期
409invalid-staterule_default は削除できません。
curl -X DELETE "https://www.ninjabuy.com/api/v1/sync_rules/rule_9p3e" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11"
Response 200
HTTP/2 200 OK

{ "id": "rule_9p3e", "deleted": true }