API reference

Base URL https://seometricsapi.com, versioned under /v1. One authentication header, one response envelope and one vocabulary across every endpoint; every metric they return is listed A to Z on the metrics page.

Basics

Authentication

Every request — except /v1/health, /v1/public/plans and the public tool endpoints — carries your key in the Authorization header. Keys come from the signup page, look like sk_live_pub_…, and are stored by us only as a hash. A missing or invalid key answers 401; a key without the route's scope answers 403 and names the scope.

$ curl -H "Authorization: Bearer sk_live_pub_YOUR_KEY" \ "https://seometricsapi.com/v1/domains/example.com?fields=rating,traffic"

Response envelope

An illustrative response for example.com with fields=rating,traffic, as in the curl above: the shape is exact, the figures are made up.

{ "data": { "domain": "example.com", "requested": "example.com", "domain_rating": 91, "ahrefs_rank": 412, "monthly_visits": 105300000, "monthly_visits_basis": "total", "organic_monthly_visits": 38200000, "top_countries": null, "engagement": null, "traffic_ranks": null, "monthly_visits_history": null, "site": null, "favicon_url": null, "sources": { "domain_rating": { "provider": "ahrefs", "fetched_at": "2026-08-28T09:14:02.000Z", "status": "ok" }, "ahrefs_rank": { "provider": "ahrefs", "fetched_at": "2026-08-28T09:14:02.000Z", "status": "ok" }, "monthly_visits": { "provider": "similarweb", "fetched_at": "2026-08-27T22:41:55.000Z", "status": "ok" }, "organic_monthly_visits": { "provider": "ahrefs", "fetched_at": "2026-08-28T09:14:02.000Z", "status": "ok" }, "top_countries": { "provider": null, "fetched_at": null, "status": "not_requested" }, "engagement": { "provider": null, "fetched_at": null, "status": "not_requested" }, "traffic_ranks": { "provider": null, "fetched_at": null, "status": "not_requested" }, "monthly_visits_history": { "provider": null, "fetched_at": null, "status": "not_requested" }, "site": { "provider": null, "fetched_at": null, "status": "not_requested" }, "favicon_url": { "provider": null, "fetched_at": null, "status": "not_requested" } } }, "meta": { "resource": "domain", "request_id": "req_01J6XY0M9QK7Z3D5W8T2HBN4RC", "cache": "hit", "age_seconds": 254407, "expires_at": "2026-09-10T22:41:55.000Z", "degraded": false, "cost_units": 0 }, "error": null }
  • Numbers are numbers. 105300000, never "105M+"; formatting is left to the client.
  • null means unknown. Never zero, never a placeholder. The matching sources entry says why: no_data, provider_error, disabled or not_requested.
  • Provenance per field. Each metric names its provider and fetch time in sources; derive freshness from fetched_at, not from the time of the request.
  • meta.cache and meta.cost_units. A cache hit costs 0 credits; a fresh fetch costs each billed provider call at its API type's credits (see credit costs). degraded: true marks an answer that could not be fully confirmed, for example one served past its freshness window.

Credits and caching

  • Core routes. 1 credit is 1 billed provider call, weighted by its API type's credits (1 for most; link indexing is charged per URL). See credit costs.
  • /v1/ahrefs routes. The Ahrefs weight per 50-unit block of the call's Ahrefs units. The worst case is reserved before the call, and a call is never charged more than it reserved.
  • Cache hits cost 0. meta.cache says whether you got one; meta.cost_units is what this request spent.
  • No overage billing. An exhausted quota answers 429 quota_exceeded; a request whose worst case exceeds 65,535 credits answers 400 and names select, limit or the span to narrow.

Usage

GET /v1/usage

This key's consumption in the current period: requests, credits, cache hits and its limits.

Parameters
None.
Cost
Free.
Scope
usage:read
Returns
period_start period_end events cost_units cache_hits errors rate_limit_rpm monthly_units
curl -H "Authorization: Bearer $KEY" "https://seometricsapi.com/v1/usage"

Health

GET /v1/health

Service and database status. Anonymous; the per-source detail and live checks are for operator keys.

Parameters
  • probe query (cheap | live; default cheap) — live runs live checks. Operator keys only (metrics:refresh).
Cost
The default check is free. ?probe=live spends: meta.cost_units reports it and it counts as usage.
Scope
None — anonymous.
Returns
status database providers
curl "https://seometricsapi.com/v1/health"

Plans and credit costs

GET /v1/public/plans

The live price list: plans, credit packs and the credits each API type costs. Anonymous and unmetered.

Parameters
None.
Cost
Free and unmetered.
Scope
None — anonymous.
Returns
plans credit_packs credit_costs checkout_enabled
curl "https://seometricsapi.com/v1/public/plans"

Domains

