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.
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
}
Result Fields
Task results use the stable SocQ fields below. Source-specific field names and formats are normalized without inferring or enriching values that the source did not provide. To request a smaller field set, usefields for MCP queries, _result_fields for typed tools, or --result-fields in the CLI. Declared fields remain present when their value is null.
| Field | Type | Nullable | Description |
|---|---|---|---|
id | string | Yes | Unique identifier for this result item. |
platform | string | No | Platform the result belongs to, such as instagram or linkedin. |
resource | string | No | SocQ resource represented by the result, such as videos or comments. |
type | string | No | Category of the result item, such as video, post, or comment. |
url | string | Yes | Public URL of the result item when available. |
published_at | string | Yes | Time the source item was published, in ISO 8601 format when available. |
collected_at | string | No | Time SocQ collected or processed this result, in ISO 8601 format. |
title | string | Yes | Search result title. |
text | string | Yes | Search result snippet or summary. |
rank | integer | Yes | Position of the item in the search results. |
domain | string | Yes | Domain of the search result. |
result_type | string | Yes | Kind of search result returned by the search engine. |
Completed Task Response
{
"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"
}
]
}
}
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Choose a supported country and a language available in that country. The defaults are United States (2840) and English (en). Country code 2156 is unavailable here. Locale support differs from Keyword Search Volume and live SERP.
Domain, subdomain, or page URL.
1Language name must be supported for the selected country.
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 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 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 1x >= 01 <= x <= 1000
