API ドキュメント

プラットフォーム API の連携ルール

API キーの正しい送信、レスポンス構造の選択、最初のリクエスト、エラー処理、テストデータの検証をまとめた簡潔な連携リファレンスです。

どこから始めるか

このページで定めていること

このページには、特定の API メソッドに依存しないルールをまとめています:認証、レスポンスのバージョン、エラー処理、再試行、テスト API の使い方、本番前の確認です。

メソッド固有のパラメーター、スキーマ、例については API リファレンスを使用してください。カバー範囲とメソッドのグループを比較するには、プラットフォームのページを使用してください。

このページは、新しい連携のためのチーム共通の基礎として扱ってください。API リファレンスを繰り返すのではなく、補完するものです。
リクエストごとに 1 つのキー

認証

プラットフォーム API へのすべてのリクエストで、API キーを `X-API-Key` ヘッダーに含めて送信してください。

キーはダッシュボードのセッションから引き継がれません。バックエンドサービス、ワーカー、バックグラウンドジョブは、このヘッダーを明示的に送信する必要があります。

  • キーはシークレットストアに保管し、アクセス権が変わったときや漏洩が疑われるときはローテーションしてください。
  • キーをブラウザーのコード、公開リポジトリ、クライアントバンドル、ログに含めないでください。
  • 可能であれば、環境ごと、サービスごとにキーへのアクセスを制限してください。
レスポンスのバージョン

レスポンス構造を選ぶ

V1 と V2 は同じ API メソッドのカタログを提供しますが、返すデータ構造が異なります。クライアントを構築する前にバージョンを選び、連携の設定で固定してください。

同じ処理フローで V1 と V2 を混在させないでください。マッピング、キャッシュ、テスト、保守が複雑になります。

V1
元のレスポンス V1

ソースプラットフォームのレスポンスの形を、ScrapeStorm による最小限の変更で維持します。

使用する場面

移行、後方互換性、既にプラットフォーム固有のフィールドに依存しているクライアント。

デフォルトでは V2 を使用してください。V1 は既存クライアントの互換性や移行のためにのみ残してください。
通信の確認

最初の実際の API リクエストを送る

バージョンを選んだら、ライブ API のメソッドで連携を確認します:ベース URL、ヘッダー、クエリパラメーター、タイムアウト、エラー処理です。

HTTP メソッド GET
エンドポイント /api/v2/youtube.com/profile/about-by-user-identifier
クエリパラメーターの例 user_identifier=mkbhd
ヘッダー X-API-Key

この例では YouTube の API メソッド `profile/about-by-user-identifier` を使用しています。`user_identifier` は、ご自身のシナリオのテスト用 ID に置き換えてください。

成功したレスポンスは、通信と最上位の構造が機能していることを示すにすぎません。本番で使用する各 API メソッドについて、制限、料金、エラー処理とあわせて検証してください。
レスポンスのエンベロープ

レスポンスの形を確認する

V1 と V2 のプラットフォーム API の公開メソッドは、同じ外側のエンベロープ `success`、`status`、`data` を使用します。コレクションのメソッドでは、最上位に `pagination` が含まれる場合もあります。

バージョンの選択で変わるのは `data` 内のスキーマであり、通信のエンベロープではありません。選択したメソッドの正確なフィールドは API リファレンスを参照してください。

レスポンスの種類 最上位のフィールド 最初に読むべきもの
成功したレスポンス success, status, data `data` にメソッドのデータが含まれます。
ページ分割された成功レスポンス success, status, pagination, data `pagination` は最上位にあり、メソッドのデータは `data` に残ります。
エラーレスポンス success, status, error, meta HTTP ステータスと `error.code` で分岐します。
エンベロープから V1 か V2 かを推測しないでください。URL とクライアントの設定でバージョンを固定し、そのバージョンのリファレンスに従ってメソッドのスキーマを解釈してください。
エラーと再試行

エラーはテキストではなくコードで処理する

