Domainers
Monitor auctions across GoDaddy, DropCatch, NameJet, Dynadot, and the rest from one JSON feed. No more checking each platform every morning.
Expired Domains API for SEO Experts and Agencies
Same inventory as the Karma.Domains app — gTLDs and ccTLDs, with Ahrefs, Majestic, Moz, Semrush, SimilarWeb, and Wayback on every report. Saved filters, annotations, share links with share_url, and SEO enrich over REST. Bearer key on Pro, 60 requests per minute, shared with MCP.
One base URL, a Bearer key, JSON responses. Call POST /v1/reports/search — field names below are synced from the OpenAPI schema at build time.
Requires the Pro plan or above. Create or reset the key in Profile → Settings. Treat it like a password — never paste it in public chats or repositories.
| Base URL | https://api.karma.domains |
|---|---|
| Auth | Authorization: Bearer YOUR_API_KEY |
| Format | JSON over HTTPS |
| Rate limit | 60 requests/minute per key (shared with MCP) |
| List quota | 50,000 rows/day (UTC), page_size 1–100, page × page_size ≤ 5000 |
| Live-tool quota | 200 non-cache calls/day (UTC); cache hits free |
Interactive try-it console — Swagger UI.
curl, Python, PHP, JavaScript, Go, Apps Script, Perl — and LOLCODE. Default is curl plus an expired-domain search with KarmaScore at least 60. Responses are truncated — real payloads include every schema field.
curl -X POST "https://api.karma.domains/v1/reports/search?page=1&page_size=25" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"karmascore_min":60,"domain_type":["expired"]}' Response
{
"report_list": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"karmascore": 72,
"karmametric": 61,
"majestic_tf": 18,
"majestic_cf": 22,
"moz_da": 28,
"ahrefs_dr": 31.4,
"sr_as": 24,
"sw_last_traffic": 1200,
"wa_age": 9,
"wa_last_title": "Specialty coffee notes",
"auctions": null,
"...": "…"
}
],
"total_count": 1842
} curl -X GET "https://api.karma.domains/v1/reports/report?report_type=expired&report_id=65a1c2f8e4b0a91d3c7e4b12" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" Response
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"added_at": 1710000000,
"processed": true,
"is_expired": true,
"metrics": {
"majestic": {
"tf": 18,
"cf": 22,
"bl": 1420,
"...": "…"
},
"moz": {
"da": 28,
"ss": 3,
"...": "…"
},
"ahrefs": {
"dr": 31.4,
"ur": 18.2
},
"similarweb": {
"visits": 1200,
"...": "…"
},
"karma_metric": {
"karma_metric": 61,
"...": "…"
},
"...": "…"
},
"web_archive": {
"age": 9,
"last_title": "Specialty coffee notes",
"...": "…"
},
"auctions": null,
"...": "…"
} curl -X GET "https://api.karma.domains/v1/reports/by-domain?domain=example.com" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" Response
{
"domain": "example.com",
"matches": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "example.com",
"added_at": 1710000000
}
]
} curl -X GET "https://api.karma.domains/v1/domains/checker/expiry?domain=mybrand.com" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" Response
{
"domain": "mybrand.com",
"available": true
} curl -X GET "https://api.karma.domains/v1/domains/checker/domain_authority?domain=mybrand.com" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" Response
{
"domain": "mybrand.com",
"metrics": {
"dr": 31.4,
"ur": 18.2,
"da": 28,
"ss": 3,
"sr_as": 24,
"kdm": 61,
"...": "…"
}
} curl -X GET "https://api.karma.domains/v1/user" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" Response
{
"id": "65a1c2f8e4b0a91d3c7e4b12",
"email": "[email protected]",
"balance": 420,
"pro_plan": 1,
"pro_task_credits": 350,
"unlimited_plan": 0,
"...": "…"
} curl -X POST "https://api.karma.domains/v1/reports/share" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"report_type":"expired","report_id":"65a1c2f8e4b0a91d3c7e4b12"}' Response
{
"token": "abc123guest",
"expires_at": 1710000000,
"share_url": "https://karma.domains/app/share/abc123guest"
} curl -X POST "https://api.karma.domains/v1/reports/expired/65a1c2f8e4b0a91d3c7e4b12/enrich-seo" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" Response
{
"job_id": "65a1c2f8e4b0a91d3c7e4b99"
} import requests
url = "https://api.karma.domains/v1/reports/search"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
}
params = {
"page": 1,
"page_size": 25,
}
body = {
"karmascore_min": 60,
"domain_type": ["expired"],
}
response = requests.post(url, headers=headers, params=params, json=body)
print(response.json()) Response
{
"report_list": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"karmascore": 72,
"karmametric": 61,
"majestic_tf": 18,
"majestic_cf": 22,
"moz_da": 28,
"ahrefs_dr": 31.4,
"sr_as": 24,
"sw_last_traffic": 1200,
"wa_age": 9,
"wa_last_title": "Specialty coffee notes",
"auctions": null,
"...": "…"
}
],
"total_count": 1842
} import requests
url = "https://api.karma.domains/v1/reports/report"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
}
params = {
"report_type": "expired",
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
}
response = requests.get(url, headers=headers, params=params)
print(response.json()) Response
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"added_at": 1710000000,
"processed": true,
"is_expired": true,
"metrics": {
"majestic": {
"tf": 18,
"cf": 22,
"bl": 1420,
"...": "…"
},
"moz": {
"da": 28,
"ss": 3,
"...": "…"
},
"ahrefs": {
"dr": 31.4,
"ur": 18.2
},
"similarweb": {
"visits": 1200,
"...": "…"
},
"karma_metric": {
"karma_metric": 61,
"...": "…"
},
"...": "…"
},
"web_archive": {
"age": 9,
"last_title": "Specialty coffee notes",
"...": "…"
},
"auctions": null,
"...": "…"
} import requests
url = "https://api.karma.domains/v1/reports/by-domain"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
}
params = {
"domain": "example.com",
}
response = requests.get(url, headers=headers, params=params)
print(response.json()) Response
{
"domain": "example.com",
"matches": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "example.com",
"added_at": 1710000000
}
]
} import requests
url = "https://api.karma.domains/v1/domains/checker/expiry"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
}
params = {
"domain": "mybrand.com",
}
response = requests.get(url, headers=headers, params=params)
print(response.json()) Response
{
"domain": "mybrand.com",
"available": true
} import requests
url = "https://api.karma.domains/v1/domains/checker/domain_authority"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
}
params = {
"domain": "mybrand.com",
}
response = requests.get(url, headers=headers, params=params)
print(response.json()) Response
{
"domain": "mybrand.com",
"metrics": {
"dr": 31.4,
"ur": 18.2,
"da": 28,
"ss": 3,
"sr_as": 24,
"kdm": 61,
"...": "…"
}
} import requests
url = "https://api.karma.domains/v1/user"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
}
response = requests.get(url, headers=headers)
print(response.json()) Response
{
"id": "65a1c2f8e4b0a91d3c7e4b12",
"email": "[email protected]",
"balance": 420,
"pro_plan": 1,
"pro_task_credits": 350,
"unlimited_plan": 0,
"...": "…"
} import requests
url = "https://api.karma.domains/v1/reports/share"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
}
body = {
"report_type": "expired",
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
}
response = requests.post(url, headers=headers, json=body)
print(response.json()) Response
{
"token": "abc123guest",
"expires_at": 1710000000,
"share_url": "https://karma.domains/app/share/abc123guest"
} import requests
url = "https://api.karma.domains/v1/reports/expired/65a1c2f8e4b0a91d3c7e4b12/enrich-seo"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
}
response = requests.post(url, headers=headers)
print(response.json()) Response
{
"job_id": "65a1c2f8e4b0a91d3c7e4b99"
} <?php
$ch = curl_init('https://api.karma.domains/v1/reports/search?page=1&page_size=25');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'karmascore_min' => 60,
'domain_type' => ['expired'],
]),
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response; Response
{
"report_list": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"karmascore": 72,
"karmametric": 61,
"majestic_tf": 18,
"majestic_cf": 22,
"moz_da": 28,
"ahrefs_dr": 31.4,
"sr_as": 24,
"sw_last_traffic": 1200,
"wa_age": 9,
"wa_last_title": "Specialty coffee notes",
"auctions": null,
"...": "…"
}
],
"total_count": 1842
} <?php
$ch = curl_init('https://api.karma.domains/v1/reports/report?report_type=expired&report_id=65a1c2f8e4b0a91d3c7e4b12');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json',
],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response; Response
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"added_at": 1710000000,
"processed": true,
"is_expired": true,
"metrics": {
"majestic": {
"tf": 18,
"cf": 22,
"bl": 1420,
"...": "…"
},
"moz": {
"da": 28,
"ss": 3,
"...": "…"
},
"ahrefs": {
"dr": 31.4,
"ur": 18.2
},
"similarweb": {
"visits": 1200,
"...": "…"
},
"karma_metric": {
"karma_metric": 61,
"...": "…"
},
"...": "…"
},
"web_archive": {
"age": 9,
"last_title": "Specialty coffee notes",
"...": "…"
},
"auctions": null,
"...": "…"
} <?php
$ch = curl_init('https://api.karma.domains/v1/reports/by-domain?domain=example.com');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json',
],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response; Response
{
"domain": "example.com",
"matches": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "example.com",
"added_at": 1710000000
}
]
} <?php
$ch = curl_init('https://api.karma.domains/v1/domains/checker/expiry?domain=mybrand.com');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json',
],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response; Response
{
"domain": "mybrand.com",
"available": true
} <?php
$ch = curl_init('https://api.karma.domains/v1/domains/checker/domain_authority?domain=mybrand.com');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json',
],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response; Response
{
"domain": "mybrand.com",
"metrics": {
"dr": 31.4,
"ur": 18.2,
"da": 28,
"ss": 3,
"sr_as": 24,
"kdm": 61,
"...": "…"
}
} <?php
$ch = curl_init('https://api.karma.domains/v1/user');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json',
],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response; Response
{
"id": "65a1c2f8e4b0a91d3c7e4b12",
"email": "[email protected]",
"balance": 420,
"pro_plan": 1,
"pro_task_credits": 350,
"unlimited_plan": 0,
"...": "…"
} <?php
$ch = curl_init('https://api.karma.domains/v1/reports/share');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'report_type' => 'expired',
'report_id' => '65a1c2f8e4b0a91d3c7e4b12',
]),
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response; Response
{
"token": "abc123guest",
"expires_at": 1710000000,
"share_url": "https://karma.domains/app/share/abc123guest"
} <?php
$ch = curl_init('https://api.karma.domains/v1/reports/expired/65a1c2f8e4b0a91d3c7e4b12/enrich-seo');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json',
],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response; Response
{
"job_id": "65a1c2f8e4b0a91d3c7e4b99"
} const response = await fetch(
'https://api.karma.domains/v1/reports/search?page=1&page_size=25',
{
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
karmascore_min: 60,
domain_type: ["expired"],
}),
}
);
const data = await response.json(); Response
{
"report_list": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"karmascore": 72,
"karmametric": 61,
"majestic_tf": 18,
"majestic_cf": 22,
"moz_da": 28,
"ahrefs_dr": 31.4,
"sr_as": 24,
"sw_last_traffic": 1200,
"wa_age": 9,
"wa_last_title": "Specialty coffee notes",
"auctions": null,
"...": "…"
}
],
"total_count": 1842
} const response = await fetch(
'https://api.karma.domains/v1/reports/report?report_type=expired&report_id=65a1c2f8e4b0a91d3c7e4b12',
{
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
},
}
);
const data = await response.json(); Response
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"added_at": 1710000000,
"processed": true,
"is_expired": true,
"metrics": {
"majestic": {
"tf": 18,
"cf": 22,
"bl": 1420,
"...": "…"
},
"moz": {
"da": 28,
"ss": 3,
"...": "…"
},
"ahrefs": {
"dr": 31.4,
"ur": 18.2
},
"similarweb": {
"visits": 1200,
"...": "…"
},
"karma_metric": {
"karma_metric": 61,
"...": "…"
},
"...": "…"
},
"web_archive": {
"age": 9,
"last_title": "Specialty coffee notes",
"...": "…"
},
"auctions": null,
"...": "…"
} const response = await fetch(
'https://api.karma.domains/v1/reports/by-domain?domain=example.com',
{
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
},
}
);
const data = await response.json(); Response
{
"domain": "example.com",
"matches": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "example.com",
"added_at": 1710000000
}
]
} const response = await fetch(
'https://api.karma.domains/v1/domains/checker/expiry?domain=mybrand.com',
{
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
},
}
);
const data = await response.json(); Response
{
"domain": "mybrand.com",
"available": true
} const response = await fetch(
'https://api.karma.domains/v1/domains/checker/domain_authority?domain=mybrand.com',
{
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
},
}
);
const data = await response.json(); Response
{
"domain": "mybrand.com",
"metrics": {
"dr": 31.4,
"ur": 18.2,
"da": 28,
"ss": 3,
"sr_as": 24,
"kdm": 61,
"...": "…"
}
} const response = await fetch(
'https://api.karma.domains/v1/user',
{
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
},
}
);
const data = await response.json(); Response
{
"id": "65a1c2f8e4b0a91d3c7e4b12",
"email": "[email protected]",
"balance": 420,
"pro_plan": 1,
"pro_task_credits": 350,
"unlimited_plan": 0,
"...": "…"
} const response = await fetch(
'https://api.karma.domains/v1/reports/share',
{
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
report_type: "expired",
report_id: "65a1c2f8e4b0a91d3c7e4b12",
}),
}
);
const data = await response.json(); Response
{
"token": "abc123guest",
"expires_at": 1710000000,
"share_url": "https://karma.domains/app/share/abc123guest"
} const response = await fetch(
'https://api.karma.domains/v1/reports/expired/65a1c2f8e4b0a91d3c7e4b12/enrich-seo',
{
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
},
}
);
const data = await response.json(); Response
{
"job_id": "65a1c2f8e4b0a91d3c7e4b99"
} package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.karma.domains/v1/reports/search?page=1&page_size=25", strings.NewReader(`{"karmascore_min":60,"domain_type":["expired"]}`))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Accept", "application/json")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} Response
{
"report_list": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"karmascore": 72,
"karmametric": 61,
"majestic_tf": 18,
"majestic_cf": 22,
"moz_da": 28,
"ahrefs_dr": 31.4,
"sr_as": 24,
"sw_last_traffic": 1200,
"wa_age": 9,
"wa_last_title": "Specialty coffee notes",
"auctions": null,
"...": "…"
}
],
"total_count": 1842
} package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.karma.domains/v1/reports/report?report_type=expired&report_id=65a1c2f8e4b0a91d3c7e4b12", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Accept", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} Response
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"added_at": 1710000000,
"processed": true,
"is_expired": true,
"metrics": {
"majestic": {
"tf": 18,
"cf": 22,
"bl": 1420,
"...": "…"
},
"moz": {
"da": 28,
"ss": 3,
"...": "…"
},
"ahrefs": {
"dr": 31.4,
"ur": 18.2
},
"similarweb": {
"visits": 1200,
"...": "…"
},
"karma_metric": {
"karma_metric": 61,
"...": "…"
},
"...": "…"
},
"web_archive": {
"age": 9,
"last_title": "Specialty coffee notes",
"...": "…"
},
"auctions": null,
"...": "…"
} package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.karma.domains/v1/reports/by-domain?domain=example.com", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Accept", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} Response
{
"domain": "example.com",
"matches": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "example.com",
"added_at": 1710000000
}
]
} package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.karma.domains/v1/domains/checker/expiry?domain=mybrand.com", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Accept", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} Response
{
"domain": "mybrand.com",
"available": true
} package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.karma.domains/v1/domains/checker/domain_authority?domain=mybrand.com", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Accept", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} Response
{
"domain": "mybrand.com",
"metrics": {
"dr": 31.4,
"ur": 18.2,
"da": 28,
"ss": 3,
"sr_as": 24,
"kdm": 61,
"...": "…"
}
} package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.karma.domains/v1/user", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Accept", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} Response
{
"id": "65a1c2f8e4b0a91d3c7e4b12",
"email": "[email protected]",
"balance": 420,
"pro_plan": 1,
"pro_task_credits": 350,
"unlimited_plan": 0,
"...": "…"
} package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.karma.domains/v1/reports/share", strings.NewReader(`{"report_type":"expired","report_id":"65a1c2f8e4b0a91d3c7e4b12"}`))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Accept", "application/json")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} Response
{
"token": "abc123guest",
"expires_at": 1710000000,
"share_url": "https://karma.domains/app/share/abc123guest"
} package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("POST", "https://api.karma.domains/v1/reports/expired/65a1c2f8e4b0a91d3c7e4b12/enrich-seo", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Accept", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} Response
{
"job_id": "65a1c2f8e4b0a91d3c7e4b99"
} function run() {
const url = 'https://api.karma.domains/v1/reports/search?page=1&page_size=25';
const response = UrlFetchApp.fetch(url, {
method: 'post',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
},
contentType: 'application/json',
payload: JSON.stringify({
karmascore_min: 60,
domain_type: ["expired"],
}),
muteHttpExceptions: true,
});
const data = JSON.parse(response.getContentText());
Logger.log(data);
} Response
{
"report_list": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"karmascore": 72,
"karmametric": 61,
"majestic_tf": 18,
"majestic_cf": 22,
"moz_da": 28,
"ahrefs_dr": 31.4,
"sr_as": 24,
"sw_last_traffic": 1200,
"wa_age": 9,
"wa_last_title": "Specialty coffee notes",
"auctions": null,
"...": "…"
}
],
"total_count": 1842
} function run() {
const url = 'https://api.karma.domains/v1/reports/report?report_type=expired&report_id=65a1c2f8e4b0a91d3c7e4b12';
const response = UrlFetchApp.fetch(url, {
method: 'get',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
},
muteHttpExceptions: true,
});
const data = JSON.parse(response.getContentText());
Logger.log(data);
} Response
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"added_at": 1710000000,
"processed": true,
"is_expired": true,
"metrics": {
"majestic": {
"tf": 18,
"cf": 22,
"bl": 1420,
"...": "…"
},
"moz": {
"da": 28,
"ss": 3,
"...": "…"
},
"ahrefs": {
"dr": 31.4,
"ur": 18.2
},
"similarweb": {
"visits": 1200,
"...": "…"
},
"karma_metric": {
"karma_metric": 61,
"...": "…"
},
"...": "…"
},
"web_archive": {
"age": 9,
"last_title": "Specialty coffee notes",
"...": "…"
},
"auctions": null,
"...": "…"
} function run() {
const url = 'https://api.karma.domains/v1/reports/by-domain?domain=example.com';
const response = UrlFetchApp.fetch(url, {
method: 'get',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
},
muteHttpExceptions: true,
});
const data = JSON.parse(response.getContentText());
Logger.log(data);
} Response
{
"domain": "example.com",
"matches": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "example.com",
"added_at": 1710000000
}
]
} function run() {
const url = 'https://api.karma.domains/v1/domains/checker/expiry?domain=mybrand.com';
const response = UrlFetchApp.fetch(url, {
method: 'get',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
},
muteHttpExceptions: true,
});
const data = JSON.parse(response.getContentText());
Logger.log(data);
} Response
{
"domain": "mybrand.com",
"available": true
} function run() {
const url = 'https://api.karma.domains/v1/domains/checker/domain_authority?domain=mybrand.com';
const response = UrlFetchApp.fetch(url, {
method: 'get',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
},
muteHttpExceptions: true,
});
const data = JSON.parse(response.getContentText());
Logger.log(data);
} Response
{
"domain": "mybrand.com",
"metrics": {
"dr": 31.4,
"ur": 18.2,
"da": 28,
"ss": 3,
"sr_as": 24,
"kdm": 61,
"...": "…"
}
} function run() {
const url = 'https://api.karma.domains/v1/user';
const response = UrlFetchApp.fetch(url, {
method: 'get',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
},
muteHttpExceptions: true,
});
const data = JSON.parse(response.getContentText());
Logger.log(data);
} Response
{
"id": "65a1c2f8e4b0a91d3c7e4b12",
"email": "[email protected]",
"balance": 420,
"pro_plan": 1,
"pro_task_credits": 350,
"unlimited_plan": 0,
"...": "…"
} function run() {
const url = 'https://api.karma.domains/v1/reports/share';
const response = UrlFetchApp.fetch(url, {
method: 'post',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
},
contentType: 'application/json',
payload: JSON.stringify({
report_type: "expired",
report_id: "65a1c2f8e4b0a91d3c7e4b12",
}),
muteHttpExceptions: true,
});
const data = JSON.parse(response.getContentText());
Logger.log(data);
} Response
{
"token": "abc123guest",
"expires_at": 1710000000,
"share_url": "https://karma.domains/app/share/abc123guest"
} function run() {
const url = 'https://api.karma.domains/v1/reports/expired/65a1c2f8e4b0a91d3c7e4b12/enrich-seo';
const response = UrlFetchApp.fetch(url, {
method: 'post',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
Accept: 'application/json',
},
muteHttpExceptions: true,
});
const data = JSON.parse(response.getContentText());
Logger.log(data);
} Response
{
"job_id": "65a1c2f8e4b0a91d3c7e4b99"
} use HTTP::Tiny;
my $res = HTTP::Tiny->new->request(
'POST',
'https://api.karma.domains/v1/reports/search?page=1&page_size=25',
{
headers => {
Authorization => 'Bearer YOUR_API_KEY',
Accept => 'application/json',
'Content-Type' => 'application/json',
},
content => '{"karmascore_min":60,"domain_type":["expired"]}',
}
);
print $res->{content}; Response
{
"report_list": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"karmascore": 72,
"karmametric": 61,
"majestic_tf": 18,
"majestic_cf": 22,
"moz_da": 28,
"ahrefs_dr": 31.4,
"sr_as": 24,
"sw_last_traffic": 1200,
"wa_age": 9,
"wa_last_title": "Specialty coffee notes",
"auctions": null,
"...": "…"
}
],
"total_count": 1842
} use HTTP::Tiny;
my $res = HTTP::Tiny->new->request(
'GET',
'https://api.karma.domains/v1/reports/report?report_type=expired&report_id=65a1c2f8e4b0a91d3c7e4b12',
{
headers => {
Authorization => 'Bearer YOUR_API_KEY',
Accept => 'application/json',
},
}
);
print $res->{content}; Response
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"added_at": 1710000000,
"processed": true,
"is_expired": true,
"metrics": {
"majestic": {
"tf": 18,
"cf": 22,
"bl": 1420,
"...": "…"
},
"moz": {
"da": 28,
"ss": 3,
"...": "…"
},
"ahrefs": {
"dr": 31.4,
"ur": 18.2
},
"similarweb": {
"visits": 1200,
"...": "…"
},
"karma_metric": {
"karma_metric": 61,
"...": "…"
},
"...": "…"
},
"web_archive": {
"age": 9,
"last_title": "Specialty coffee notes",
"...": "…"
},
"auctions": null,
"...": "…"
} use HTTP::Tiny;
my $res = HTTP::Tiny->new->request(
'GET',
'https://api.karma.domains/v1/reports/by-domain?domain=example.com',
{
headers => {
Authorization => 'Bearer YOUR_API_KEY',
Accept => 'application/json',
},
}
);
print $res->{content}; Response
{
"domain": "example.com",
"matches": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "example.com",
"added_at": 1710000000
}
]
} use HTTP::Tiny;
my $res = HTTP::Tiny->new->request(
'GET',
'https://api.karma.domains/v1/domains/checker/expiry?domain=mybrand.com',
{
headers => {
Authorization => 'Bearer YOUR_API_KEY',
Accept => 'application/json',
},
}
);
print $res->{content}; Response
{
"domain": "mybrand.com",
"available": true
} use HTTP::Tiny;
my $res = HTTP::Tiny->new->request(
'GET',
'https://api.karma.domains/v1/domains/checker/domain_authority?domain=mybrand.com',
{
headers => {
Authorization => 'Bearer YOUR_API_KEY',
Accept => 'application/json',
},
}
);
print $res->{content}; Response
{
"domain": "mybrand.com",
"metrics": {
"dr": 31.4,
"ur": 18.2,
"da": 28,
"ss": 3,
"sr_as": 24,
"kdm": 61,
"...": "…"
}
} use HTTP::Tiny;
my $res = HTTP::Tiny->new->request(
'GET',
'https://api.karma.domains/v1/user',
{
headers => {
Authorization => 'Bearer YOUR_API_KEY',
Accept => 'application/json',
},
}
);
print $res->{content}; Response
{
"id": "65a1c2f8e4b0a91d3c7e4b12",
"email": "[email protected]",
"balance": 420,
"pro_plan": 1,
"pro_task_credits": 350,
"unlimited_plan": 0,
"...": "…"
} use HTTP::Tiny;
my $res = HTTP::Tiny->new->request(
'POST',
'https://api.karma.domains/v1/reports/share',
{
headers => {
Authorization => 'Bearer YOUR_API_KEY',
Accept => 'application/json',
'Content-Type' => 'application/json',
},
content => '{"report_type":"expired","report_id":"65a1c2f8e4b0a91d3c7e4b12"}',
}
);
print $res->{content}; Response
{
"token": "abc123guest",
"expires_at": 1710000000,
"share_url": "https://karma.domains/app/share/abc123guest"
} use HTTP::Tiny;
my $res = HTTP::Tiny->new->request(
'POST',
'https://api.karma.domains/v1/reports/expired/65a1c2f8e4b0a91d3c7e4b12/enrich-seo',
{
headers => {
Authorization => 'Bearer YOUR_API_KEY',
Accept => 'application/json',
},
}
);
print $res->{content}; Response
{
"job_id": "65a1c2f8e4b0a91d3c7e4b99"
} HAI 1.2
BTW POST /reports/search — do not ship this
I HAS A URL ITZ "https://api.karma.domains/v1/reports/search?page=1&page_size=25"
I HAS A KEY ITZ "YOUR_API_KEY"
VISIBLE SMOOSH "Authorization: Bearer " AN KEY MKAY
VISIBLE URL
I HAS A BODY ITZ "{""karmascore_min"":60,""domain_type"":[""expired""]}"
VISIBLE BODY
VISIBLE "I CAN HAS EXPIRED DOMAINS WIF KARMA 60"
KTHXBYE Response
{
"report_list": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"karmascore": 72,
"karmametric": 61,
"majestic_tf": 18,
"majestic_cf": 22,
"moz_da": 28,
"ahrefs_dr": 31.4,
"sr_as": 24,
"sw_last_traffic": 1200,
"wa_age": 9,
"wa_last_title": "Specialty coffee notes",
"auctions": null,
"...": "…"
}
],
"total_count": 1842
} HAI 1.2
BTW GET /reports/report — do not ship this
I HAS A URL ITZ "https://api.karma.domains/v1/reports/report?report_type=expired&report_id=65a1c2f8e4b0a91d3c7e4b12"
I HAS A KEY ITZ "YOUR_API_KEY"
VISIBLE SMOOSH "Authorization: Bearer " AN KEY MKAY
VISIBLE URL
VISIBLE "GIMMEH TEH FULL REPORT"
KTHXBYE Response
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "brewjournal.com",
"domain_tld": "com",
"added_at": 1710000000,
"processed": true,
"is_expired": true,
"metrics": {
"majestic": {
"tf": 18,
"cf": 22,
"bl": 1420,
"...": "…"
},
"moz": {
"da": 28,
"ss": 3,
"...": "…"
},
"ahrefs": {
"dr": 31.4,
"ur": 18.2
},
"similarweb": {
"visits": 1200,
"...": "…"
},
"karma_metric": {
"karma_metric": 61,
"...": "…"
},
"...": "…"
},
"web_archive": {
"age": 9,
"last_title": "Specialty coffee notes",
"...": "…"
},
"auctions": null,
"...": "…"
} HAI 1.2
BTW GET /reports/by-domain — do not ship this
I HAS A URL ITZ "https://api.karma.domains/v1/reports/by-domain?domain=example.com"
I HAS A KEY ITZ "YOUR_API_KEY"
VISIBLE SMOOSH "Authorization: Bearer " AN KEY MKAY
VISIBLE URL
VISIBLE "I CAN HAS DOMAIN example.com"
KTHXBYE Response
{
"domain": "example.com",
"matches": [
{
"report_id": "65a1c2f8e4b0a91d3c7e4b12",
"report_type": "expired",
"domain": "example.com",
"added_at": 1710000000
}
]
} HAI 1.2
BTW GET /domains/checker/expiry — do not ship this
I HAS A URL ITZ "https://api.karma.domains/v1/domains/checker/expiry?domain=mybrand.com"
I HAS A KEY ITZ "YOUR_API_KEY"
VISIBLE SMOOSH "Authorization: Bearer " AN KEY MKAY
VISIBLE URL
VISIBLE "IZ IT FREE OR IZ IT TAKEN"
KTHXBYE Response
{
"domain": "mybrand.com",
"available": true
} HAI 1.2
BTW GET /domains/checker/domain_authority — do not ship this
I HAS A URL ITZ "https://api.karma.domains/v1/domains/checker/domain_authority?domain=mybrand.com"
I HAS A KEY ITZ "YOUR_API_KEY"
VISIBLE SMOOSH "Authorization: Bearer " AN KEY MKAY
VISIBLE URL
VISIBLE "HOW BIG IZ TEH DA"
KTHXBYE Response
{
"domain": "mybrand.com",
"metrics": {
"dr": 31.4,
"ur": 18.2,
"da": 28,
"ss": 3,
"sr_as": 24,
"kdm": 61,
"...": "…"
}
} HAI 1.2
BTW GET /user — do not ship this
I HAS A URL ITZ "https://api.karma.domains/v1/user"
I HAS A KEY ITZ "YOUR_API_KEY"
VISIBLE SMOOSH "Authorization: Bearer " AN KEY MKAY
VISIBLE URL
VISIBLE "GIMMEH MAH CREDITS"
KTHXBYE Response
{
"id": "65a1c2f8e4b0a91d3c7e4b12",
"email": "[email protected]",
"balance": 420,
"pro_plan": 1,
"pro_task_credits": 350,
"unlimited_plan": 0,
"...": "…"
} HAI 1.2
BTW POST /reports/share — do not ship this
I HAS A URL ITZ "https://api.karma.domains/v1/reports/share"
I HAS A KEY ITZ "YOUR_API_KEY"
VISIBLE SMOOSH "Authorization: Bearer " AN KEY MKAY
VISIBLE URL
I HAS A BODY ITZ "{""report_type"":""expired"",""report_id"":""65a1c2f8e4b0a91d3c7e4b12""}"
VISIBLE BODY
VISIBLE "PLZ SHARE DIS REPORT WIF MAH CLIENT"
KTHXBYE Response
{
"token": "abc123guest",
"expires_at": 1710000000,
"share_url": "https://karma.domains/app/share/abc123guest"
} HAI 1.2
BTW POST /reports/expired/65a1c2f8e4b0a91d3c7e4b12/enrich-seo — do not ship this
I HAS A URL ITZ "https://api.karma.domains/v1/reports/expired/65a1c2f8e4b0a91d3c7e4b12/enrich-seo"
I HAS A KEY ITZ "YOUR_API_KEY"
VISIBLE SMOOSH "Authorization: Bearer " AN KEY MKAY
VISIBLE URL
VISIBLE "MAKE TEH SEO MOAR SHINY"
KTHXBYE Response
{
"job_id": "65a1c2f8e4b0a91d3c7e4b99"
} Responses above are truncated. Full body for each endpoint — Swagger UI.
Same platforms as the app. Filter with auction_source — a name (godaddy) or source|sale_type (godaddy|bid). Items are combined with OR.
aftermarket_pl All aftermarket_pl|auction Auctions aftermarket_pl|buynow Buy Now alibabacloud All alibabacloud|buynow Buy Now cznic All cznic|auction Auctions domainlore All dropcatch All dropcatch|prerelease Pre-Release dropcatch|dropped Dropped dropcatch|privateseller Private Seller dynadot All dynadot|auction Auctions dynadot|closeout Closeout dynadot|backorder Backorder dynadot|buynow Buy Now efty All efty|buynow Buy Now gname All gname|auction Auctions gname|backorder Backorder gname|buynow Buy Now godaddy All godaddy|bid Auctions godaddy|closeout Closeouts hugedomains All hugedomains|buynow Buy Now namecheap All namecheap|buynow Buy Now namejet All nameshift All nameshift|auction Auctions nameshift|buynow Buy Now namesilo All namesilo|buynow Buy Now nicsell All park.io All porkbun All porkbun|buynow Buy Now rakkodomain All rakkodomain|buynow Buy Now sav.com All sav.com|dropped Dropped sav.com|customer Customer sav.com|expired Expired sedo All sedo|buynow Buy Now seo.domains All seo.domains|buynow Buy Now subreg All webexpire All whc All whc|auction Auctions whc|backorder Backorder Body fields for POST /v1/reports/search — the same set as the app table. Open a group for the OpenAPI names. Min/max pairs are shown on one row.
tlds List of TLD's separated by comma or space domain Domain Name. Use comma (,) for AND logic (all domains must match) or pipe (|) for OR logic (any domain matches). Case-insensitive substring search. categories List of categories. Each category will be searched with OR logic (any category matches). Use exact flat category names. Case-insensitive substring search. categories_exclude Categories to exclude. OR logic — domain is excluded if it has ANY listed category. Use exact flat category names. Case-insensitive substring search. domain_type Filter by domain base type: auctions, backorder, buynow, or expired. OR logic (any selected type matches). languages List of languages. Use comma (,) for AND logic (all languages must match) or pipe (|) for OR logic (any language matches). Case-insensitive substring search. keywords Keywords to search in web archive content (title, description, h1-h6, etc.). Use comma (,) for AND logic (all keywords must be found) or pipe (|) for OR logic (any keyword found). openpagerank_min openpagerank_max Openpagerank (OPR) (0-10) domain_numbers Domain Name has Numbers (True/False) domain_hyphens Domain Name has Hyphens (True/False) domain_length_min domain_length_max Domain Name Length (1-30) karmascore_min karmascore_max KarmaScore (0-100) brandscore_min brandscore_max Brandscore (0-100). Brandscore is the domain brandiness indicator: higher value = more brand-like, brandable (brand-worthy, suitable for a brand). karmametric_min karmametric_max Karma Metric (0-100) report_added_time Report added date range. Array of 2 strings: [start_date, end_date]. Format: 'YYYY-MM-DD' (e.g., ['2020-01-01', '2023-12-31']). Time is automatically set to 00:00:00 for start and 23:59:59 for end. Filters by added_at field. website_ids List of website service IDs (e.g., Google Analytics ID, Yandex Metrika ID). OR logic - finds domains with ANY of the specified IDs. Used to find domains owned by the same owner. combine_seo Combined SEO filter. OR logic inside each group by selected vendors; groups are combined with AND. combine_authority_min combine_authority_max Domain Authority minimum (DR/DA/TF/OPR/AS). Supported vendors: ahrefs, moz, majestic, openpagerank, semrush. combine_backlinks_min combine_backlinks_max Backlinks minimum. Supported vendors: moz, majestic, semrush. combine_refdomains_min combine_refdomains_max Referring domains minimum. Supported vendors: moz, majestic, semrush. combine_traffic_min combine_traffic_max Traffic (visits) minimum. Supported vendors: similarweb, semrush. combine_keywords Keyword phrase filter. Supported vendor: keywordseverywhere. combine_backlink_url Backlink URL phrase filter. Supported vendor: moz. combine_anchors Backlink anchor phrase filter. Supported vendor: moz. favorites Filter by favorites. True = show only favorite reports, False = exclude favorites. Requires user_id to be provided. has_annotations Filter by report annotations. True = only reports with a note or tags, False = exclude annotated reports. Pro only. report_tags Filter by annotation tags (AND logic — report must contain all selected tags). Pro only. majestic_tf_min majestic_tf_max Majestic Trust Flow (TF) (0-100) majestic_cf_min majestic_cf_max Majestic Citation Flow (CF) (0-100) majestic_bl_min majestic_bl_max Majestic Backlinks (BL) majestic_rd_min majestic_rd_max Majestic Referring Domains (RD) majestic_topics Majestic topics. Can be a list of topic strings (each topic will be searched as OR) or a single integer. Supports phrase matching. majestic_lang Majestic anchor language. Use comma (,) for AND logic (all languages must match) or pipe (|) for OR logic (any language matches). Case-insensitive. moz_da_min moz_da_max Moz Domain Authority (DA) moz_ss_min moz_ss_max Moz Spam Score (SS) (0-100) moz_bl_min moz_bl_max Moz Backlinks (External Pages) moz_rd_min moz_rd_max Moz Referring Domains (RD) moz_bl_url Moz backlink URL source(s). Use comma (,) for AND logic (all URLs must be found) or pipe (|) for OR logic (any URL found). Case-insensitive phrase matching. moz_bl_anchor Moz backlink anchor text(s). Use comma (,) for AND logic (all anchors must be found) or pipe (|) for OR logic (any anchor found). Case-insensitive phrase matching. ahrefs_dr_min ahrefs_dr_max Ahrefs Domain Rating (DR) (0-100) ahrefs_ur_min ahrefs_ur_max Ahrefs URL Rating (UR) (0-100) ahrefs_ar_min ahrefs_ar_max Ahrefs Rank (AR) (lower rank = stronger domain) sr_as_min sr_as_max Semrush Authority Score (AS) (0-100) sr_bl_min sr_bl_max Semrush Backlinks sr_rd_min sr_rd_max Semrush Referring Domains sr_ip_min sr_ip_max Semrush Referring IPs sr_edu_min sr_edu_max Semrush EDU Backlinks sr_gov_min sr_gov_max Semrush GOV Backlinks sr_visits_min sr_visits_max Semrush Visits sr_users_min sr_users_max Semrush Unique Visitors sr_desktop_share_min sr_desktop_share_max Semrush Desktop Share (0-100%) sr_mobile_share_min sr_mobile_share_max Semrush Mobile Share (0-100%) sr_direct_min sr_direct_max Semrush Traffic Direct sr_search_organic_min sr_search_organic_max Semrush Traffic Search Organic sr_search_paid_min sr_search_paid_max Semrush Traffic Search Paid sr_referral_min sr_referral_max Semrush Traffic Referral sr_social_min sr_social_max Semrush Traffic Social sr_mail_min sr_mail_max Semrush Traffic Mail sw_visits_min sw_visits_max Similarweb Visits sw_ts_social_min sw_ts_social_max Similarweb Traffic Sources Social Ratio (0-100) sw_ts_paid_referrals_min sw_ts_paid_referrals_max Similarweb Traffic Sources Paid Referrals Ratio (0-100) sw_ts_mail_min sw_ts_mail_max Similarweb Traffic Sources Mail Ratio (0-100) sw_ts_referrals_min sw_ts_referrals_max Similarweb Traffic Sources Referrals Ratio (0-100) sw_ts_search_min sw_ts_search_max Similarweb Traffic Sources Search Ratio (0-100) sw_ts_direct_min sw_ts_direct_max Similarweb Traffic Sources Direct Ratio (0-100) sw_country_filters List of country filters with optional minimum traffic share. Each filter: {'country': 'US', 'share_min': 50} or {'country': 'GB'}. OR logic - matches any country. sw_country_share_min sw_country_share_max Similarweb Country Share Ratio (0-100) sw_last_traffic_date Similarweb last traffic date range. Array of 2 strings: [start_date, end_date]. Format: 'YYYY-MM' (e.g., ['2023-01', '2023-12']). Filters by Year and Month fields. ke_etv_min ke_etv_max KeywordsEverywhere Estimated Traffic Value (ETV) ke_total_min ke_total_max KeywordsEverywhere Total Keywords ke_keyword KeywordsEverywhere keyword(s). Use comma (,) for AND logic (all keywords must be found) or pipe (|) for OR logic (any keyword found). Case-insensitive phrase matching. wa_age_min wa_age_max Domain age in years (Min) by Wayback Machine wa_first_snap Wayback Machine first snap date range. Array of 2 strings: [start_date, end_date]. Format: 'YYYY-MM-DD' (e.g., ['2020-01-01', '2023-12-31']). Time is automatically set to 00:00:00 for start and 23:59:59 for end. wa_last_snap Wayback Machine last snap date range. Array of 2 strings: [start_date, end_date]. Format: 'YYYY-MM-DD' (e.g., ['2020-01-01', '2023-12-31']). Time is automatically set to 00:00:00 for start and 23:59:59 for end. wa_hieroglyphs Content has Hieroglyphs (Asian Content) in Wayback Machine (True/False) wa_redirects Content has redirects in Wayback Machine. True = has redirects (HTTP codes 301, 302, 307, 308), False = no redirects. wa_error403 Content has HTTP error code 403 (Forbidden) in Wayback Machine. True = has 403 errors, False = no 403 errors. wa_changes_min wa_changes_max Minimum number of content changes in Wayback Machine history wa_parkings_min wa_parkings_max Minimum number of parking pages in Wayback Machine history wa_redirects_min wa_redirects_max Minimum number of redirects in Wayback Machine history wa_lang_filters List of language filters with optional minimum percentage. Each filter: {'language': 'en', 'ratio_min': 30} or {'language': 'ru'}. OR logic - matches any language. wa_server_code HTTP server response code in Wayback Machine (e.g., 200, 301, 302, 403, 404). Used together with wa_server_code_ratio_min/max. Filters by server_code field. wa_server_code_ratio_min wa_server_code_ratio_max Server Code Ratio in Wayback Machine (0-100) google_title_index Search in the Google snippet title when requesting site:domain.tld (domain's pages in Google index). Use comma (,) for AND or pipe (|) for OR. Case-insensitive. google_title_mentions Search in the Google snippet title when requesting "domain.tld" (mentions). Use comma (,) for AND or pipe (|) for OR. Case-insensitive. google_description_index Search in the Google snippet description when requesting site:domain.tld (domain's pages in Google index). Use comma (,) for AND or pipe (|) for OR. Case-insensitive. google_description_mentions Search in the Google snippet description when requesting "domain.tld" (mentions). Use comma (,) for AND or pipe (|) for OR. Case-insensitive. google_has_index At least one Google result for site:domain.tld (domain's pages in Google index). True/False. None = any. google_has_mentions At least one Google result for "domain.tld" (sites that mention the domain). True/False. None = any. auction_source Auction source(s). Each item can be a source name or 'source|sale_type' format (e.g., ['godaddy', 'namejet|buynow']). Case-insensitive matching. Items are combined with OR logic. auction_end_time Auction end time date range. Array of 2 strings: [start_date, end_date]. Format: 'YYYY-MM-DD' (e.g., ['2024-01-01', '2024-12-31']). For 'auctions' report type, only shows active auctions (end_time >= now). auction_added_time Auction added time date range. Array of 2 strings: [start_date, end_date]. Format: 'YYYY-MM-DD' (e.g., ['2024-01-01', '2024-12-31']). For 'auctions' report type, only shows domains with active auctions. auction_price_min auction_price_max Auction Price (USD/EUR) auction_bids_min auction_bids_max Auction Bids (Number of bids) Types, enums, and examples — Swagger UI.
Full paths. Open a route for the response fields from the schema.
/v1/reports/search Search reports across all bases (auctions, expired, backorder, buynow). Response fields
report_list total_count Each item in report_list
providers_status report_id report_type domain domain_tld added_at processed updated_at checked_at expire_checked_at demo favorite annotation karmascore karmametric brandscore majestic_tf majestic_cf majestic_bl majestic_rd majestic_topics majestic_lang moz_da moz_da_history moz_ss moz_rd moz_bl ahrefs_dr ahrefs_ur sr_as sr_bl sr_rd sr_traffic sr_sources sr_zones ke_etv ke_total google_index openpagerank blacklists categories sw_last_traffic sw_visits_history sw_last_traffic_date sw_country_share sw_sources wa_langs wa_server_code wa_age wa_last_snap wa_changes wa_calender wa_last_title wa_last_desc wa_screenshot_snaped_at ai_summary auctions is_expired /v1/reports/by-domain Find report identifiers by exact domain name in all bases collections. Response fields
domain matches Each item in matches
report_id report_type domain added_at /v1/reports/check/expired Check whether the report domain is available (drop). Response fields
timestamp is_expired /v1/reports/report Get full report by collection type and MongoDB document id. Response fields
report_id enrich_seo providers_status report_type favorite annotation demo guest_view is_expired processed added_at updated_at created_at checked_at expire_checked_at web_archive metrics domain domain_tld domain_length domain_numbers domain_hyphens auctions task Nested object metrics
categories openpagerank majestic moz moz_anchor_profile ahrefs semrush keywordseverywhere similarweb brandscore karma_metric ai_summary google blacklists checked_services /v1/reports/favorites List the current user's favorite reports across all bases. Response fields
report_list total_count Each item in report_list
providers_status report_id report_type domain domain_tld added_at processed updated_at checked_at expire_checked_at demo favorite annotation karmascore karmametric brandscore majestic_tf majestic_cf majestic_bl majestic_rd majestic_topics majestic_lang moz_da moz_da_history moz_ss moz_rd moz_bl ahrefs_dr ahrefs_ur sr_as sr_bl sr_rd sr_traffic sr_sources sr_zones ke_etv ke_total google_index openpagerank blacklists categories sw_last_traffic sw_visits_history sw_last_traffic_date sw_country_share sw_sources wa_langs wa_server_code wa_age wa_last_snap wa_changes wa_calender wa_last_title wa_last_desc wa_screenshot_snaped_at ai_summary auctions is_expired /v1/reports/favorites Add a report to the current user's favorites. Response fields
status message /v1/reports/favorites Remove a report from the current user's favorites. Response fields
status message /v1/user Return the authenticated user's profile (email, joined date, credits, plans). Response fields
id email joined balance pro_task_credits unlimited_plan pro_plan unlimited_subscription_info pro_subscription_info lang country timezone home theme referral_counter news Annotation writes, share, and enrich require Pro. x402 agents pay 1 credit per write.
/v1/user/saved-filters Create or replace a saved search filter by name. Response fields
status message /v1/user/saved-filters Create or replace a saved search filter by name. Response fields
status message /v1/user/saved-filters Delete a saved search filter by name. Response fields
status message /v1/reports/annotations/tags Distinct annotation tags for the current user (sorted). Response fields
tags /v1/reports/annotations Delete report annotation. Response fields
status message /v1/reports/annotations Delete report annotation. Response fields
status message /v1/reports/annotations Delete report annotation. Response fields
status message /v1/reports/share Create or reuse a guest share link for a bases report. Response fields
token expires_at share_url /v1/reports/{report_type}/{report_id}/enrich-seo Start paid SEO enrich job (Pro/Unlimited). Response fields
job_id /v1/reports/enrich-jobs/{job_id} Poll an SEO enrich job by ID. Response fields
status progress result error 1 credit per domain unless the response is cached
/v1/domains/checker/expiry Check if a domain name appears free for registration (live WHOIS/DNS). 1 credit per domain; cache hits free
Response fields
domain available /v1/domains/checker/karma_metric Compute Karma Metric from Web Archive history for a domain (live check). 1 credit per domain; cache hits free
Response fields
karma_metric components period Nested object components
A_mass A_cont A_stab A_trend A_hist /v1/domains/checker/domain_authority Live Domain Authority metrics (Ahrefs, Moz, Semrush, Karma Metric). 1 credit per domain; cache hits free
Response fields
domain metrics Nested object metrics
dr ur da ss bl rd sr_as sr_rd sr_bl opr kdm A_mass A_hist A_cont A_stab A_trend /v1/domains/checker/domain_age Live Wayback archive age: first/last snapshot timestamps and sparkline. 1 credit per domain; cache hits free
Response fields
domain first_ts last_ts snap_counter sparkline /v1/domains/checker/registration_expiry Live WHOIS/RDAP registration expiry (created/expires, days left, status). 1 credit per domain; cache hits free
Response fields
domain domain_status expires_ts created_ts updated_ts days_left /v1/domains/checker/backlinks Live Moz backlink summary and sample backlinks. 1 credit per domain; cache hits free
Response fields
domain summary backlinks /v1/domains/checker/anchors Live Moz anchor-text aggregation and word frequencies. 1 credit per domain; cache hits free
Response fields
domain summary sample_size anchors words /v1/domains/checker/pages Count unique page URLs from the site sitemap for a domain. 1 credit per domain; cache hits free
Response fields
domain root_sitemap_url total_pages truncated sitemaps urls /v1/domains/checker/traffic Live SimilarWeb and Semrush traffic estimates for a domain. 1 credit per domain; cache hits free
Response fields
domain similarweb semrush /v1/domains/checker/dns Live DNS lookup across public resolvers (A, AAAA, MX, NS, TXT, …). 1 credit per domain; cache hits free
Response fields
domain default_resolver dns /v1/domains/checker/whois Live structured WHOIS/RDAP (registrar, contacts, nameservers, dates). 1 credit per domain; cache hits free
Response fields
domain domain_status created_ts updated_ts expires_ts status name_servers dnssec registrar contacts privacy_masked raw /v1/domains/checker/spam_score Live Moz Spam Score plus DA, backlinks, and referring domains. 1 credit per domain; cache hits free
Response fields
domain da ss bl rd Interactive try-it console — Swagger UI.
Same inventory as the website — from a morning sweep, a workflow tool, or an assistant.
Monitor auctions across GoDaddy, DropCatch, NameJet, Dynadot, and the rest from one JSON feed. No more checking each platform every morning.
Filter by DA, TF/CF, DR, backlinks, and Wayback age to find names worth a 301 or a rebuild. Same metrics as the report page, in a list you can page through.
Slack bots, n8n, CRM tables, Sheets, internal dashboards. Standard REST, CORS open, works with curl, Python, PHP, JavaScript, Go, Apps Script, and Perl.
Same Bearer key as MCP. Ask in chat, or POST /v1/reports/search from a tool call. One inventory for scripts and assistants.
Expiry, WHOIS, DA, traffic, and DNS on any name — not only names already in the database. 1 credit per domain; cache hits are free.
Run the same filters for several client niches, page through JSON, and drop report ids into a sheet or CRM. One key — nobody else has to live in the app.
Save search filters by name, tag reports, and sync annotations into your stack. List tags for free; writes cost 1 agent credit on x402 accounts.
POST a share link with share_url for a guest report view, or enrich SEO before you send a shortlist — poll the job until metrics are fresh.
Yes. Same databases and reports — auctions, expired, backorder, and buy-now. Scripts get JSON; the browser UI is the same inventory with full Wayback timelines on the report page.
Yes. Without Pro the key is not issued. See pricing.
Yes. One key from Profile → Settings for REST and the MCP server. The 60 requests/minute cap is shared.
60 requests per minute per key across all Public API routes and MCP. Successful responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. Over the cap you get HTTP 429 and Retry-After. List endpoints also share a 50,000 rows/day quota (UTC reset).
List and report reads count against the request limit and the daily row quota, not extra credits. Live domain checkers cost 1 credit per domain (cache hits are free). Expired-listing re-check is free, at most once every 3 hours on the same report. PUT/DELETE saved filters, PUT/DELETE annotations, and POST share cost 1 agent credit per write on x402 accounts.
Yes. Annotation writes and POST /v1/reports/share require the Pro plan. Listing tags with GET /v1/reports/annotations/tags and reading annotations are included in your plan quota.
POST /v1/reports/{report_type}/{report_id}/enrich-seo returns 202 with a job id. Poll GET /v1/reports/enrich-jobs/{job_id} until complete. Pro or Unlimited required. Successful enrich costs 3 credits (Pro) or 22 (Unlimited) — same as the website.
Filter names and response fields on this page are generated from the backend schemas at build time. Types, enums, and a try-it console are in Swagger UI.
Yes. Responses are JSON over HTTPS — use them in n8n, Zapier, Sheets, a CRM, Slack, or any dashboard that can call REST. For Claude, Cursor, ChatGPT, and other assistants that speak MCP, use the MCP server instead of wiring HTTP yourself. Same key, same inventory.
REST is for scripts, n8n, CRMs, and anything that wants explicit HTTP. MCP is for ChatGPT, Claude, Cursor, and other assistants that call tools in chat. Same key, same data, shared rate limit. See the MCP landing.
Yes. Every Public API endpoint accepts x402 paid requests — USDC agent credits, no browser account. Discovery manifest: /.well-known/x402.
Same inventory as the app — over HTTPS
One Bearer key for REST and MCP. 60 requests per minute. Field names on this page match OpenAPI.