連携ガイド

ネクストエンジンAPI連携|認証・実装・サンプルコード

ネクストエンジンAPI連携|認証・実装・サンプルコード

ネクストエンジン(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

  • 大量データの非同期処理
  • イベント通知
図1:ネクストエンジンAPIの3カテゴリ

本記事では自社利用APIに絞って解説します。多店舗運営者が「自社ECとネクストエンジンの在庫を同期したい」「基幹システムから受注ステータスを更新したい」といった用途で実装するパターンを想定しています。

利用開始までの準備

ネクストエンジンAPIを使い始めるまでの手順は次の5ステップです。30分〜1時間で完了します。

ネクストエンジン本体契約

月額1万円〜のプラン契約。API利用に追加料金なし

ネクストエンジン Developers登録

developer.next-engine.net で開発者アカウント作成

アプリ登録

「アプリ作成」でClient ID・Client Secretを取得

コールバックURL設定

OAuth認可後の戻り先URLを登録

初回認可と トークン取得

初回1回だけブラウザで認可。リフレッシュトークンを保存

図2:API利用開始までの5ステップ

商用アプリとして公開する場合は審査がありますが、自社利用なら審査不要で即時利用開始できます。Client ID・Client Secret・コールバックURLが揃った時点で実装に入れます。

OAuth 2.0認証フローと実装

ネクストエンジンAPIの認証はOAuth 2.0の認可コードフローです。標準的なフローで、4ステップに分かれます。

認可リクエスト

ユーザーをネクストエンジン認可画面にリダイレクト。client_id・redirect_uriを付与

認可コード受領

ユーザー承認後、コールバックURLに認可コード(uid・state)が返る

トークン交換

認可コードをアクセストークン・リフレッシュトークンに交換

APIリクエスト

アクセストークンをパラメータに含めてAPIエンドポイントを呼び出し

図3:OAuth 2.0認証フロー

認可リクエストの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カテゴリ取得・更新
表1:ネクストエンジンAPI主要エンドポイント

各エンドポイントは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スリープ
表2:レート制限・エラー対応の実装方針

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: タイムアウト→クエリ範囲縮小
  • 長時間続く場合は監視通知
図4:API連携の主要エラー4分類

とくに見落としやすいのが「日付フォーマット」と「文字コード」です。ネクストエンジンは日付を「YYYY/MM/DD HH:MI:SS」または「YYYY-MM-DD HH:MI:SS」、文字コードはUTF-8固定で受け付けます。自社システムが別フォーマットなら、リクエスト前に変換層を入れる設計が必要です。

運用上の注意点

API連携の本番運用で必ず気を付けるべきポイントを整理します。

認証情報の安全管理

Client Secret・Refresh Tokenの扱い

  • 環境変数or秘密管理サービス
  • Gitに絶対コミットしない
  • 定期ローテーション

同時実行の整合性

在庫数の競合

  • 更新前に最新値を取得
  • 排他制御 or 楽観ロック
  • 失敗時はリトライ

監視・通知

本番障害の検知

  • 連携失敗時の通知
  • レート制限到達アラート
  • 定期的な疎通確認

バックアップ・冪等性

障害からの復旧

  • 更新前データの保存
  • 同一処理の重複実行対策
  • 復旧手順のドキュメント化
図5:API連携運用の4必須項目

ネクストエンジン関連の他記事として ネクストエンジン在庫連携できない原因と対処 もご覧ください。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実装、レート制限対策、エラーハンドリング、本番監視まで含めた設計で、運用負荷の低い自動化を実現します。お気軽にご相談ください。

無料相談する