キーワード密度API APIリファレンス
ページ上で出現頻度の高いキーワードとフレーズを、密度のパーセンテージ付きで調べます。 このリファレンスで操作を選び、文書化されたレスポンス契約を統合できます。
操作
GET /v1/keyword-density
GET
/v1/keyword-density
クレジット: 2-6
クエリパラメータ
| パラメータ | タイプ | 必須 |
|---|---|---|
| url | string | 必須 |
| render | boolean | オプション |
| keywords | string | オプション |
| top |
integer
デフォルト
20
|
オプション |
| include_stopwords | boolean | オプション |
レスポンスフィールド
| フィールド | タイプ |
|---|---|
url |
string |
final_url |
string |
status |
string |
reason |
string | null |
checked_at |
string |
fetch |
object |
fetch.http_status |
integer | null |
fetch.final_url |
string |
fetch.content_type |
string | null |
fetch.bytes |
integer |
fetch.truncated |
boolean |
fetch.redirect_count |
integer |
fetch.duration_ms |
integer |
fetch.rendered |
boolean |
language |
string | null |
total_words |
integer |
unique_words |
integer |
stopwords_removed |
boolean |
keywords |
object |
keywords.one_word[] |
object[] |
keywords.one_word[] |
object |
keywords.one_word[].keyword |
string |
keywords.one_word[].count |
integer |
keywords.one_word[].density |
number |
keywords.two_words[] |
object[] |
keywords.two_words[] |
object |
keywords.two_words[].keyword |
string |
keywords.two_words[].count |
integer |
keywords.two_words[].density |
number |
keywords.three_words[] |
object[] |
keywords.three_words[] |
object |
keywords.three_words[].keyword |
string |
keywords.three_words[].count |
integer |
keywords.three_words[].density |
number |
targets[] |
object[] |
targets[] |
object |
targets[].keyword |
string |
targets[].count |
integer |
targets[].density |
number |
targets[].in_title |
boolean |
targets[].in_meta_description |
boolean |
targets[].in_h1 |
boolean |
targets[].in_headings |
boolean |
targets[].in_url |
boolean |
targets[].in_first_100_words |
boolean |
caveats[] |
string[] |
リクエスト例
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/keyword-density?url=https%3A%2F%2Fexample.com&render=false&keywords=launch%2Cgrid&top=20&include_stopwords=false"const response = await fetch("https://domscan.net/v1/keyword-density?url=https%3A%2F%2Fexample.com&render=false&keywords=launch%2Cgrid&top=20&include_stopwords=false", {
headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);import os
import requests
response = requests.get(
"https://domscan.net/v1/keyword-density?url=https%3A%2F%2Fexample.com&render=false&keywords=launch%2Cgrid&top=20&include_stopwords=false",
headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/keyword-density?url=https%3A%2F%2Fexample.com&render=false&keywords=launch%2Cgrid&top=20&include_stopwords=false", nil)
if err != nil {
panic(err)
}
req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(resp.Status, string(data))
}require "json"
require "net/http"
uri = URI("https://domscan.net/v1/keyword-density?url=https%3A%2F%2Fexample.com&render=false&keywords=launch%2Cgrid&top=20&include_stopwords=false")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))レスポンス例
{
"url": "https://example.com/shoes/trail-runner",
"final_url": "https://example.com/shoes/trail-runner",
"status": "ok",
"reason": null,
"checked_at": "2026-10-13T12:00:00.000Z",
"fetch": {
"http_status": 200,
"final_url": "https://example.com/shoes/trail-runner",
"content_type": "text/html",
"bytes": 3535,
"truncated": false,
"redirect_count": 0,
"duration_ms": 412,
"rendered": false
},
"language": "en",
"total_words": 122,
"unique_words": 86,
"stopwords_removed": true,
"keywords": {
"one_word": [
{
"keyword": "shoes",
"count": 5,
"density": 4.1
},
{
"keyword": "trail",
"count": 5,
"density": 4.1
},
{
"keyword": "running",
"count": 5,
"density": 4.1
}
],
"two_words": [
{
"keyword": "trail running",
"count": 5,
"density": 4.1
},
{
"keyword": "running shoes",
"count": 4,
"density": 3.28
},
{
"keyword": "rocky terrain",
"count": 3,
"density": 2.46
}
],
"three_words": [
{
"keyword": "trail running shoes",
"count": 4,
"density": 3.28
}
]
},
"targets": [
{
"keyword": "trail running shoes",
"count": 4,
"density": 3.28,
"in_title": true,
"in_meta_description": true,
"in_h1": true,
"in_headings": true,
"in_url": false,
"in_first_100_words": true
}
],
"caveats": []
}
HTTP ステータスコード
200成功400不正なリクエスト401未認証402支払いが必要429リクエスト過多