初めてのAPI呼び出し
認証を行い、拠点の一覧を取得し、レスポンスの構造を確認し、結果をページ単位で取得して、IDの仕組みを学びます。
このガイドは、はじめにの手順でアカウントとAPIキーを取得済みであることを前提としています。すべてのリクエストはhttps://listingsapi.comの本番APIに対して実行されるため、通常のAPIキーで書き込みを行うと、実際のデータが変更されます。実際の掲載先に影響を与えずにAPIを試すには、無料のサンドボックスデイパスを使用してください。
1. APIキーを設定する
ダッシュボードのAPIキーからキーをコピーし、シェルで一度exportしてください。
export LISTINGSAPI_KEY="your-api-key"キーにはアクセスレベルが設定されています。Read(読み取り)キーは、これらのガイドにあるすべての検索とレポートに使用できます。何かを作成または更新する場合、レビューに返信する場合、投稿を公開する場合は、Write(書き込み)キーが必要です。Readキーを書き込み用エンドポイントに送信すると、そのエンドポイントはエラーコードSY90016とともにHTTP 400を返します。
2. 拠点の一覧を取得する
他のエンドポイントではIDで拠点を参照するため、まず登録済みの拠点の一覧を取得します。RESTのAuthorizationヘッダーではAPIスキームを使用し、その後にスペースとAPIキーを続けます:Authorization: API <YOUR_API_KEY>。
curl "https://listingsapi.com/api/v4/locations?first=5" \-H "Authorization: API $LISTINGSAPI_KEY"3. レスポンスを読み取る
REST APIは、配列だけではなく、入れ子構造のレスポンスを返します。操作名はdataの下にあり、一覧の結果はedgesのコネクションとして返され、各エッジにはnodeが含まれます。
{ "data": { "allLocations": { "edges": [ { "cursor": "TG9jYXRpb246MTgwMDI4OQ==", "node": { "id": "TG9jYXRpb246MTgwMDI4OQ==", "databaseId": 1800289, "name": "Jenny Home", "city": "Austin", "stateIso": "TX", "approved": "APPROVED", "subCategoryName": "Restaurants" } } ], "pageInfo": { "hasNextPage": false, "endCursor": "TG9jYXRpb246MTgwMDI4OQ==" } } }}Python SDKは、オブジェクトを格納した反復処理可能なページを返します。Node SDKはlocationsとpageInfoを返します。REST APIを直接呼び出す場合は、data.allLocations.edges[].nodeを読み取ってください。
4. 結果をページごとに取得する
拠点とレビューの一覧取得用エンドポイントは、カーソルによるページネーションを使用します。firstでページをリクエストし、次にpageInfo.endCursorをafterとして渡して次のページを取得します。SDKでは、すべてのページを自動的に読み取れます。
curl "https://listingsapi.com/api/v4/locations?first=50&after=TG9jYXRpb246MTgwMDI4OQ==" \-H "Authorization: API $LISTINGSAPI_KEY"すべてのエンドポイントがこのページネーション方式を使用するわけではありません。接続済みアカウント、重複の集計、投稿では、pageとperPage、およびrecords配列を使用します。各ガイドには、そのエンドポイントが使用するページネーション形式を記載しています。
5. 2種類のID
すべてのレコードには2つの識別子があります。idはTG9jYXRpb246MTgwMDI4OQ==のようなbase64文字列で、デコードするとLocation:1800289になります。databaseIdは、エンコードされていない数値の1800289です。
base64形式のidを保存してください。すべての書き込み用エンドポイントではbase64でエンコードされたIDが必要であり、Webhookペイロードでもこの形式の値が返されます。パスで拠点を指定する読み取り用エンドポイントの多くは、エンコードされていない数値も受け付け、どちらのSDKも両方の形式を受け付けて必要なエンコードを行います。
6. エラーとレート制限
失敗時のレスポンスでは、対応するHTTPステータスとerrors配列が返されます。メッセージの先頭には、エラーコードに記載されているSYエラーコードが付いています。
{ "data": { "allLocations": null }, "errors": [{ "message": "SY90005: Invalid Token" }]}レート制限はプランごとに設定され、リクエスト数は1分、1時間、1日単位で集計されます。Launchでは、1分あたり10リクエストが許可されます。制限を超えると、APIはRetry-Afterヘッダーとともに429を返すため、すぐに再試行せず、そのヘッダーが示す秒数だけ待ってください。SDKはRateLimitErrorを送出し、同じ値を取得できるようにします。詳細はレート制限を参照してください。
次の手順
- 連携方法を選ぶ: REST、SDK、MCP、Webhookと、それぞれに適した用途を確認します。
- 拠点を追加する: 初めての書き込みリクエストを実行します。
- Googleに接続して拠点をインポートする: すでに管理しているプロフィールを取り込みます。