Platform Domains
List the domains running a website platform such as Wix, Shopify, WordPress, Squarespace or Framer, ranked by domain authority.
/v1/platform-domains1 credit (per domain returned, charged after the lookup)API keyReturns domains detected running a given website platform, drawn from the outbound-link graph and enriched with domain authority. Use it for lead lists ("show me Shopify stores"), competitive research and market sizing. Data comes from the pre-processed link graph snapshot (see Response format).
This endpoint is billed at 1 credit for every domain returned, not per call. limit=100 can cost up to 100 credits, and a query that returns 12 domains costs 12. Use limit to cap your spend.
Request
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
platform | string | Yes | none | Platform name or slug, case-insensitive, for example wix, shopify, GoDaddy. See supported platforms. |
limit | integer | No | 100 | Maximum domains to return. Clamped to 1 to 1000. A non-numeric value falls back to 100. |
min_da | integer | No | none | Only return domains with authority score greater than or equal to this value (0 to 100). A non-numeric value is ignored. |
max_da | integer | No | none | Only return domains with authority score less than or equal to this value (0 to 100). A non-numeric value is ignored. |
tld | string | No | none | Only return domains with this top-level domain, for example com, io or co.uk. A leading dot is ignored and matching is case-insensitive. |
sort | string | No | da_desc | da_desc, da_asc or domain_asc. Domains without a score sort last for the two score orders. Any other value behaves like da_desc. |
The registered_after, registered_before and country parameters are reserved and currently return 400 filter_not_available.
Example
curl "https://api.rankparse.com/v1/platform-domains?platform=shopify&tld=com&min_da=30&limit=3" \
-H "X-API-Key: rp_your_key"import requests
res = requests.get(
"https://api.rankparse.com/v1/platform-domains",
params={"platform": "shopify", "tld": "com", "min_da": 30, "limit": 3},
headers={"X-API-Key": "rp_your_key"},
timeout=90,
)
res.raise_for_status()
result = res.json()["data"]
print(result["platform"], result["total_count"], result["returned"])
for row in result["domains"]:
print(row["domain"], row["da_score"])const params = new URLSearchParams({
platform: "shopify",
tld: "com",
min_da: "30",
limit: "3",
});
const res = await fetch(`https://api.rankparse.com/v1/platform-domains?${params}`, {
headers: { "X-API-Key": "rp_your_key" },
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const { data } = await res.json();
console.log(data.domains);Response
{
"data": {
"platform": "Shopify",
"platform_slug": "shopify",
"total_count": 93397,
"returned": 3,
"credits_used": 3,
"filters_applied": { "min_da": 30, "tld": "com" },
"domains": [
{ "domain": "gymshark.com", "tld": "com", "da_score": 89 },
{ "domain": "allbirds.com", "tld": "com", "da_score": 84 },
{ "domain": "kyliecosmetics.com", "tld": "com", "da_score": 78 }
]
},
"credits_used": 3,
"credits_remaining": 997
}Response fields
Top level:
| Field | Type | Description |
|---|---|---|
data | object | The platform result (below). |
credits_used | integer | Credits charged: one per domain returned. |
credits_remaining | integer | Your balance after this call. |
Fields in data:
| Field | Type | Description |
|---|---|---|
platform | string | Display name of the platform, for example Shopify. |
platform_slug | string | Canonical slug, for example shopify. Reusable as platform. |
total_count | integer | Total domains known on this platform, independent of limit and filters. |
returned | integer | Number of rows in domains. |
credits_used | integer | Same as returned. |
filters_applied | object | The filters that took effect, with keys min_da, max_da and tld. Empty when none were applied. |
domains | array | The matching domains. |
Each entry in domains:
| Field | Type | Description |
|---|---|---|
domain | string | The domain. |
tld | string | Its top-level domain. |
da_score | integer or null | Authority score (0 to 100), or null when the domain has no score. |
Supported platforms
Platforms are detected from CDN and image-host signals in the crawl graph, so coverage is limited to platforms that serve assets from a recognizable host:
| Category | Platforms (slugs) |
|---|---|
| Site builders and CMS | wix, wordpress, squarespace, webflow, framer, tilda, weebly, strikingly, bubble, softr, carrd, godaddy_builder, contentful, sanity |
| E-commerce and courses | shopify, bigcommerce, kajabi, thinkific |
| Payments | paypal |
Aliases are case-insensitive, and godaddy or godaddy builder map to godaddy_builder. Anything else returns 400 unknown_platform.
Script-tag products (Google Tag Manager, Stripe, HubSpot, analytics and chat widgets and similar) are not covered. They load through script tags and do not appear in the image and CDN link graph, so a crawl-wide count would be misleading. For per-site detection of those, use Tech Stack.
Behavior and limits
- Credits: 1 per domain returned, deducted atomically after the lookup, so a query that matches nothing costs nothing. Because the charge comes after the lookup, a balance lower than the number of rows returned fails with
402 insufficient_creditsand nothing is deducted. Keep a balance of at leastlimit. - No caching: each call runs fresh.
- Empty results: a valid platform with no matching domains returns
200withdomains: [],returned: 0andcredits_used: 0. - Rate limit: 60 requests per minute per key. See Rate limiting.
Errors
| HTTP | Code | When |
|---|---|---|
| 400 | missing_platform | platform was not provided. |
| 400 | unknown_platform | The platform is not supported. The message lists all supported slugs. |
| 400 | filter_not_available | A reserved parameter (registered_after, registered_before or country) was used. |
| 401 | invalid_api_key | Missing, invalid or revoked API key. |
| 402 | insufficient_credits | Balance is lower than the number of domains returned. |
| 402 | spend_cap_reached | Your monthly spend cap is reached. |
| 429 | rate_limited | More than 60 requests in a minute. |
| 503 | query_timeout, upstream_error | Transient data store problem. Retry after the Retry-After header. Nothing is charged. |
See Errors for the full list and the error body format.
Related
MCP tool: get_platform_domains (accepts platform, limit, min_da, max_da, tld, sort).