Relevant Pages
curl --request POST \
--url https://api.socq.ai/v1/seo/relevant-pages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"target": "example.com",
"location_code": 2840,
"language_code": "en",
"results_limit": 100
}
'import requests
url = "https://api.socq.ai/v1/seo/relevant-pages"
payload = {
"target": "example.com",
"location_code": 2840,
"language_code": "en",
"results_limit": 100
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
target: 'example.com',
location_code: 2840,
language_code: 'en',
results_limit: 100
})
};
fetch('https://api.socq.ai/v1/seo/relevant-pages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.socq.ai/v1/seo/relevant-pages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'target' => 'example.com',
'location_code' => 2840,
'language_code' => 'en',
'results_limit' => 100
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.socq.ai/v1/seo/relevant-pages"
payload := strings.NewReader("{\n \"target\": \"example.com\",\n \"location_code\": 2840,\n \"language_code\": \"en\",\n \"results_limit\": 100\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.socq.ai/v1/seo/relevant-pages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"target\": \"example.com\",\n \"location_code\": 2840,\n \"language_code\": \"en\",\n \"results_limit\": 100\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.socq.ai/v1/seo/relevant-pages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"target\": \"example.com\",\n \"location_code\": 2840,\n \"language_code\": \"en\",\n \"results_limit\": 100\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"data": {
"task_id": "<string>",
"status": "<string>",
"created_time": "<string>"
}
}{
"code": 422,
"error": {
"message": "<string>",
"type": "<string>",
"details": {}
}
}Relevant Pages
Find pages with measurable organic or paid search value.
POST
/
v1
/
seo
/
relevant-pages
Relevant Pages
curl --request POST \
--url https://api.socq.ai/v1/seo/relevant-pages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"target": "example.com",
"location_code": 2840,
"language_code": "en",
"results_limit": 100
}
'import requests
url = "https://api.socq.ai/v1/seo/relevant-pages"
payload = {
"target": "example.com",
"location_code": 2840,
"language_code": "en",
"results_limit": 100
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
target: 'example.com',
location_code: 2840,
language_code: 'en',
results_limit: 100
})
};
fetch('https://api.socq.ai/v1/seo/relevant-pages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.socq.ai/v1/seo/relevant-pages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'target' => 'example.com',
'location_code' => 2840,
'language_code' => 'en',
'results_limit' => 100
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.socq.ai/v1/seo/relevant-pages"
payload := strings.NewReader("{\n \"target\": \"example.com\",\n \"location_code\": 2840,\n \"language_code\": \"en\",\n \"results_limit\": 100\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.socq.ai/v1/seo/relevant-pages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"target\": \"example.com\",\n \"location_code\": 2840,\n \"language_code\": \"en\",\n \"results_limit\": 100\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.socq.ai/v1/seo/relevant-pages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"target\": \"example.com\",\n \"location_code\": 2840,\n \"language_code\": \"en\",\n \"results_limit\": 100\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"data": {
"task_id": "<string>",
"status": "<string>",
"created_time": "<string>"
}
}{
"code": 422,
"error": {
"message": "<string>",
"type": "<string>",
"details": {}
}
}Relevant Pages
{
"target": "microsoft.com",
"location_code": 2840,
"language_code": "en",
"results_limit": 5
}
结果字段
任务结果使用下列稳定的 SocQ 字段。来源特有的字段名称和格式会被规范化,但不会推断或补充来源未提供的值。如需请求更小的字段集,MCP 查询请使用fields,Typed 工具请使用 _result_fields,CLI 请使用 --result-fields。即使值为 null,已声明的字段仍会保留。
| 字段 | 类型 | 可空 | 说明 |
|---|---|---|---|
id | string | 是 | 当前结果项的唯一标识。 |
platform | string | 否 | 结果所属的平台,例如 instagram 或 linkedin。 |
resource | string | 否 | 该结果对应的 SocQ 资源,例如 videos 或 comments。 |
type | string | 否 | 结果项的类别,例如 video、post 或 comment。 |
url | string | 是 | 结果项的公开访问地址(如可获得)。 |
published_at | string | 是 | 源内容的发布时间(如可获得),使用 ISO 8601 格式。 |
collected_at | string | 否 | SocQ 采集或处理该结果的时间,使用 ISO 8601 格式。 |
title | string | 是 | 搜索结果标题。 |
text | string | 是 | 搜索结果摘要。 |
rank | integer | 是 | 该项目在搜索结果中的位置。 |
domain | string | 是 | 搜索结果所属域名。 |
result_type | string | 是 | 搜索引擎返回的结果类型。 |
任务完成响应
{
"code": 200,
"data": {
"task_id": "BYUG07YJY4QJR1K0",
"status": "succeeded",
"public_id": "seo/relevant-pages",
"result_count": 5,
"credits_amount": 0.75,
"results": {
"limit": 1,
"next_cursor": "OTc3Mw",
"has_more": true,
"schema_id": "serp-result",
"schema_version": "1.0",
"items": [
{
"id": "https://support.microsoft.com/en-us/windows/keyboard-shortcuts-in-windows-dcc61a57-8ff0-cffe-9796-cb9706c75eec",
"platform": "seo",
"resource": "relevant-pages",
"type": "relevant-pages",
"url": "https://support.microsoft.com/en-us/windows/keyboard-shortcuts-in-windows-dcc61a57-8ff0-cffe-9796-cb9706c75eec",
"published_at": null,
"collected_at": "2026-07-31T02:44:31.961617Z",
"title": "https://support.microsoft.com/en-us/windows/keyboard-shortcuts-in-windows-dcc61a57-8ff0-cffe-9796-cb9706c75eec",
"text": "https://support.microsoft.com/en-us/windows/keyboard-shortcuts-in-windows-dcc61a57-8ff0-cffe-9796-cb9706c75eec",
"rank": null,
"domain": null,
"result_type": "relevant-pages"
}
]
}
}
}
授权
bearerAuthapiKeyAuth
使用 Authorization: Bearer <token> 请求头进行身份验证。
请求体
application/json
请选用本接口支持的国家及该国家可用的语言。默认值为美国(2840)和英语(en);若该国家不支持英语,必须明确指定支持的语言。此接口不支持 location_code=2156。地区和语言支持范围与搜索量、实时 SERP 不同。
Domain, subdomain, or page URL.
Minimum string length:
1可选的任务完成回调 URL。
语言代码或语言筛选条件。
可用选项:
Albanian, Arabic, Armenian, Azeri, Bengali, Bosnian, Bulgarian, Chinese (Simplified), Chinese (Traditional), Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Latvian, Lithuanian, Macedonian, Malay, Norwegian (Bokmål), Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swedish, Tagalog, Thai, Turkish, Ukrainian, Urdu, Vietnamese Minimum string length:
1Language code must be supported for the selected country. A globally supported language can still be unavailable in a particular country.
可用选项:
ar, az, bg, bn, bs, cs, da, de, el, en, es, et, fi, fr, he, hi, hr, hu, hy, id, it, ja, ko, lt, lv, mk, ms, nb, nl, pl, pt, ro, ru, sk, sl, sq, sr, sv, th, tl, tr, uk, ur, vi, zh-CN, zh-TW Required string length:
2 - 10Supported country code for this SEO research endpoint. Support differs from live SERP and Keyword Search Volume; 2156 is unavailable here.
可用选项:
2008, 2012, 2024, 2031, 2032, 2036, 2040, 2048, 2050, 2051, 2056, 2068, 2070, 2076, 2100, 2104, 2116, 2120, 2124, 2144, 2152, 2158, 2170, 2188, 2191, 2196, 2203, 2208, 2218, 2222, 2233, 2246, 2250, 2276, 2288, 2300, 2320, 2344, 2348, 2356, 2360, 2372, 2376, 2380, 2384, 2392, 2398, 2400, 2404, 2410, 2428, 2440, 2458, 2470, 2484, 2492, 2498, 2504, 2528, 2554, 2558, 2566, 2578, 2586, 2591, 2600, 2604, 2608, 2616, 2620, 2642, 2682, 2686, 2688, 2702, 2703, 2704, 2705, 2710, 2724, 2752, 2756, 2764, 2784, 2788, 2792, 2804, 2807, 2818, 2826, 2840, 2854, 2858, 2862 必填范围:
x >= 1Supported country name; use either location_code or location_name.
可用选项:
Albania, Algeria, Angola, Argentina, Armenia, Australia, Austria, Azerbaijan, Bahrain, Bangladesh, Belgium, Bolivia, Bosnia and Herzegovina, Brazil, Bulgaria, Burkina Faso, Cambodia, Cameroon, Canada, Chile, Colombia, Costa Rica, Cote d'Ivoire, Croatia, Cyprus, Czechia, Denmark, Ecuador, Egypt, El Salvador, Estonia, Finland, France, Germany, Ghana, Greece, Guatemala, Hong Kong, Hungary, India, Indonesia, Ireland, Israel, Italy, Japan, Jordan, Kazakhstan, Kenya, Latvia, Lithuania, Malaysia, Malta, Mexico, Moldova, Monaco, Morocco, Myanmar (Burma), Netherlands, New Zealand, Nicaragua, Nigeria, North Macedonia, Norway, Pakistan, Panama, Paraguay, Peru, Philippines, Poland, Portugal, Romania, Saudi Arabia, Senegal, Serbia, Singapore, Slovakia, Slovenia, South Africa, South Korea, Spain, Sri Lanka, Sweden, Switzerland, Taiwan, Thailand, Tunisia, Turkiye, Ukraine, United Arab Emirates, United Kingdom, United States, Uruguay, Venezuela, Vietnam Minimum string length:
1请求参数。
必填范围:
x >= 0最多保存的结果数,实际结果可能少于该值。
必填范围:
1 <= x <= 1000
