# レート制限

APIトークンごとのリクエスト制限と429レスポンスへの対応。

Source: https://support.toolingmetrics.com/ja/api/rate-limits/
Updated: 2026-10-07

公平な利用とシステムの安定性のため、リクエストはトークンごとに制限されます。

<a id="limits"></a>

## 制限

| 制限 | 値 |
|---|---|
| 毎分のリクエスト数 | 60 |

制限はAPIトークンごとに適用されます。複数のトークンを使う場合、それぞれ独立した上限があります。

<a id="handling-429-responses"></a>

## 429レスポンスの処理

上限を超えると、`Retry-After`ヘッダーを伴う`429 Too Many Requests`が返されます。

```
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 60

{ "errors": ["Rate limit exceeded"] }
```

`Retry-After`の値は、再試行まで待つ秒数です。

```python
import requests
import time

def api_get(url, token, retries=3):
    for attempt in range(retries):
        response = requests.get(url, headers={"Authorization": f"Bearer {token}"})
        if response.status_code == 429:
            wait = int(response.headers.get("Retry-After", 60))
            print(f"Rate limited. Waiting {wait}s...")
            time.sleep(wait)
            continue
        response.raise_for_status()
        return response.json()
    raise Exception("Rate limit retries exhausted")
```

<a id="staying-within-limits"></a>

## 制限内での利用

大規模な在庫同期や多数のプロジェクトのインポートなどの一括処理では、リクエストの間隔を空け、平均で毎秒1件未満にしてください。

毎分60件を継続して超える必要がある場合は、アカウントの上限についてサポートに相談してください。
