Coming soon · Ahrefs API Alternative
The Ahrefs API Alternative
Ahrefs bundles API access into its subscription tiers — the Lite plan at $129/month and up, with 1,000 API credits per user, no pay-as-you-go option. Searlo sells the same five Site Explorer report types per call, starting at 2 credits, with no subscription required.
{ "searchTime": 0.17, "totalResults": 85000, "page": 1, "organic": [ { "position": 1, "title": "31.10. Connection Pools and Data Sources", "link": "www.postgresql.org/docs/…", "domain": "postgresql.org", "snippet": "For an environment without an application se…" }, { "position": 2, "domain": "medium.com", … }, { "position": 3, "domain": "stackoverflow.blog", … } ], "credits": 1}Is there an Ahrefs API alternative that doesn't require a subscription?
Yes. Ahrefs requires a Lite plan or higher ($129/mo, 1,000 API credits per user) just to unlock API access — there is no pay-as-you-go tier. Searlo exposes the same five Site Explorer report types — organic keywords, top pages, competing domains, content gap, and overview — as pay-per-call REST endpoints, priced from 2 credits with no subscription and 3,000 free credits to start.
The two products are not identical underneath. Ahrefs' numbers come from a backlink and rank index it has crawled continuously for over a decade. Searlo's keyword rows come from Google Ads' own content-to-keyword association, and position/competitor data comes from live SERPs Searlo runs when you ask — cheaper and available per call, but a narrower, differently-sourced signal, not a drop-in replacement for a crawled link graph or Domain Rating.
- Ahrefs Starter ($29/mo)
- No API access at all— ahrefs.com/pricing
- Ahrefs Lite
- $129/mo — API + MCP unlocked, 1,000 credits/user— ahrefs.com/pricing
- Ahrefs Standard / Advanced
- $249/mo / $449/mo — unlimited API credits/user— ahrefs.com/pricing
- Ahrefs Enterprise
- $1,499/mo, annual commitment — uncapped— ahrefs.com/pricing
- Searlo: unverified keyword/overview/gap pull
- 2 credits flat — no plan, no seat
- Searlo: verified position, per keyword (default depth)
- 30 credits (3 credits x 10 pages)
- Searlo free tier
- 3,000 credits, no card— our pricing
Third-party figures on this page last verified against the sources linked above. Prices change; if you find one of these stale, tell us and we will correct it.
Coming soon: the domain endpoints are temporarily unavailable while their keyword data source is re-enabled. Calls return 403 (FEATURE_NOT_AVAILABLE) and are not billed. Every other endpoint on your key (search, full SERP, AI answers, rank checks, web data) works today.
Ahrefs' Site Explorer sells five report types that map almost exactly onto this API's five endpoints: Organic Keywords, Top Pages, Competing Domains, Content Gap, and the Overview snapshot. If a team's actual need is one or more of those reports over an API — not the crawler, the dashboard, or the link-index browsing UI — the honest question is what that access costs and what data actually backs it.
Ahrefs answers the cost question with a subscription floor: API and MCP access do not exist below the Lite plan, $129/month, and even Lite caps usage at 1,000 API credits per seat. Uncapped per-seat credits require Standard ($249/mo) or Advanced ($449/mo); Enterprise ($1,499/mo) requires an annual commitment. There is no pay-as-you-go tier and no free API allotment.
Searlo answers it the other way: the same five report shapes, sold per call from a one-time credit pack, starting at 2 credits for an unverified pull. There is a real trade — see the honesty note below — but for a team that wants these five reports without buying a monthly seat, it is a direct structural alternative.
Features
No $129/mo floor
API access requires zero subscription — pay per call from a one-time credit pack, starting at 2 credits.
Content Gap, via API only
Ahrefs doesn't expose Content Gap through its API at any tier — /domain/gaps is Searlo's API-accessible equivalent, across up to 10 named rivals, unverified or SERP-verified.
Competing Domains, measured
/domain/competitors mirrors Competing Domains from real co-occurrence on verified SERPs, not a similarity score.
Organic Keywords + Top Pages
/domain/keywords and /domain/top-pages mirror Ahrefs' two flagship reports — Ads-modelled by default, SERP-verified on request.
Overview snapshot
/domain/overview mirrors the Site Explorer overview: footprint, topics, CPC, and (when verified) organic visibility.
Labeled, not blended
Every row states `google_ads_site_seed` or `serp_verified` — the provenance a crawled index doesn't need to disclose, and ours does.
Get started in one request
The same five calls that stand in for a Site Explorer session — keyword footprint, verified top pages, competitors, keyword gap against named rivals, and an overview.
# 1. Keyword footprint — cheap, no positions (2 credits flat)
curl "https://api.searlo.tech/api/v1/domain/keywords?domain=yourdomain.com&limit=50" \
-H "x-api-key: YOUR_API_KEY"
# 2. Verified top pages — always runs a live SERP per keyword checked
curl "https://api.searlo.tech/api/v1/domain/top-pages?domain=yourdomain.com&limit=20" \
-H "x-api-key: YOUR_API_KEY"
# 3. Competitors — co-occurrence across SERPs this call verifies independently
curl "https://api.searlo.tech/api/v1/domain/competitors?domain=yourdomain.com&limit=20" \
-H "x-api-key: YOUR_API_KEY"
# 4. Keyword gap — what up to 10 rivals are associated with that you are not
curl "https://api.searlo.tech/api/v1/domain/gaps?target=yourdomain.com&competitors=competitor1.com,competitor2.com&result_limit=50" \
-H "x-api-key: YOUR_API_KEY"
# 5. Overview — footprint, topics and (if verified) measured visibility
curl "https://api.searlo.tech/api/v1/domain/overview?domain=yourdomain.com" \
-H "x-api-key: YOUR_API_KEY"import requests
BASE = "https://api.searlo.tech/api/v1"
HEADERS = {"x-api-key": "YOUR_API_KEY"}
domain = "yourdomain.com"
rivals = "competitor1.com,competitor2.com"
# 1. Keyword footprint — Google Ads site-seed association, no positions.
# 2 credits flat. Add verify=True to run a live SERP on up to 10 of these
# keywords per call (adds 3 credits x depth-in-pages per keyword verified).
keywords = requests.get(f"{BASE}/domain/keywords",
params={"domain": domain, "limit": 50},
headers=HEADERS).json()["results"]
# 2. Verified top pages — no `verify` param; every call runs SERPs.
top_pages = requests.get(f"{BASE}/domain/top-pages",
params={"domain": domain, "limit": 20},
headers=HEADERS).json()["results"]
# 3. Competitors — domains co-occurring on the SERPs this call verified.
competitors = requests.get(f"{BASE}/domain/competitors",
params={"domain": domain, "limit": 20},
headers=HEADERS).json()["results"]
# 4. Keyword gap — keywords the rivals are associated with that the target
# is not. Cheap by default (Ads association on both sides); verify=True
# measures the target's live position on the gap keywords instead.
gaps = requests.get(f"{BASE}/domain/gaps",
params={"target": domain, "competitors": rivals, "result_limit": 50},
headers=HEADERS).json()["results"]
# 5. Overview — footprint, topics, and organic_visibility (None unless verified).
overview = requests.get(f"{BASE}/domain/overview",
params={"domain": domain},
headers=HEADERS).json()["result"]
print(len(keywords), "keywords,", len(top_pages), "top pages,",
len(competitors), "competitors,", len(gaps), "gap keywords")
print(overview["keyword_footprint"], "total footprint,",
overview["total_search_volume"], "monthly search volume")const BASE = "https://api.searlo.tech/api/v1";
const headers = { "x-api-key": "YOUR_API_KEY" };
const domain = "yourdomain.com";
const rivals = "competitor1.com,competitor2.com";
// 1. Keyword footprint — Ads site-seed association, no positions. 2 credits flat.
const { results: keywords } = await (await fetch(
`${BASE}/domain/keywords?domain=${domain}&limit=50`, { headers },
)).json();
// 2. Verified top pages — every call runs SERPs, no `verify` param to set.
const { results: topPages } = await (await fetch(
`${BASE}/domain/top-pages?domain=${domain}&limit=20`, { headers },
)).json();
// 3. Competitors — co-occurrence on the SERPs this call verified.
const { results: competitors } = await (await fetch(
`${BASE}/domain/competitors?domain=${domain}&limit=20`, { headers },
)).json();
// 4. Keyword gap — up to 10 competitor domains, comma-separated.
const gapParams = new URLSearchParams({ target: domain, competitors: rivals, result_limit: "50" });
const { results: gaps } = await (await fetch(
`${BASE}/domain/gaps?${gapParams}`, { headers },
)).json();
// 5. Overview — organic_visibility is null unless a verified call fed it.
const { result: overview } = await (await fetch(
`${BASE}/domain/overview?domain=${domain}`, { headers },
)).json();
console.log(keywords.length, "keywords,", topPages.length, "top pages,",
competitors.length, "competitors,", gaps.length, "gap keywords");
console.log(overview.keyword_footprint, "total footprint,",
overview.total_search_volume, "monthly search volume");Searlo vs Ahrefs
Ahrefs sells API access as an add-on to a subscription tier. Searlo sells the reports themselves, per call, from a one-time pack.
| Capability | Searlo | Ahrefs |
|---|---|---|
| Minimum to use the API at all | None — pay-per-call from a one-time credit pack | Lite plan, $129/mo (1,000 API credits/user) |
| Unverified keyword / overview pull | 2 credits flat | Deducted from the plan's monthly API-credit allotment |
| Content Gap pull | 2 credits flat | Not available via API at any tier — Content Gap is dashboard-only |
| Verified position check, per keyword (default depth) | 30 credits (3 x 10 pages) | Deducted from the same allotment |
| Uncapped API credits per seat | Always — every call is pay-per-use | Only on Advanced ($449/mo) or Enterprise ($1,499/mo, annual) |
| Free tier | 3,000 credits, no card | None published for API access |
| Underlying data source | Google Ads keyword association + live SERPs Searlo runs on request, labeled per row | Ahrefs' own continuously-crawled backlink and SERP index |
Site Explorer, mapped to five endpoints
Four of these five are reports Ahrefs itself sells through its API, each with a direct counterpart here — the mapping is not a rebrand, since the two products measure differently underneath, but the shapes line up closely enough that a workflow built around one of Ahrefs' API endpoints can be rebuilt around the matching one here without inventing a new mental model. The fifth, Content Gap, isn't one of them: Ahrefs sells it only through the Site Explorer dashboard, never through its own API at any tier, so /domain/gaps is the only per-call way to pull that report at all.
- Organic Keywords → /domain/keywords (Ads-associated by default; verify=true adds live positions on up to 10 keywords per call)
- Top Pages → /domain/top-pages (always verified — a page is grouped from measured positions, not crawled rank history)
- Organic competitors (Ahrefs' dashboard label: Competing Domains) → /domain/competitors (always verified — co-occurrence on the SERPs this call checked)
- Content Gap → /domain/gaps (not sold through Ahrefs' API at any tier — Ads-associated by default across up to 10 named rivals; verify=true measures your live position on the gap keywords)
- Site Explorer overview → /domain/overview (footprint, topics, CPC; organic_visibility only once verified)
What this is not
Ahrefs' numbers come from a link graph and rank index it has crawled continuously for well over a decade. This API does not attempt to replicate that: there is no Domain Rating, no backlink count, no historical link-growth chart, and no crawled-URL discovery here. /domain/keywords and /domain/overview return Google Ads' own keyword association for a domain; /domain/top-pages, /domain/competitors, and a verified /domain/gaps call return positions Searlo measured directly, at the moment you called, not pulled from a standing index.
If a workflow specifically needs backlink profiles, Domain Rating, or a multi-year ranking history, Ahrefs' crawled index is the only place that data lives — this is a live, per-call alternative for keyword-footprint and competitive-visibility reporting, not a claim to have rebuilt Ahrefs' link graph for less money.
Why teams move Site Explorer workflows to an API
- Agencies running audits for many clients without buying an Ahrefs seat per analyst
- Products that need one of these five reports as a feature, not a dashboard tab
- Occasional or bursty domain research that doesn't justify a $129+/mo floor
- Teams already calling Searlo for search or rank data who want domain reports on the same key
FAQ
Frequently asked questions
Does Ahrefs have a free API tier?
No. Ahrefs' Starter plan ($29/mo) has no API access at all, and the cheapest plan that includes it — Lite, $129/mo — caps usage at 1,000 API credits per seat with no free allotment and no pay-as-you-go option, per ahrefs.com/pricing (verified 2026-09-13).
What does the Ahrefs API cost?
API and MCP access require Lite ($129/mo, 1,000 credits/user) or higher. Standard ($249/mo) and Advanced ($449/mo) include unlimited credits per user; Enterprise ($1,499/mo, annual commitment) is uncapped. There is no metered, subscription-free way to call the Ahrefs API.
Is there a pay-as-you-go alternative to the Ahrefs API?
Yes. Searlo sells the same five Site Explorer report types — organic keywords, top pages, competing domains, content gap, and overview — as REST endpoints priced per call: 2 credits flat for an unverified pull, plus 3 credits per 10 results of depth for each keyword you verify with a live SERP. No subscription, 3,000 free credits to start.
Does Searlo replace Ahrefs' backlink index or Domain Rating?
No, and it doesn't claim to. Ahrefs' figures come from a backlink and rank index crawled continuously for over a decade. Searlo's domain reports come from Google Ads' keyword association plus live SERPs run on request — real, but a narrower and differently-sourced signal. There is no Domain Rating, backlink count, or historical link chart in this API.
Which Ahrefs Site Explorer reports does Searlo cover?
All five: Organic Keywords maps to /domain/keywords, Top Pages to /domain/top-pages, Competing Domains to /domain/competitors, Content Gap to /domain/gaps, and the Site Explorer overview to /domain/overview.
How much does a keyword-gap call cost compared to Ahrefs' Content Gap tool?
Searlo's /domain/gaps costs 2 credits per domain in the comparison unverified — 22 credits for a target plus 10 competitors — plus 3 credits per 10 results of depth for each of up to 10 gap keywords you verify. There's no Ahrefs API price to compare it against: Content Gap is a Site Explorer dashboard tool that Ahrefs has never exposed through its API, at any subscription tier or price — /domain/gaps is Searlo's API-accessible equivalent, not a cheaper version of an Ahrefs API feature.