ネクストエンジンAPI連携|認証・実装・サンプルコード
2026.06.02
ネクストエンジン(NE)は楽天市場・Amazon・Yahoo!ショッピング・ZOZOTOWN等のモール多店舗運営で広く使われる受注・在庫一元管理ツールです。API連携を組むことで、自社ECや基幹システム・倉庫管理システム(WMS)と直接データ連携でき、CSV運用を完全に排除した自動化を実現できます。
結論から言うと、ネクストエンジンAPIは「OAuth 2.0認証+REST API+レート制限1秒5req」という比較的標準的な作りで、実装難易度は高くありません。本記事ではAPI利用開始までの準備、OAuth 2.0認証フロー、主要エンドポイント、Python・Node.jsのサンプルコード、レート制限対策、エラー対処までを実装担当者の視点で整理します。エンジニア・情報システム担当者向けの内容です。
ネクストエンジンAPIの全体像
ネクストエンジンAPIは、ネクストエンジン本体の機能を外部から操作できるREST API群です。商品・受注・在庫・顧客・発注など、管理画面で操作できるほぼすべての機能をAPI経由で実行できます。
商用アプリAPI
複数ユーザーに提供するアプリ用
- ネクストエンジン審査必要
- アプリストア掲載可能
自社利用API
自社システムとの連携用
- 審査不要・即時利用可
- 本記事の対象
バッチ・通知系
非同期処理・Webhook
- 大量データの非同期処理
- イベント通知
本記事では自社利用APIに絞って解説します。多店舗運営者が「自社ECとネクストエンジンの在庫を同期したい」「基幹システムから受注ステータスを更新したい」といった用途で実装するパターンを想定しています。
利用開始までの準備
ネクストエンジンAPIを使い始めるまでの手順は次の5ステップです。30分〜1時間で完了します。
ネクストエンジン本体契約
月額1万円〜のプラン契約。API利用に追加料金なし
ネクストエンジン Developers登録
developer.next-engine.net で開発者アカウント作成
アプリ登録
「アプリ作成」でClient ID・Client Secretを取得
コールバックURL設定
OAuth認可後の戻り先URLを登録
初回認可と トークン取得
初回1回だけブラウザで認可。リフレッシュトークンを保存
商用アプリとして公開する場合は審査がありますが、自社利用なら審査不要で即時利用開始できます。Client ID・Client Secret・コールバックURLが揃った時点で実装に入れます。
OAuth 2.0認証フローと実装
ネクストエンジンAPIの認証はOAuth 2.0の認可コードフローです。標準的なフローで、4ステップに分かれます。
認可リクエスト
ユーザーをネクストエンジン認可画面にリダイレクト。client_id・redirect_uriを付与
認可コード受領
ユーザー承認後、コールバックURLに認可コード(uid・state)が返る
トークン交換
認可コードをアクセストークン・リフレッシュトークンに交換
APIリクエスト
アクセストークンをパラメータに含めてAPIエンドポイントを呼び出し
認可リクエストのURL例:
https://base.next-engine.org/users/sign_in/?client_id=YOUR_CLIENT_ID&redirect_uri=https://yourapp.example.com/callback
トークン交換のリクエスト例(POST):
POST https://api.next-engine.org/api_neauth
Content-Type: application/x-www-form-urlencoded
uid=ABC123&state=XYZ&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET
レスポンスにaccess_token・refresh_tokenが含まれます。アクセストークンの有効期限は12時間。期限切れ時はリフレッシュトークンで新しいアクセストークンを取得します。
主要エンドポイント一覧
ネクストエンジンAPIで提供される主要エンドポイントを、用途別に整理します。
| 用途 | 主要エンドポイント | 主な操作 |
|---|---|---|
| 商品マスタ | /api_v1_master_goods/search /api_v1_master_goods/upload | 商品検索・一括登録・更新 |
| 受注 | /api_v1_receiveorder_base/search /api_v1_receiveorder_base/update | 受注検索・ステータス更新 |
| 在庫 | /api_v1_master_stock/search /api_v1_master_stock/update | 在庫数取得・更新 |
| 顧客 | /api_v1_master_member/search | 顧客検索 |
| 発注 | /api_v1_master_supplier/search /api_v1_purchaseorder_base/search | 仕入先・発注検索 |
| 出荷 | /api_v1_master_shipping/search | 出荷情報取得 |
| モール連携 | /api_v1_master_shop/search | 店舗・モール情報取得 |
| カテゴリ | /api_v1_master_category/search | カテゴリ取得・更新 |
各エンドポイントはGETではなくPOSTで送信し、パラメータをform-data または query string で渡す形式です。レスポンスは標準でJSON形式(XML選択も可)。詳細仕様はネクストエンジン Developersのリファレンスで確認できます。
サンプルコード(Python・Node.js)
受注一覧を取得する最小コード例を、PythonとNode.jsで示します。両言語とも標準ライブラリ+HTTP通信ライブラリで実装可能です。
Python例(requests使用):
import requests
import json
# 環境変数または設定ファイルから取得
CLIENT_ID = "YOUR_CLIENT_ID"
CLIENT_SECRET = "YOUR_CLIENT_SECRET"
ACCESS_TOKEN = "YOUR_ACCESS_TOKEN" # 事前に取得済み
REFRESH_TOKEN = "YOUR_REFRESH_TOKEN"
API_BASE = "https://api.next-engine.org"
def fetch_receiveorders(access_token, refresh_token, start_date):
"""受注検索API"""
url = f"{API_BASE}/api_v1_receiveorder_base/search"
payload = {
"access_token": access_token,
"refresh_token": refresh_token,
"wait_flag": "0",
"fields": "receive_order_id,receive_order_date,receive_order_total_amount",
"receive_order_date-gte": start_date,
"limit": "100"
}
response = requests.post(url, data=payload)
return response.json()
result = fetch_receiveorders(ACCESS_TOKEN, REFRESH_TOKEN, "2026-06-01")
print(json.dumps(result, ensure_ascii=False, indent=2))
Node.js例(axios使用):
const axios = require("axios");
const CLIENT_ID = process.env.NE_CLIENT_ID;
const CLIENT_SECRET = process.env.NE_CLIENT_SECRET;
const ACCESS_TOKEN = process.env.NE_ACCESS_TOKEN;
const REFRESH_TOKEN = process.env.NE_REFRESH_TOKEN;
const API_BASE = "https://api.next-engine.org";
async function fetchReceiveOrders(startDate) {
const url = `${API_BASE}/api_v1_receiveorder_base/search`;
const params = new URLSearchParams({
access_token: ACCESS_TOKEN,
refresh_token: REFRESH_TOKEN,
wait_flag: "0",
fields: "receive_order_id,receive_order_date,receive_order_total_amount",
"receive_order_date-gte": startDate,
limit: "100",
});
const res = await axios.post(url, params);
return res.data;
}
fetchReceiveOrders("2026-06-01").then((data) => {
console.log(JSON.stringify(data, null, 2));
});
レスポンスにはaccess_token・refresh_tokenが含まれており、自動で延長されます。新しいトークンを保存して次回リクエストに使うことで、永続的に利用できます。
レート制限とリトライ設計
ネクストエンジンAPIは1秒あたり5リクエストが上限です。これを超えるとHTTP 429エラーが返り、しばらく拒否される状態になります。実装ではレート制御とリトライを最初から組み込むのが現実的です。
| 状況 | 対策 | 実装方針 |
|---|---|---|
| 1秒5req超過 | レスポンスヘッダ確認 | X-RateLimit-Remainingで残数監視 |
| HTTP 429 | 指数バックオフリトライ | 1秒→2秒→4秒で最大5回 |
| HTTP 500/503 | サーバー側の一時障害 | 30秒〜1分後にリトライ |
| タイムアウト | ネットワーク不安定 | タイムアウト30秒設定+3回リトライ |
| トークン期限切れ | refresh_tokenで再発行 | API応答で自動更新される |
| 大量データ取得 | ページング+スリープ | 1ページ毎に200msスリープ |
Pythonでの指数バックオフ実装例:
import time
def request_with_retry(url, payload, max_retries=5):
for attempt in range(max_retries):
response = requests.post(url, data=payload, timeout=30)
if response.status_code == 429:
sleep_sec = 2 ** attempt # 1, 2, 4, 8, 16
time.sleep(sleep_sec)
continue
if response.status_code >= 500:
time.sleep(30)
continue
return response
raise Exception("Max retries exceeded")
エラーパターンと対処
ネクストエンジンAPI連携でよく遭遇するエラーパターンと対処を整理します。
認証系エラー
トークン期限・不正値
- 401: トークン無効→refresh_tokenで再発行
- 403: 権限不足→アプリ権限スコープ見直し
- refresh_token紛失→初回認可からやり直し
レート制限系
過剰リクエスト
- 429: バックオフリトライ
- 1秒5req上限を守る設計
- 大量処理は分散実行
データ系
フォーマット違反
- 400: パラメータ不正→仕様確認
- 404: リソース未発見→ID確認
- 422: バリデーション失敗→必須項目確認
サーバー系
一時的障害
- 500/502/503: 30秒〜1分待機後リトライ
- 504: タイムアウト→クエリ範囲縮小
- 長時間続く場合は監視通知
とくに見落としやすいのが「日付フォーマット」と「文字コード」です。ネクストエンジンは日付を「YYYY/MM/DD HH:MI:SS」または「YYYY-MM-DD HH:MI:SS」、文字コードはUTF-8固定で受け付けます。自社システムが別フォーマットなら、リクエスト前に変換層を入れる設計が必要です。
運用上の注意点
API連携の本番運用で必ず気を付けるべきポイントを整理します。
認証情報の安全管理
Client Secret・Refresh Tokenの扱い
- 環境変数or秘密管理サービス
- Gitに絶対コミットしない
- 定期ローテーション
同時実行の整合性
在庫数の競合
- 更新前に最新値を取得
- 排他制御 or 楽観ロック
- 失敗時はリトライ
監視・通知
本番障害の検知
- 連携失敗時の通知
- レート制限到達アラート
- 定期的な疎通確認
バックアップ・冪等性
障害からの復旧
- 更新前データの保存
- 同一処理の重複実行対策
- 復旧手順のドキュメント化
ネクストエンジン関連の他記事として ネクストエンジン在庫連携できない原因と対処 もご覧ください。BtoB EC側との連携は BtoB ECサイト比較 、Bカートとの統合は Bカート価格ガイド も参考になります。API仕様の最新ドキュメントは ネクストエンジン Developers で確認できます。
よくある質問
- ネクストエンジンのAPIは無料で使えますか?
- ネクストエンジン本体の月額利用料(月額1万円〜)に含まれており、API利用に追加料金はかかりません。ただしAPI利用にはNEクラウド申込(無料)と、ネクストエンジンDevelopersでのアプリ登録が必要です。商用アプリ(モール販売)の場合は審査がありますが、自社利用の連携用途であれば即時利用可能です。
- ネクストエンジンAPIの認証方式は何ですか?
- OAuth 2.0です。標準フローは①ユーザーをネクストエンジン認可画面に誘導、②認可コードを取得、③アクセストークン・リフレッシュトークン取得、④APIリクエストにトークンを付与、という4ステップ。アクセストークンの有効期限は12時間、リフレッシュトークンは無期限(再認証不要)です。自社連携でユーザー認可なしのバッチ実行する場合は、最初に1回だけ認可してリフレッシュトークンを保存しておくパターンが標準です。
- ネクストエンジンAPIのレート制限はありますか?
- あります。1秒あたり5リクエストが標準上限です。これを超えるとHTTP 429エラーが返ります。大量データ取得時は、レスポンスヘッダの「X-RateLimit-Remaining」を確認しながらリクエスト間隔を制御することになります。バルク処理が必要な場合は、検索系APIは「offset・limit」でページング取得、更新系APIは1件ずつ順次実行する設計が安全です。
- ネクストエンジンAPIで何ができますか?
- 主要なものは①商品マスタの取得・更新、②受注の取得・ステータス更新、③在庫の取得・更新、④顧客情報の取得、⑤発注・出荷管理、⑥モール別連携情報の取得、⑦カテゴリマスタの操作、です。これにより自社ECサイト・基幹システム・倉庫管理システム(WMS)・PIM等と直接連携でき、CSV運用を完全に排除した自動化が可能です。
- ネクストエンジンAPI連携で失敗しやすい点は?
- ①レート制限超過によるHTTP 429、②文字コード(UTF-8固定)の取り扱い、③日付フォーマット(YYYY/MM/DD HH:MI:SS)の違い、④モール特有の項目マッピング(楽天・Amazon・Yahoo!の項目名差異)、⑤同時実行時の在庫数の整合性、⑥リフレッシュトークンの紛失で再認証必要、⑦APIタイムアウト時のリトライ設計、が代表例です。事前に設計しておくことで防げます。
ネクストエンジンAPI連携の設計・実装サポート
クラバルはネクストエンジンと自社EC(Bカート・Shopify等)・基幹システム・WMSとのAPI連携実装を支援しています。OAuth実装、レート制限対策、エラーハンドリング、本番監視まで含めた設計で、運用負荷の低い自動化を実現します。お気軽にご相談ください。
無料相談する