{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-@l10n/ja/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"レート制限"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"レート制限","__idx":0},"children":["レート制限"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["MoreLogin API は、公平な使用とシステムの安定性を確保するためにレート制限を適用します。"]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"限界","__idx":1},"children":["限界"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"API タイプ"},"children":["API タイプ"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"レート制限"},"children":["レート制限"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"窓"},"children":["窓"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["ローカル API"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["120件のリクエスト"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["毎分"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["オープンAPI"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["120件のリクエスト"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["毎分"]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"レート制限応答","__idx":2},"children":["レート制限応答"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["レート制限を超えると、API は次を返します。"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HTTP ステータス"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["429 Too Many Requests"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"code\": 429,\n  \"msg\": \"Rate limit exceeded\",\n  \"data\": null,\n  \"requestId\": \"...\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"ベストプラクティス","__idx":3},"children":["ベストプラクティス"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1バックオフ付きリトライの実装","__idx":4},"children":["1.バックオフ付きリトライの実装"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"import time\nimport requests\n\ndef api_request_with_retry(url, payload, max_retries=3):\n    for attempt in range(max_retries):\n        response = requests.post(url, json=payload)\n        if response.status_code == 429:\n            wait_time = 2 ** attempt  # 1s, 2s, 4s\n            print(f\"Rate limited. Retrying in {wait_time}s...\")\n            time.sleep(wait_time)\n            continue\n        return response\n    raise Exception(\"Max retries exceeded\")\n","lang":"python"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2-バッチ操作","__idx":5},"children":["2. バッチ操作"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["個別の API 呼び出しを行う代わりに、利用可能な場合はバッチ エンドポイントを使用します。"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"# Bad: 100 individual calls\nfor env_id in env_ids:\n    requests.post(f\"{BASE}/api/env/start\", json={\"envId\": env_id})\n\n# Good: Use batch endpoints\nrequests.post(f\"{BASE}/api/env/updateGroup/batch\", json={\n    \"envIds\": env_ids,\n    \"groupId\": \"target-group\"\n})\n","lang":"python"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3-応答のキャッシュ","__idx":6},"children":["3. 応答のキャッシュ"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["頻繁に変更されないデータ (タイムゾーン リスト、プラットフォーム リストなど) の場合は、応答をローカルにキャッシュします。"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"# Cache timezone/language data — it rarely changes\ntimezone_data = requests.post(f\"{BASE}/api/env/advanced/timezone\").json()\n# Reuse timezone_data for subsequent profile creations\n","lang":"python"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"使用状況の監視","__idx":7},"children":["使用状況の監視"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["API 呼び出しの頻度を追跡します。常に限界に近づいている場合は、次のことを考慮してください。"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["リクエストを分単位で均等に分散する"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["ポーリングの代わりに Webhook を使用する (近日公開予定)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["複数の操作をバッチ呼び出しに結合する"]}]}]},"headings":[{"value":"レート制限","id":"レート制限","depth":1},{"value":"限界","id":"限界","depth":2},{"value":"レート制限応答","id":"レート制限応答","depth":2},{"value":"ベストプラクティス","id":"ベストプラクティス","depth":2},{"value":"1.バックオフ付きリトライの実装","id":"1バックオフ付きリトライの実装","depth":3},{"value":"2. バッチ操作","id":"2-バッチ操作","depth":3},{"value":"3. 応答のキャッシュ","id":"3-応答のキャッシュ","depth":3},{"value":"使用状況の監視","id":"使用状況の監視","depth":2}],"frontmatter":{"seo":{"title":"レート制限"}},"lastModified":"2026-06-10T11:47:34.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/ja/api-reference/getting-started/rate-limits","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}