One lookup returns Ahrefs authority and organic traffic beside Similarweb visits, engagement, ranks and the site card, each field with its own sources entry. The batch takes a list; the aggregate summarises one from the cache; /v1/backlinks/{domain} answers Moz authority.

Domain metrics

GET /v1/domains/{domain}

Authority, traffic, engagement, ranks and the site card for one domain, scoped and charged by field group.

Parameters
  • domain path, required — A domain or a URL; the registrable root answers.
  • fields query (rating | traffic | countries | engagement | ranks | history | …; default rating,traffic,countries) — Field groups to return and pay for; all is every group.
  • traffic_fallback query (default true) — Serve the Ahrefs organic figure when Similarweb has no total.
  • country query (default US) — ISO 3166 code that scopes traffic_ranks.country.
  • max_age query (0–31536000) — Oldest cached answer you accept, in seconds; 0 forces a refresh and needs metrics:refresh.
Cost
1 credit per billed provider call at that provider's weight: fields=rating is 1 call, rating,traffic 3, the default rating,traffic,countries 4. Cache hits cost 0.
Scope
domains:read
Returns
domain requested domain_rating ahrefs_rank monthly_visits monthly_visits_basis organic_monthly_visits top_countries all 24 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/domains/example.com?fields=rating,traffic,countries"

Domain metrics, batch

POST /v1/domains:batch

The domain resource for up to 200 domains; it answers 202 with a job to poll, and ?wait=true answers 200 synchronously for up to 25 domains.

Parameters
  • domains body, required (–200) — Up to 200 domains or URLs.
  • fields body (rating | traffic | countries | engagement | ranks | history | …; default rating,traffic,countries) — Field groups, as on the single lookup.
  • traffic_fallback body (default true) — Serve the Ahrefs organic figure when there is no total, as on the single lookup.
  • country body (default US) — ISO 3166 code that scopes traffic_ranks.country, as on the single lookup.
  • max_age body (0–31536000) — Oldest cached answer you accept, in seconds; 0 forces a refresh and needs metrics:refresh. A job always refreshes.
  • wait query (default false) — Answer 200 with the results instead of a 202 job; up to 25 domains, more is a 400.
Cost
A job (the 202 path) claims one Ahrefs call per distinct domain, at the Ahrefs weight, when it is created. With ?wait=true each billed provider call is charged at its provider's weight, and cache hits cost 0. Needs the domains:batch scope.
Scope
domains:batch
Returns
count results job_id
curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \ -d '{"domains": ["example.com", "example.org"], "fields": "rating"}' \ "https://seometricsapi.com/v1/domains:batch"

Bundle statistics

POST /v1/domains:aggregate

Domain Rating and traffic statistics over a list, read from the cache only; coverage says how much of the list it knew.

Parameters
  • domains body, required (–200) — Up to 200 domains.
  • top_threshold body (0–100; default 70) — Domain Rating at or above this counts toward domain_rating_top_count.
Cost
Free: it reads the cache and never calls a provider. Warm the list with the batch first.
Scope
domains:read
Returns
count resolved coverage domain_rating_avg domain_rating_max domain_rating_top_label domain_rating_top_count monthly_visits_sum all 9 fields →
curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \ -d '{"domains": ["example.com", "example.org"], "top_threshold": 70}' \ "https://seometricsapi.com/v1/domains:aggregate"

Batch job

GET /v1/jobs/{job_id}

The progress of a batch, and its results once it is done.

Parameters
  • job_id path, required — The id the batch answered with.
Cost
Free.
Scope
domains:batch
Returns
status total done ok no_data failed results
curl -H "Authorization: Bearer $KEY" "https://seometricsapi.com/v1/jobs/JOB_ID"

Field groups

The fields parameter scopes both the response and the spend. Default: rating,traffic,countries.

GroupFields included
ratingdomain_rating (0–100), ahrefs_rank
trafficmonthly_visits (+ monthly_visits_basis), organic_monthly_visits
countriestop_countries — [{country_code, share}], share is a fraction 0–1
engagementbounce_rate, pages_per_visit, time_on_site_seconds, month, traffic_sources
rankstraffic_ranks — global, country and category popularity ranks
historymonthly_visits_history — recent months of visit estimates
sitesite — name, title, description, category
faviconfavicon_url
allEverything above

Ahrefs

Ahrefs' Site Explorer, Keywords Explorer, SERP Overview and Batch Analysis, under Ahrefs' own field names, plus a Site Explorer overview of ours built from one Batch Analysis call. Every call is validated, bounded and reserved before it reaches Ahrefs.

