GetItemsは1回10件まで|Creators APIでASINをまとめて取る回数の計算

Creators APIのGetItemsには、1回の呼び出しで10件までのASINを入れられます。10件を1回で取っても、数える呼び出しは1回です。資格情報を作ってから最初の30日は1秒に1回・1日に8,640回が上限なので、1日に取れるASINは最大86,400件になります。この記事では、その根拠と、商品数ごとの呼び出し回数をPythonで計算します。

(確認:Amazonアソシエイト「Creators API Documentation」の GetItems・API Rates・Frequently Asked Questions。確認日:2026年10月29日。上限は変わることがあります)

公式ドキュメントに書かれている数字

項目 記載 ページ
1回に入れられるASIN itemIdsは「up to 10」 GetItems
10件を入れた1回の数え方 1回の呼び出し(1 transaction)として数える API Rates
最初の30日の上限 1秒に1回(1 TPS)、1日に8,640回(8,640 TPD) API Rates
30日より後の上限 Creators API経由の出荷売上に応じて自動で調整(最大10 TPS) API Rates
上限を超えた時 429(ThrottleException)。retryAfterSecondsが付くことがある Error Codes and Messages
アクセスを失った時 429(TooManyRequests)が返る API Rates

API Rates のページでは、30日より後の上限は「直前30日間の出荷売上5セントごとに1 TPD、4,320ドルごとに1 TPS(最大10 TPS)」と書かれています。売上が少なければ、最初の30日より上限が小さくなる可能性があります。

そもそもCreators APIを使うには、過去30日間に10件以上の適格売上が必要です(Introduction の Prerequisites)。要件を満たさないとAssociateNotEligibleの403が返ります。

API Rates のページには、アクセスを失った(取り消された)場合は429 TooManyRequestsが返るとも書かれています。売上の要件を満たさない時に、AssociateNotEligibleの403ではなく429で返る可能性があるので、429を呼び出しの回数の問題だけと決めつけず、売上の件数も確かめてください。

コード:10件ずつに分けて回数を出す

APIは呼ばず、ASINの一覧を10件ずつに分ける処理と、商品数ごとの呼び出し回数・かかる秒数・1日の上限に占める割合を計算します。ASINは説明用の仮の値です。

# Creators API の GetItems で ASIN をまとめて取る時の回数と時間を計算する(APIは呼ばない)
# 根拠:公式ドキュメント GetItems「itemIds … (up to 10)」、API Rates「最初の30日は 1 TPS・8,640 TPD」(2026年10月29日に確認)
import math

PER_CALL = 10      # 1回の GetItems に入れられる ASIN の数
TPS = 1            # 1秒あたりの呼び出し(最初の30日の上限)
TPD = 8640         # 1日あたりの呼び出し(最初の30日の上限)


def chunks(items, n=PER_CALL):
    return [items[i:i + n] for i in range(0, len(items), n)]


# 23件の ASIN(説明用の仮の値)を10件ずつに分ける
asins = [f'B0TEST{i:04d}' for i in range(1, 24)]
for k, c in enumerate(chunks(asins), 1):
    print(f'{k}回目: {len(c):>2}件  {c[0]} 〜 {c[-1]}')
print()

print(f'{"商品数":>6} {"呼び出し":>6} {"1TPSでの秒数":>10} {"1日の上限に占める割合":>14}')
for n in (23, 500, 5000, 86400, 100000):
    calls = math.ceil(n / PER_CALL)
    print(f'{n:>8,} {calls:>8,} {calls / TPS:>12,.0f} {calls / TPD:>16.1%}')
print()
print(f'1日に取れる ASIN の最大(最初の30日): {TPD * PER_CALL:,}件')

計算の結果(Python 3)

1回目: 10件  B0TEST0001 〜 B0TEST0010
2回目: 10件  B0TEST0011 〜 B0TEST0020
3回目:  3件  B0TEST0021 〜 B0TEST0023

   商品数   呼び出し   1TPSでの秒数    1日の上限に占める割合
      23        3            3             0.0%
     500       50           50             0.6%
   5,000      500          500             5.8%
  86,400    8,640        8,640           100.0%
 100,000   10,000       10,000           115.7%

1日に取れる ASIN の最大(最初の30日): 86,400件
  • 23件なら3回(10件・10件・3件)。端数の回も1回に数える
  • 500件の価格を毎日取り直しても50回で、1日の上限の0.6%
  • 100,000件は1日の上限(8,640回)を超えるので、最初の30日のうちは1日で取り切れない

まとめて取る時の注意

  • 応答の順番は、入れた順と同じとは限らない。GetItems のページには、取れないASINはerrorsに入り、そのため応答の並びが変わることがあるので、ASINの値で照らし合わせるよう書かれている
  • 一部のASINが取れなくても、ほかのASINはitemResultsで返る。取れなかったものだけを記録して、次回に回す
  • アクセストークンは1時間有効。呼び出しのたびに取り直すと、トークンを出す側の制限(429・Retry-After: 300の例)に当たる(Error Codes and Messages)
  • 同じ商品を何度も記事にしないよう、取得したASINは投稿の履歴と照らす(同じ商品で記事を量産するとどうなるか)

1秒1回を守る書き方の考え方

1 TPSの上限では、呼び出しの間を1秒以上あけます。429が返った時は、公式ドキュメントのとおり待ってから再試行し、retryAfterSecondsがあればその秒数を待ちます。待ち時間を少しずつ伸ばす再試行(指数バックオフ)は、Error Codes and Messages の Best Practices に挙げられています。

資格情報の発行は、アソシエイトのプライマリアカウントに限られます(Amazon Creators API 資格情報の取得手順)。PA-API 5から移る場合の全体の流れはAmazon PA-APIが403になる理由と、Creators APIへの移行にまとめています。

当サイトが開発・販売しているAmazon Auto Posts(¥9,800・買い切り)は、Creators APIで商品情報を取得し、記事の生成から投稿までを扱います。自社製品なので割り引いて読んでいただいて構いません。使うには Creators API の利用資格(過去30日間に10件以上の適格売上)が要り、OpenAIの利用料は購入代金に含まれません。

この記事で確かめていないこと

  • 実際のAPIでの応答時間(APIは呼んでいない。秒数は1秒1回の上限から出した最短の目安)
  • 30日より後に、自分のアカウントの上限がいくつになるか(売上による。アソシエイト・セントラルで確認する)
  • SearchItems など、GetItems 以外の操作で1回に返る件数(本記事では扱っていない)

まとめ

  • GetItems は1回10件まで。10件で1回と数える
  • 最初の30日は1秒1回・1日8,640回。1日に取れるASINは最大86,400件
  • 応答の順番は変わることがあるので、ASINで照らし合わせる。トークンは1時間使い回す

本記事は2026年10月29日時点のCreators API公式ドキュメントにもとづく整理です。上限は変わる可能性があるため、利用前に公式の記載を確認してください。