Similar websites API
curl --request POST \
--url https://api.adscrawl.net/similar-sites \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"url": "<string>",
"timeoutMs": 123
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: '<string>', timeoutMs: 123})
};
fetch('https://api.adscrawl.net/similar-sites', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.adscrawl.net/similar-sites"
payload = {
"url": "<string>",
"timeoutMs": 123
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.adscrawl.net/similar-sites"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"timeoutMs\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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))
}Browser Tasks
Similar websites API
Find related websites with POST /similar-sites. Send a URL with your API key, then use website details and relevance scores to build a research shortlist.
POST
/
similar-sites
Similar websites API
curl --request POST \
--url https://api.adscrawl.net/similar-sites \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"url": "<string>",
"timeoutMs": 123
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: '<string>', timeoutMs: 123})
};
fetch('https://api.adscrawl.net/similar-sites', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.adscrawl.net/similar-sites"
payload = {
"url": "<string>",
"timeoutMs": 123
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.adscrawl.net/similar-sites"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"timeoutMs\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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))
}AdsCrawl Similar websites analyzes a website’s business with AI, then searches the web for related businesses. Send a target URL to receive up to eight recommendations ranked by relevance, with the target website’s details and a match score for each candidate.
Send the request body as JSON with
A match score helps you prioritize further research. It is not market share, a search ranking or proof that a website is a direct competitor. Recommendations are a shortlist, not a complete market inventory.
Authentication
string
required
Your AdsCrawl API key. Keep it in your server-side application and send it in the request header.
Content-Type: application/json.
Request body
string
The website to use as the starting point for discovery. The examples use
https://adspower.net/.number
Request timeout in milliseconds. The console’s integration example uses
45000 (45 seconds).45000 is an example setting, not a documented default or limit. Give your HTTP client more time than the requested capture timeout; the examples below allow 60 seconds.
Request examples
SetADSCRAWL_API_KEY in your local shell or application environment before running an example. Replace the sample URL with the website you want to research.
curl --fail-with-body --max-time 60 \
--request POST 'https://api.adscrawl.net/similar-sites' \
--header "x-api-key: ${ADSCRAWL_API_KEY}" \
--header 'Content-Type: application/json' \
--data '{"url":"https://adspower.net/","timeoutMs":45000}'
import json
import os
import urllib.request
request = urllib.request.Request(
"https://api.adscrawl.net/similar-sites",
data=json.dumps({
"url": "https://adspower.net/",
"timeoutMs": 45000,
}).encode("utf-8"),
headers={
"x-api-key": os.environ["ADSCRAWL_API_KEY"],
"Content-Type": "application/json",
},
method="POST",
)
with urllib.request.urlopen(request, timeout=60) as response:
print(json.loads(response.read()))
const response = await fetch("https://api.adscrawl.net/similar-sites", {
method: "POST",
headers: {
"x-api-key": process.env.ADSCRAWL_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
url: "https://adspower.net/",
timeoutMs: 45000,
}),
signal: AbortSignal.timeout(60000),
});
if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${await response.text()}`);
}
console.log(await response.json());
Response fields
The console’s integration panel identifies these fields. Inspect the returned JSON before mapping it into your application’s data model.| Field | Meaning |
|---|---|
target.url | Target website URL. |
target.title | Target website title. |
target.description | Target website description. |
target.logo | Logo information associated with the target website. |
candidates[].url | Recommended website URL. |
candidates[].title | Recommended website title. |
candidates[].score | Relevance match score, shown from 0 to 100. |