Parameters, rows and units

  • Field names are Ahrefs' — refdomains, org_traffic, url_rating_source; the path names the vendor. Money fields are in USD cents where Ahrefs reports cents; every field's unit is on the metrics page.
  • select picks the fields (the block's key fields by default), where filters with Ahrefs' JSON grammar — and, or, not, {"field": …, "is": [op, value]} — over the costed fields only, and order_by takes field:asc or field:desc. Anything not listed for a route is a 400.
  • Rows are bounded before the call: limit, a history's date span, SERP Overview's top_positions, Batch Analysis's targets — each block states its bound.
  • Units: a call costs max(50, rows × the per-row units of the fields it selects, filters and sorts by); a field costs 1, 5 or 10 units a row, some per country or per month of history.
  • Omit date for today's data, cached as "latest" for a day; mode defaults to subdomains. Fields that need Ahrefs' Brand Radar add-on are refused: this API does not include it.

Ahrefs endpoints are billed per 50-unit block of Ahrefs units: credits = the Ahrefs weight × ⌈units ÷ 50⌉; the worst case is reserved first and never exceeded.

Site Explorer · Overview

Overview

GET /v1/ahrefs/site-explorer/overview

The Site Explorer overview of one target from a single Batch Analysis call: DR, UR, Ahrefs Rank, backlinks, referring domains, organic and paid traffic and value, keywords by position and top countries.

Parameters
target required · select (ahrefs_rank | backlinks | backlinks_dofollow | backlinks_internal | backlinks_nofollow | backlinks_redirect | …) · mode (exact | prefix | domain | subdomains; default subdomains) · protocol (both | http | https; default both) · volume_mode (monthly | average; default monthly) · country (ad | ae | af | ag | ai | al | …) · top_countries (1–10; default 1)
Rows
One object per call.
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 47 units a row.
Scope
domains:read
Returns
domain_rating ahrefs_rank url_rating backlinks backlinks_dofollow refdomains org_keywords org_keywords_1_3 all 35 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/overview?target=example.com"

Domain rating

GET /v1/ahrefs/site-explorer/domain-rating

Domain Rating (0–100) and Ahrefs Rank on a date.

Parameters
date (default latest) · target required
Rows
One object per call.
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 2 units a row.
Scope
domains:read
Returns
ahrefs_rank domain_rating all 2 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/domain-rating?target=example.com"

Metrics

GET /v1/ahrefs/site-explorer/metrics

Organic and paid snapshot: organic keywords, traffic and value; paid keywords, traffic, cost and pages.

Parameters
date (default latest) · mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both) · country (ad | ae | af | ag | ai | al | …) · volume_mode (monthly | average; default monthly) · traffic_mode (static | adaptive; default adaptive)
Rows
One object per call.
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 44 units a row.
Scope
domains:read
Returns
org_cost org_keywords org_keywords_1_3 org_traffic paid_cost paid_keywords paid_pages paid_traffic all 8 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/metrics?target=example.com"

AI responses count

GET /v1/ahrefs/site-explorer/ai-responses-count needs Brand Radar — not included

Citations of a target in AI answers, per platform (Brand Radar–powered).

Parameters
select (all_platforms | chatgpt | copilot | gemini | google_ai_mode | google_ai_overviews | …) · date · mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both) · country (ad | ae | af | ag | ai | al | …)
Rows
One object per call.
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded.
Scope
domains:read
Returns
all_platforms all 18 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/ai-responses-count?target=example.com"

Every field of this route needs Ahrefs' Brand Radar index, which this API does not include: a call answers 400 (invalid_input, naming select).

Refdomains history

GET /v1/ahrefs/site-explorer/refdomains-history

Referring-domains count over time.

