ドキュメント / APIリファレンス

APIリファレンス

SEOLens REST APIの完全なリファレンス。

ベースURL

https://seo-lens.site/api/v1

認証

すべてのAPIリクエストにはAPIキーが必要です。ダッシュボードにログインして無料のAPIキーを作成してください。AuthorizationヘッダーまたはX-API-Keyヘッダーでリクエストに含めてください。

Authorization: Bearer YOUR_API_KEY

# or

x-api-key: YOUR_API_KEY
POST

/research

1つまたは複数のキーワードをリサーチし、検索ボリューム、難易度、CPCデータ、関連キーワードサジェストを取得します。

リクエストボディ

パラメータ必須説明
keywordstringYes*リサーチする単一キーワード
keywordsstring[]Yes*キーワードの配列(最大50件)。次の代わりに使用: keyword
countryCodestringNo国コード(デフォルト: "US")。選択肢: US, JP, GB, DE, FR, CA, AU, BR, IN, KR, MX, ES, IT, NL, SE, TW, TH, VN, ID, PH
languageCodestringNo言語コード(デフォルト: "en")。選択肢: en, ja, de, fr, es, pt, it, nl, ko, zh, th, vi, id, sv

* 次のいずれかを指定: keyword または keywords(両方は不可)。

レスポンス形式(単一キーワード)

200 OK
{
  "keyword": "react hooks",
  "metrics": {
    "avgMonthlySearches": 18100,
    "competition": "LOW",
    "cpcLow": 0.15,
    "cpcHigh": 1.85
  },
  "difficulty": "easy",
  "suggestions": [
    {
      "keyword": "react custom hooks",
      "avgMonthlySearches": 6600,
      "competition": "LOW",
      "cpcLow": 0.10,
      "cpcHigh": 0.95
    }
  ]
}

レスポンス形式(バッチ)

200 OK
{
  "results": [
    {
      "keyword": "react hooks",
      "metrics": { ... },
      "difficulty": "easy",
      "suggestions": [ ... ]
    },
    {
      "keyword": "vue composables",
      "metrics": { ... },
      "difficulty": "medium",
      "suggestions": [ ... ]
    }
  ]
}

コード例

JavaScript / TypeScript

fetch
const response = await fetch("https://seo-lens.site/api/v1/research", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY",
  },
  body: JSON.stringify({
    keywords: ["nextjs seo"],
    countryCode: "US",
    languageCode: "en",
  }),
});

const data = await response.json();
console.log(data.results);

Python

requests
import requests

response = requests.post(
    "https://seo-lens.site/api/v1/research",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "keywords": ["nextjs seo"],
        "countryCode": "US",
        "languageCode": "en",
    },
)

data = response.json()
print(f"Results: {data['results']}")

cURL

bash
# Single keyword
curl -X POST https://seo-lens.site/api/v1/research \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"keywords": ["nextjs seo"], "countryCode": "US"}'

# Batch keywords
curl -X POST https://seo-lens.site/api/v1/research \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"keywords": ["react hooks", "vue composables"], "countryCode": "US"}'

エラーコード

ステータス説明
200成功 - キーワードデータが返されました
401Unauthorized - APIキーが不足または無効
400Bad Request - パラメータが不足または無効
429レート制限超過 - リクエストが多すぎます
500内部サーバーエラー - しばらくしてから再試行してください

レート制限

無料プランでは、すべてのユーザーの公平な利用を確保するためにレート制限が適用されます。

  • IPアドレスごとに1日100リクエスト
  • バッチリクエストごとに50キーワード
  • キャッシュ済みの結果はレート制限にカウントされません