エラーは共通のエンベロープを使用します。HTTP ステータスと `error.code` で分岐してください。`message` フィールドは表示やログ用であり、アプリケーションの制御フローには使用しないでください。

  • `401`、`402`、`422` は、原因が変わるまで再試行しないでください。
  • `429 RATE_LIMIT_EXCEEDED` は、`Retry-After` または `error.retry_after_seconds` の後にのみ再試行してください。
  • `500` と `503` は、上限付きのバックオフと試行回数の上限を設けて再試行してください。
HTTP ステータス エラーコード クライアントの対応
401 認証されていません UNAUTHORIZED API キーと環境を確認してください。同じキーで同じリクエストをループで再試行しないでください。
422 検証に失敗しました VALIDATION_FAILED リクエストのパラメーターを修正してください。同じ入力では同じエラーが返されます。
402 クレジットが不足しています INSUFFICIENT_CREDITS 残高またはアカウントの制限が更新されるまで、処理を停止してください。
429 同時接続数の上限を超えました CONCURRENT_CONNECTIONS_EXCEEDED API キーごとの並列処理を減らすか、リクエストをキューに入れてください。
429 レート制限を超えました RATE_LIMIT_EXCEEDED 指定された再試行の間隔を待ち、ワーカー間で再試行を調整してください。
503 エンドポイントを利用できません ENDPOINT_UNAVAILABLE 他のメソッドが動作している場合は、連携全体を停止するのではなく、メソッド単位でバックオフを適用してください。
500 サーバー内部エラー INTERNAL_SERVER_ERROR 上限付きのバックオフで再試行してください。試行回数の上限に達したら、失敗をログに記録し、監視を通じてエスカレーションしてください。
`RATE_LIMIT_EXCEEDED` の場合、次の試行のタイミングを判断できる信頼できる情報源は `Retry-After` または `error.retry_after_seconds` のみです。
テスト API

テストデータで形を検証する

テスト API のメソッドは、ソースプラットフォームを呼び出さずに静的な JSON の例を返します。クライアント、画面、パーサーのテストの開発に使用してください。

テスト API は、メソッドの可用性、データの鮮度、制限、料金、本番での挙動を保証するものではありません。本番前に、同じシナリオをライブ API で再実行してください。
  • データの鮮度の確認にテストデータを使用しないでください。
  • テストの値をライブ連携のロジックに持ち込まないでください。
  • 比較するのは、エンベロープ、フィールド名、レスポンスの基本構造のみにしてください。
テスト API https://www.scrapestorm.net/api-mock
例 https://www.scrapestorm.net/api-mock/v2/youtube.com/profile/about-by-user-identifier?user_identifier=mkbhd
API リファレンス
導入前

本番環境のチェックリスト

実際のトラフィックを流し、ワーカーの並列度を上げる前に、これらの確認を行ってください。

  1. 01

    レスポンスのバージョンが固定されている

    新しいクライアントは V2 を使用します。V1 は、既存の連携の互換性や移行のためにのみ許可されます。

  2. 02

    API キーがシークレットとして保管されている

    キーはシークレットストアにあり、フロントエンドのコード、公開リポジトリ、クライアントバンドル、ログには含まれていません。

  3. 03

    エラー処理が機械可読なコードに基づいている

    クライアントの分岐は HTTP ステータスと `error.code` に依存しています。`message` はビジネスロジックで使用されていません。

  4. 04

    再試行に上限がある

    `RATE_LIMIT_EXCEEDED` は `Retry-After` または `error.retry_after_seconds` を待ちます。`402` と `422` は同じ入力で再試行しません。`500` と `503` にはバックオフと試行回数の上限があります。

  5. 05

    並列度が API キーごとに制御されている

    キューまたはレートリミッターが、ワーカー、cron ジョブ、バックグラウンドプロセスからの同時リクエストを制限しています。

  6. 06

    テストと本番が別々に検証されている

    テストデータはデータの形を検証します。ライブ API は実際のパラメーター、制限、可用性、クレジットの消費を検証します。

  7. 07

    API メソッドの料金が確認されている

    トラフィックが増える前に、使用する API メソッドのコストを確認してください。

次へ

API リファレンスとプラットフォーム

各メソッドの具体的なパラメーター、スキーマ、例については、必要なバージョンの API リファレンスを開いてください。ソースとメソッドのグループを選ぶには、プラットフォームを使用してください。