Parameters
mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both) · date_from · date_to · history_grouping (daily | weekly | monthly; default monthly)
Rows
One row per period from date_from to date_to, by history_grouping (monthly by default): the last 12 months by default, up to 400 points by default (2000 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 6 units a row.
Scope
domains:read
Returns
date refdomains all 2 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/refdomains-history?target=example.com"

Domain Rating history

GET /v1/ahrefs/site-explorer/domain-rating-history

Domain Rating over time.

Parameters
target required · date_from · date_to · history_grouping (daily | weekly | monthly; default monthly)
Rows
One row per period from date_from to date_to, by history_grouping (monthly by default): the last 12 months by default, up to 400 points by default (2000 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 2 units a row.
Scope
domains:read
Returns
date domain_rating all 2 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/domain-rating-history?target=example.com"

URL Rating history

GET /v1/ahrefs/site-explorer/url-rating-history

URL Rating of a page over time.

Parameters
target required · date_from · date_to · history_grouping (daily | weekly | monthly; default monthly)
Rows
One row per period from date_from to date_to, by history_grouping (monthly by default): the last 12 months by default, up to 400 points by default (2000 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 2 units a row.
Scope
domains:read
Returns
date url_rating all 2 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/url-rating-history?target=example.com"

Pages history

GET /v1/ahrefs/site-explorer/pages-history

Number of pages ranking in the organic top 100 over time.

Parameters
mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both) · country (ad | ae | af | ag | ai | al | …) · date_from · date_to · history_grouping (daily | weekly | monthly; default monthly) · page_positions (top10 | top100; default top100)
Rows
One row per period from date_from to date_to, by history_grouping (monthly by default): the last 12 months by default, up to 400 points by default (2000 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 2 units a row.
Scope
domains:read
Returns
date pages all 2 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/pages-history?target=example.com"

Metrics history

GET /v1/ahrefs/site-explorer/metrics-history

Organic and paid traffic and traffic value over time.

Parameters
select (date | org_cost | org_traffic | paid_cost | paid_traffic) · mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both) · country (ad | ae | af | ag | ai | al | …) · date_from · date_to · history_grouping (daily | weekly | monthly; default monthly) · volume_mode (monthly | average; default monthly) · traffic_mode (static | adaptive; default adaptive)
Rows
One row per period from date_from to date_to, by history_grouping (monthly by default): the last 12 months by default, up to 400 points by default (2000 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 41 units a row.
Scope
domains:read
Returns
date org_cost org_traffic paid_cost paid_traffic all 5 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/metrics-history?target=example.com"

Keywords history

GET /v1/ahrefs/site-explorer/keywords-history

Organic keyword counts by position bucket over time.

Parameters
select (date | top11_20 | top11_plus | top21_50 | top3 | top4_10 | …) · mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both) · country (ad | ae | af | ag | ai | al | …) · date_from · date_to · history_grouping (daily | weekly | monthly; default monthly)
Rows
One row per period from date_from to date_to, by history_grouping (monthly by default): the last 12 months by default, up to 400 points by default (2000 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 4 units a row.
Scope
domains:read
Returns
date top3 top4_10 top11_plus all 7 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/keywords-history?target=example.com"

Metrics by country

GET /v1/ahrefs/site-explorer/metrics-by-country

Organic and paid metrics broken down per country.

Parameters
select (country | org_cost | org_keywords | org_keywords_1_3 | org_traffic | paid_cost | …) · limit (1–100; default 10) · date (default latest) · mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both) · volume_mode (monthly | average; default monthly) · traffic_mode (static | adaptive; default adaptive)
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 22 units a row.
Scope
domains:read
Returns
country org_traffic org_keywords org_cost all 9 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/metrics-by-country?target=example.com&limit=10"

Pages by traffic

GET /v1/ahrefs/site-explorer/pages-by-traffic

Pages and traffic in each traffic bucket (0, 1–100, … 10K+).

Parameters
target required · protocol (both | http | https; default both) · mode (exact | prefix | domain | subdomains; default subdomains) · volume_mode (monthly | average; default monthly) · traffic_mode (static | adaptive; default adaptive) · country (ad | ae | af | ag | ai | al | …)
Rows
One object per call.
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 56 units a row.
Scope
domains:read
Returns
range0_pages range100_pages range100_traffic range10k_pages range10k_plus_pages range10k_plus_traffic range10k_traffic range1k_pages all 11 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/pages-by-traffic?target=example.com"

Total search volume history

GET /v1/ahrefs/site-explorer/total-search-volume-history

Total search volume of the keywords a target ranks for (in the top 10 or 100) over time.

Parameters
mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both) · country (ad | ae | af | ag | ai | al | …) · date_from · date_to · history_grouping (daily | weekly | monthly; default monthly) · top_positions (top_10 | top_100; default top_10) · volume_mode (monthly | average; default monthly)
Rows
One row per period from date_from to date_to, by history_grouping (monthly by default): the last 12 months by default, up to 400 points by default (2000 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 11 units a row.
Scope
domains:read
Returns
date total_search_volume all 2 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/total-search-volume-history?target=example.com"

Site Explorer · Backlinks profile

Referring domains

GET /v1/ahrefs/site-explorer/refdomains

Referring domains with Domain Rating, link counts, traffic and first/last seen.

Parameters
select (dofollow_linked_domains | dofollow_links | dofollow_refdomains | domain | domain_rating | first_seen | …) · where · order_by (dofollow_linked_domains | dofollow_links | dofollow_refdomains | domain | domain_rating | first_seen | …) · limit (1–100; default 10) · history (default all_time) · mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both)
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 5 units a row.
Scope
domains:read
Returns
domain domain_rating dofollow_links links_to_target first_seen all 15 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/refdomains?target=example.com&limit=10"

Anchors

GET /v1/ahrefs/site-explorer/anchors

Anchor texts of inbound links with link and referring-domain counts.

Parameters
select (anchor | dofollow_links | first_seen | is_spam | last_seen | links_to_target | …) · where · order_by (anchor | dofollow_links | first_seen | is_spam | last_seen | links_to_target | …) · limit (1–100; default 10) · history (default all_time) · mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both)
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 8 units a row.
Scope
domains:read
Returns
anchor refdomains links_to_target first_seen all 11 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/anchors?target=example.com&limit=10"

Site Explorer · Outgoing links

Linked domains

GET /v1/ahrefs/site-explorer/linkeddomains

External domains the target links out to.

Parameters
select (dofollow_linked_domains | dofollow_links | dofollow_refdomains | domain | domain_rating | first_seen | …) · where · order_by (dofollow_linked_domains | dofollow_links | dofollow_refdomains | domain | domain_rating | first_seen | …) · limit (1–100; default 10) · mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both)
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 4 units a row.
Scope
domains:read
Returns
domain domain_rating links_from_target linked_pages all 10 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/linkeddomains?target=example.com&limit=10"

Outgoing external anchors

GET /v1/ahrefs/site-explorer/linked-anchors-external

Anchor texts of the target’s outgoing external links.

Parameters
select (anchor | dofollow_links | first_seen | linked_domains | linked_pages | links_from_target) · where · order_by (anchor | dofollow_links | first_seen | linked_domains | linked_pages | links_from_target) · limit (1–100; default 10) · mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both)
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 3 units a row.
Scope
domains:read
Returns
anchor linked_domains links_from_target all 6 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/linked-anchors-external?target=example.com&limit=10"

Outgoing internal anchors

GET /v1/ahrefs/site-explorer/linked-anchors-internal

Anchor texts of the target’s internal links.

Parameters
select (anchor | dofollow_links | first_seen | linked_pages | links_from_target) · where · order_by (anchor | dofollow_links | first_seen | linked_pages | links_from_target) · limit (1–100; default 10) · mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both)
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 3 units a row.
Scope
domains:read
Returns
anchor linked_pages links_from_target all 5 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/linked-anchors-internal?target=example.com&limit=10"

Site Explorer · Organic search

Organic keywords

GET /v1/ahrefs/site-explorer/organic-keywords

Keywords the target ranks for organically, with position, volume, traffic, difficulty and SERP features.

Parameters
select (best_position | best_position_diff | best_position_has_thumbnail | best_position_has_thumbnail_prev | best_position_has_video | best_position_has_video_prev | …) · where · order_by (best_position | best_position_diff | best_position_has_thumbnail | best_position_has_thumbnail_prev | best_position_has_video | best_position_has_video_prev | …) · limit (1–100; default 10) · volume_mode (monthly | average; default monthly) · traffic_mode (static | adaptive; default adaptive) · date (default latest) · date_compared · country (ad | ae | af | ag | ai | al | …) · mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both)
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 23 units a row.
Scope
domains:read
Returns
keyword best_position best_position_url volume sum_traffic all 65 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/organic-keywords?target=example.com&limit=10"

Organic competitors

GET /v1/ahrefs/site-explorer/organic-competitors

Domains or pages competing with the target for the same organic keywords.

Parameters
select (competitor_domain | competitor_url | domain_rating | group_mode | keywords_common | keywords_competitor | …) · where · order_by (competitor_domain | competitor_url | domain_rating | group_mode | keywords_common | keywords_competitor | …) · limit (1–100; default 10) · volume_mode (monthly | average; default monthly) · traffic_mode (static | adaptive; default adaptive) · date (default latest) · date_compared · country (ad | ae | af | ag | ai | al | …; default us) · mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both)
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 14 units a row.
Scope
domains:read
Returns
competitor_domain keywords_common share traffic domain_rating all 20 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/organic-competitors?target=example.com&limit=10"

Top pages

GET /v1/ahrefs/site-explorer/top-pages

The target’s pages ranked by organic traffic, with keyword and traffic-value metrics.

Parameters
select (ai_responses_chatgpt | ai_responses_copilot | ai_responses_gemini | ai_responses_google_ai_mode | ai_responses_google_ai_overviews | ai_responses_grok | …) · where · order_by (ai_responses_chatgpt | ai_responses_copilot | ai_responses_gemini | ai_responses_google_ai_mode | ai_responses_google_ai_overviews | ai_responses_grok | …) · limit (1–100; default 10) · volume_mode (monthly | average; default monthly) · traffic_mode (static | adaptive; default adaptive) · date (default latest) · date_compared · country (ad | ae | af | ag | ai | al | …) · mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both)
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 23 units a row.
Scope
domains:read
Returns
url sum_traffic keywords top_keyword value all 43 fields →
Brand Radar
ai_responses_chatgpt ai_responses_copilot ai_responses_gemini ai_responses_google_ai_mode ai_responses_google_ai_overviews ai_responses_grok ai_responses_perplexity needs Brand Radar — not included
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/top-pages?target=example.com&limit=10"

Site Explorer · Paid search

Paid pages

GET /v1/ahrefs/site-explorer/paid-pages

The target’s pages receiving paid search traffic, with ads and keyword data.

Parameters
select (ads_count | ads_count_diff | ads_count_prev | keywords | keywords_diff | keywords_diff_percent | …) · where · order_by (ads_count | ads_count_diff | ads_count_prev | keywords | keywords_diff | keywords_diff_percent | …) · limit (1–100; default 10) · volume_mode (monthly | average; default monthly) · date (default latest) · date_compared · country (ad | ae | af | ag | ai | al | …) · mode (exact | prefix | domain | subdomains; default subdomains) · target required · protocol (both | http | https; default both)
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 23 units a row.
Scope
domains:read
Returns
url sum_traffic keywords ads_count value all 38 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/paid-pages?target=example.com&limit=10"

Site Explorer · Pages

Crawled pages

GET /v1/ahrefs/site-explorer/crawled-pages

Pages of the target crawled by AhrefsBot, with HTTP status, title, language, page type and publish date.

Parameters
select (first_seen | http_code | languages | last_attempt | last_crawled | page_category | …) · order_by (first_seen | http_code | languages | last_attempt | last_crawled | page_category | …; –1) · where · target required · mode (exact | prefix | domain | subdomains; default subdomains) · protocol (both | http | https; default both) · limit (1–100; default 10)
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 4 units a row.
Scope
domains:read
Returns
url http_code title last_crawled all 11 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/site-explorer/crawled-pages?target=example.com&limit=10"

Keywords Explorer · Overview

Overview

GET /v1/ahrefs/keywords-explorer/overview

Metrics for up to five keywords: volume, difficulty, CPC, clicks, traffic potential, parent topic, intents.

Parameters
select (clicks | cpc | cps | difficulty | first_seen | global_volume | …) · where · order_by (clicks | cpc | cps | difficulty | first_seen | global_volume | …) · limit (1–100; default 10) · keywords required (–5) · country (ad | ae | af | ag | ai | al | …; default us) · target_position (in_top10 | in_top100) · target · mode (exact | prefix | domain | subdomains) · volume_monthly_date_from · volume_monthly_date_to
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 32 units a row.
Scope
keywords:read
Returns
keyword volume difficulty cpc traffic_potential all 26 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/keywords-explorer/overview?keywords=seo%20api&limit=10"

Volume history

GET /v1/ahrefs/keywords-explorer/volume-history

Monthly search volume history of a keyword in a country.

Parameters
keyword required · country (ad | ae | af | ag | ai | al | …; default us) · date_from · date_to
Rows
One row per period from date_from to date_to, monthly: the last 24 months by default, up to 400 points by default (2000 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 2 units a row.
Scope
keywords:read
Returns
date volume all 2 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/keywords-explorer/volume-history?keyword=seo%20api"

Volume by country

GET /v1/ahrefs/keywords-explorer/volume-by-country

A keyword’s search volume per country.

Parameters
keyword required · limit (1–100; default 10)
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 11 units a row.
Scope
keywords:read
Returns
country volume all 2 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/keywords-explorer/volume-by-country?keyword=seo%20api&limit=10"

Keywords Explorer · Keyword ideas

Matching terms

GET /v1/ahrefs/keywords-explorer/matching-terms

Keyword ideas containing the seed terms (all terms or questions), with metrics.

Parameters
select (cpc | cps | difficulty | first_seen | global_volume | intents | …) · where · order_by (cpc | cps | difficulty | first_seen | global_volume | intents | …) · limit (1–100; default 10) · keywords required (–5) · country (ad | ae | af | ag | ai | al | …; default us) · terms (all | questions; default all) · match_mode (terms | phrase; default terms)
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 22 units a row.
Scope
keywords:read
Returns
keyword volume difficulty cpc all 20 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/keywords-explorer/matching-terms?keywords=seo%20api&limit=10"

Search suggestions

GET /v1/ahrefs/keywords-explorer/search-suggestions

Autocomplete search suggestions for the seed keywords, with metrics.

Parameters
select (cpc | cps | difficulty | first_seen | global_volume | intents | …) · where · order_by (cpc | cps | difficulty | first_seen | global_volume | intents | …) · limit (1–100; default 10) · keywords required (–5) · country (ad | ae | af | ag | ai | al | …; default us)
Rows
limit rows: 10 by default, up to 100 by default (250 if the deployment raises the cap).
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 22 units a row.
Scope
keywords:read
Returns
keyword volume difficulty cpc all 20 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/keywords-explorer/search-suggestions?keywords=seo%20api&limit=10"

SERP Overview

SERP Overview

GET /v1/ahrefs/serp-overview

The top organic results for a keyword and country, with each result’s DR, UR, backlinks and traffic.

Parameters
select (ahrefs_rank | backlinks | domain_rating | keywords | page_type | position | …) · keyword required · country (ad | ae | af | ag | ai | al | …; default us) · date · top_positions (1–100; default 10) · type (paid_top | paid_bottom | paid_right | paid_sitelink | organic | sitelink | …; default organic)
Rows
top_positions results: 10 by default, at most 100; a type other than organic is estimated at 4× the rows.
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 15 units a row.
Scope
serp:read
Returns
position url title domain_rating url_rating traffic all 16 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/ahrefs/serp-overview?keyword=seo%20api"

Batch Analysis

Batch Analysis

POST /v1/ahrefs/batch-analysis

Site Explorer metrics for up to 100 targets in one call: DR, UR, links, referring domains, traffic.

Parameters
select (ahrefs_rank | backlinks | backlinks_dofollow | backlinks_internal | backlinks_nofollow | backlinks_redirect | …) · order_by (ahrefs_rank | backlinks | backlinks_dofollow | backlinks_internal | backlinks_nofollow | backlinks_redirect | …) · targets required (1–100) · mode (exact | prefix | domain | subdomains; default subdomains) · protocol (both | http | https; default both) · volume_mode (monthly | average; default monthly) · country (ad | ae | af | ag | ai | al | …) · top_countries (1–10; default 1)
Rows
Up to 100 targets a call, one row each.
Cost
Ahrefs units: max(50, rows × the per-row units of the fields you select, filter and sort by), charged per 50-unit block at the Ahrefs weight; the worst case is reserved first and never exceeded. The default select costs 22 units a row.
Scope
domains:batch
Returns
url domain_rating ahrefs_rank url_rating backlinks refdomains org_keywords org_traffic all 35 fields →
curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \ -d '{"targets":["example.com","example.org"]}' \ "https://seometricsapi.com/v1/ahrefs/batch-analysis"

Similarweb

Everything Similarweb has for a domain — visits and their history, engagement, ranks, every country share, traffic channels, top keywords and similar sites — in one call. All traffic figures are estimates, not analytics.

Overview

GET /v1/similarweb/overview

Everything Similarweb has for one domain: visits, engagement, ranks, countries, channels.

Parameters
target required
Rows
One object per call.
Cost
One call at the Similarweb weight.
Scope
domains:read
Returns
site visits engagement ranks countries traffic_sources top_keywords similar_sites all 30 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/similarweb/overview?target=example.com"

Moz

Moz Domain Authority, Page Authority and Spam Score for one page URL or a bare domain; the same three figures for a whole domain come with /v1/backlinks/{domain}; both routes need the backlinks:read scope, which every paid plan carries.

URL metrics

GET /v1/moz/url-metrics

Moz Domain Authority, Page Authority and Spam Score for one page URL or domain.

Parameters
target required
Rows
One object per call.
Cost
One call at the Moz weight.
Scope
backlinks:read
Returns
domain_authority page_authority spam_score all 3 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/moz/url-metrics?target=example.com"

Keywords, SERP and index

Keyword metrics from Ahrefs, Google's organic results, Google index checks with the evidence, and noindex checks: a URL's status, redirects and robots directives.

Keyword metrics

GET /v1/keywords

Search volume, Keyword Difficulty and CPC for a handful of phrases in one country.

Parameters
  • q query, required (–5) — up to 5 comma-separated phrases; more is a 400, never a truncation.
  • country query (default US) — ISO 3166 code of the market.
Cost
One Ahrefs call at the Ahrefs weight, however many of the 5 phrases it carries. Cache hits cost 0.
Scope
keywords:read
Returns
country keywords.keyword keywords.search_volume keywords.difficulty keywords.cpc keywords.cpc_currency sources.keywords all 7 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/keywords?q=seo%20api,domain%20rating&country=US"

SERP snapshot

GET /v1/serp

Google's organic results for a query in one country and language.

Parameters
  • q query, required — The query; the parameter is q, not query.
  • country query (default US) — ISO 3166 code.
  • language query (default en) — ISO 639-1 code.
  • limit query (1–20; default 10) — Results wanted; at most 10 come back, and truncated says when fewer did.
  • type query (organic; default organic) — Organic results only.
Cost
One call at the SERP weight. Cache hits cost 0.
Scope
serp:read
Returns
query resolved_query engine truncated results.serp_position results.url results.title results.snippet all 11 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/serp?q=affordable%20seo%20api&country=US&limit=10"

Google index check

GET /v1/index

Whether a page or a whole domain is in Google's index, with the sample results that prove it.

Parameters
  • target query, required — A domain or a full URL; the parameter is target, not query.
  • samples query (0–10; default 10) — Sample results to return as evidence.
Cost
Each billed call at the index-checker weight (1 credit per call by default). Cache hits cost 0.
Scope
index:read
Returns
target is_url_check indexed indexed_sample_count samples verify_url engine all 7 fields →
curl -H "Authorization: Bearer $KEY" \ "https://seometricsapi.com/v1/index?target=example.com&samples=3"

Noindex check

GET /v1/indexability

The HTTP status, the redirects, and the noindex and nofollow directives of one URL, checked live.

Parameters
  • url query, required — An absolute http(s) URL of at most 512 characters, and the scheme is required; an IP address, an internal name, credentials, a port other than the scheme's default, or a host that does not resolve to a public address is a 400.
Cost
One check at the noindex checker weight (1 credit by default), whether or not the page could be reached. No cache: every call is a live check.
Scope
index:read
Returns
url status_code redirects final_url final_status_code indexable noindex nofollow all 15 fields →
curl -H "Authorization: Bearer $KEY" "https://seometricsapi.com/v1/indexability?url=https%3A%2F%2Fexample.com%2Fpage"

Use a live key: a test key is refused with a 400. Allow a client timeout of 30 s or more; the check reads the HTML the server sends, so a robots tag that JavaScript adds after load is not seen; and meta.degraded: true means the check couldn't be fully confirmed; retry for a confirmed answer. Every field, the seven error values and what blocked means are described on the Noindex Checker API page (/noindex-checker-api).

Link indexing

Modes and limits

POST /v1/indexing queues URLs with an indexing provider and answers 202 with a task; GET /v1/indexing/{task_id} reports its progress. The key needs indexing:write, which new keys carry. standard takes up to 500 URLs; advanced takes up to 100 and asks for the priority queue, which Googlebot follows within minutes — if the queue declines, the task runs standard, is charged standard, and warning says so. A test key is refused, and no service can force Google to index a page.

Submit URLs for indexing

POST /v1/indexing not live yet

Queues up to 500 URLs with an indexing provider and answers 202 with a task.

Parameters
  • urls body, required (–500) — 1 to 500 absolute http(s) URLs; advanced mode takes at most 100.
  • mode body (standard | advanced; default standard) — advanced asks for the priority queue.
  • client_ref body — An idempotency key: a retry with the same value is answered with the task already queued and charged nothing.
Cost
Per URL at the link-indexing weight (100 standard, 200 advanced by default), reserved before the provider is called; one submission is capped at 65,535 credits.
Scope
indexing:write
Returns
task_id mode urls_submitted credits_charged status warning status_url all 7 fields →
curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \ -d '{"urls": ["https://example.com/new-page"]}' \ "https://seometricsapi.com/v1/indexing"

Until the indexing provider's credential is configured, both routes answer 501 and nothing is charged.

Indexing task status

GET /v1/indexing/{task_id} not live yet

The progress of a task, readable only by the key that submitted it.

Parameters
  • task_id path, required — The id the submission answered with.
Cost
Free.
Scope
indexing:write
Returns
task_id mode urls_submitted credits_charged status processed indexed status_url all 8 fields →
curl -H "Authorization: Bearer $KEY" "https://seometricsapi.com/v1/indexing/TASK_ID"

Until the indexing provider's credential is configured, both routes answer 501 and nothing is charged.

Favicon

Favicon

GET /v1/favicon

A verified favicon URL for a domain — probed and size-checked, never a blank placeholder.

Parameters
  • domain query, required — A domain or a URL.
  • size query (16–512) — Pixel size; this deployment serves one and refuses others by name.
Cost
Free: the favicon probes are keyless, so a lookup spends 0 credits. It shares the domain cache, so a domain lookup with favicon warms it.
Scope
favicon:read
Returns
favicon_url provider verified all 3 fields →
curl -H "Authorization: Bearer $KEY" "https://seometricsapi.com/v1/favicon?domain=example.com"

Errors, limits and quotas

Error codes

Every failure is the same envelope with data: null and an error of {code, message, retriable}.

CodeHTTPRetriableMeaning
invalid_input400noThe request could not be understood; the message names the parameter.
unauthorized401 / 403noNo usable key (401), or the key lacks the required scope (403).
not_found404noThe target can't be identified — a malformed domain, an unknown job.
rate_limited429yesPer-minute burst limit. Back off for Retry-After seconds.
quota_exceeded429noMonthly credits spent. Resets monthly on the day the account signed up (UTC); upgrading lifts it immediately.
provider_unavailable503yesThe data is temporarily unavailable; cached data may still be served with degraded: true.
internal500yesAn unexpected failure on our side; the message is deliberately opaque and carries no internals.
not_implemented501noThe route is reserved and has no implementation yet.

Rate limits and quotas

Rate-limit state travels in headers — X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, plus Retry-After on a refusal. Cache hits are charged at a tenth of the per-minute weight, so a well-cached integration is effectively unthrottled.

quota_exceeded meters the credits your requests spend in the current quota cycle, which resets on the day the account signed up (UTC); /v1/usage is never metered, so a refused key can still read it. /v1/usage reports this key's usage log for the calendar month (UTC): requests, credits, cache hits and errors, beside the cap in monthly_units. The two periods differ, so its cost_units can differ from the meter behind quota_exceeded.

Get an API key

A free key carries 100 credits a month and works on every core endpoint except /v1/backlinks/{domain} and the Moz routes, which need the backlinks:read scope that every paid plan carries. The batch routes need the domains:batch scope, which the Growth and Scale plans carry.


Start now

100 free credits a month, forever. Upgrade only when you outgrow them.

Get free API key

© SEO Metrics API