Operations 2
Documentation
Documentation
https://docs.ahrefs.com/docs/api/reference/introduction
APIReference
https://docs.ahrefs.com/en/api/reference/site-explorer
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/ahrefs-serp-overview-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Ahrefs SERP Overview API
version: 3.0.0
contact:
name: Ahrefs
url: https://ahrefs.com/
email: support@ahrefs.com
termsOfService: https://ahrefs.com/terms
description: 'Operations tagged SERP Overview across 2 of this provider''s published API definitions: ahrefs-openapi-original.json, ahrefs-serp-overview-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.ahrefs.com/v3
description: Ahrefs API v3
- url: https://api.ahrefs.com/v3/serp-overview
description: Ahrefs SERP Overview
security:
- http:
- read
tags:
- name: SERP Overview
description: Fetch data from SERP Overview report
paths:
/serp-overview/serp-overview:
get:
tags:
- SERP Overview
summary: SERP Overview
description: ''
operationId: serp-overview.serp-overview
parameters:
- description: A comma-separated list of columns to return. See response schema for valid column identifiers.
required: true
explode: false
schema:
type: string
name: select
in: query
- description: A comma-separated list of SERP feature types to filter by. Only positions whose `type` includes at least one of the given values are returned. If not specified, positions of all types are returned.
required: false
explode: false
schema:
type: string
enum:
- paid_top
- paid_bottom
- paid_right
- paid_sitelink
- organic
- sitelink
- snippet
- image
- article
- knowledge_card
- knowledge_panel
- local_pack
- local_teaser
- news
- question
- review
- shopping
- tweet
- spelling
- video
- discussion
- ai_overview
- ai_overview_sitelink
- organic_shopping
- image_th
- video_th
- ai_overview_found
default: ''
name: type
in: query
- description: The number of top organic SERP positions to return. If not specified, all available positions will be returned.
required: false
explode: false
schema:
type: integer
name: top_positions
in: query
- description: A timestamp on which the last available SERP Overview is returned in YYYY-MM-DDThh:mm:ss format. If it is not specified, the most recent SERP Overview is returned.
required: false
explode: false
schema:
type: string
format: date-time
name: date
in: query
- description: A two-letter country code (ISO 3166-1 alpha-2).
required: true
explode: false
schema:
type: string
enum:
- ad
- ae
- af
- ag
- ai
- al
- am
- ao
- ar
- as
- at
- au
- aw
- az
- ba
- bb
- bd
- be
- bf
- bg
- bh
- bi
- bj
- bn
- bo
- br
- bs
- bt
- bw
- by
- bz
- ca
- cd
- cf
- cg
- ch
- ci
- ck
- cl
- cm
- cn
- co
- cr
- cu
- cv
- cy
- cz
- de
- dj
- dk
- dm
- do
- dz
- ec
- ee
- eg
- es
- et
- fi
- fj
- fm
- fo
- fr
- ga
- gb
- gd
- ge
- gf
- gg
- gh
- gi
- gl
- gm
- gn
- gp
- gq
- gr
- gt
- gu
- gy
- hk
- hn
- hr
- ht
- hu
- id
- ie
- il
- im
- in
- iq
- is
- it
- je
- jm
- jo
- jp
- ke
- kg
- kh
- ki
- kn
- kr
- kw
- ky
- kz
- la
- lb
- lc
- li
- lk
- ls
- lt
- lu
- lv
- ly
- ma
- mc
- md
- me
- mg
- mk
- ml
- mm
- mn
- mq
- mr
- ms
- mt
- mu
- mv
- mw
- mx
- my
- mz
- na
- nc
- ne
- ng
- ni
- nl
- 'no'
- np
- nr
- nu
- nz
- om
- pa
- pe
- pf
- pg
- ph
- pk
- pl
- pn
- pr
- ps
- pt
- py
- qa
- re
- ro
- rs
- ru
- rw
- sa
- sb
- sc
- se
- sg
- sh
- si
- sk
- sl
- sm
- sn
- so
- sr
- st
- sv
- td
- tg
- th
- tj
- tk
- tl
- tm
- tn
- to
- tr
- tt
- tw
- tz
- ua
- ug
- us
- uy
- uz
- vc
- ve
- vg
- vi
- vn
- vu
- ws
- ye
- yt
- za
- zm
- zw
name: country
in: query
- description: The keyword to return SERP Overview for.
required: true
explode: false
schema:
type: string
name: keyword
in: query
- $ref: '#/components/parameters/serp-overview.output_json_php_xml'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/serp-overview.serp-overview'
application/xml:
schema:
$ref: '#/components/schemas/serp-overview.serp-overview'
'400':
$ref: '#/components/responses/serp-overview.error_400'
'401':
$ref: '#/components/responses/serp-overview.error_401'
'403':
$ref: '#/components/responses/serp-overview.error_403'
'429':
$ref: '#/components/responses/serp-overview.error_429'
'500':
$ref: '#/components/responses/serp-overview.error_500'
servers:
- url: https://api.ahrefs.com/v3
description: Ahrefs API v3
/serp-overview:
get:
tags:
- SERP Overview
summary: SERP Overview
description: ''
operationId: serp-overview
parameters:
- description: A comma-separated list of columns to return. See response schema for valid column identifiers.
required: true
explode: false
schema:
type: string
name: select
in: query
- description: A comma-separated list of SERP feature types to filter by. Only positions whose `type` includes at least one of the given values are returned. If not specified, positions of all types are returned.
required: false
explode: false
schema:
type: string
enum:
- paid_top
- paid_bottom
- paid_right
- paid_sitelink
- organic
- sitelink
- snippet
- image
- article
- knowledge_card
- knowledge_panel
- local_pack
- local_teaser
- news
- question
- review
- shopping
- tweet
- spelling
- video
- discussion
- ai_overview
- ai_overview_sitelink
- organic_shopping
- image_th
- video_th
- ai_overview_found
default: ''
name: type
in: query
- description: The number of top organic SERP positions to return. If not specified, all available positions will be returned.
required: false
explode: false
schema:
type: integer
name: top_positions
in: query
- description: A timestamp on which the last available SERP Overview is returned in YYYY-MM-DDThh:mm:ss format. If it is not specified, the most recent SERP Overview is returned.
required: false
explode: false
schema:
type: string
format: date-time
name: date
in: query
- description: A two-letter country code (ISO 3166-1 alpha-2).
required: true
explode: false
schema:
type: string
enum:
- ad
- ae
- af
- ag
- ai
- al
- am
- ao
- ar
- as
- at
- au
- aw
- az
- ba
- bb
- bd
- be
- bf
- bg
- bh
- bi
- bj
- bn
- bo
- br
- bs
- bt
- bw
- by
- bz
- ca
- cd
- cf
- cg
- ch
- ci
- ck
- cl
- cm
- cn
- co
- cr
- cu
- cv
- cy
- cz
- de
- dj
- dk
- dm
- do
- dz
- ec
- ee
- eg
- es
- et
- fi
- fj
- fm
- fo
- fr
- ga
- gb
- gd
- ge
- gf
- gg
- gh
- gi
- gl
- gm
- gn
- gp
- gq
- gr
- gt
- gu
- gy
- hk
- hn
- hr
- ht
- hu
- id
- ie
- il
- im
- in
- iq
- is
- it
- je
- jm
- jo
- jp
- ke
- kg
- kh
- ki
- kn
- kr
- kw
- ky
- kz
- la
- lb
- lc
- li
- lk
- ls
- lt
- lu
- lv
- ly
- ma
- mc
- md
- me
- mg
- mk
- ml
- mm
- mn
- mq
- mr
- ms
- mt
- mu
- mv
- mw
- mx
- my
- mz
- na
- nc
- ne
- ng
- ni
- nl
- 'no'
- np
- nr
- nu
- nz
- om
- pa
- pe
- pf
- pg
- ph
- pk
- pl
- pn
- pr
- ps
- pt
- py
- qa
- re
- ro
- rs
- ru
- rw
- sa
- sb
- sc
- se
- sg
- sh
- si
- sk
- sl
- sm
- sn
- so
- sr
- st
- sv
- td
- tg
- th
- tj
- tk
- tl
- tm
- tn
- to
- tr
- tt
- tw
- tz
- ua
- ug
- us
- uy
- uz
- vc
- ve
- vg
- vi
- vn
- vu
- ws
- ye
- yt
- za
- zm
- zw
name: country
in: query
- description: The keyword to return SERP Overview for.
required: true
explode: false
schema:
type: string
name: keyword
in: query
- $ref: '#/components/parameters/output_json_php_xml'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/serp-overview'
application/xml:
schema:
$ref: '#/components/schemas/serp-overview'
'400':
$ref: '#/components/responses/error_400'
'401':
$ref: '#/components/responses/error_401'
'403':
$ref: '#/components/responses/error_403'
'429':
$ref: '#/components/responses/error_429'
'500':
$ref: '#/components/responses/error_500'
servers:
- url: https://api.ahrefs.com/v3/serp-overview
description: Ahrefs SERP Overview
components:
responses:
serp-overview.error_401:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/serp-overview.Error_response'
application/xml:
schema:
$ref: '#/components/schemas/serp-overview.Error_response'
serp-overview.error_403:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/serp-overview.Error_response'
application/xml:
schema:
$ref: '#/components/schemas/serp-overview.Error_response'
serp-overview.error_400:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/serp-overview.Error_response'
application/xml:
schema:
$ref: '#/components/schemas/serp-overview.Error_response'
serp-overview.error_500:
description: Internal Error
content:
application/json:
schema:
$ref: '#/components/schemas/serp-overview.Error_response'
application/xml:
schema:
$ref: '#/components/schemas/serp-overview.Error_response'
serp-overview.error_429:
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/serp-overview.Error_response'
application/xml:
schema:
$ref: '#/components/schemas/serp-overview.Error_response'
error_400:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error_response'
application/xml:
schema:
$ref: '#/components/schemas/Error_response'
error_403:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error_response'
application/xml:
schema:
$ref: '#/components/schemas/Error_response'
error_500:
description: Internal Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error_response'
application/xml:
schema:
$ref: '#/components/schemas/Error_response'
error_401:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error_response'
application/xml:
schema:
$ref: '#/components/schemas/Error_response'
error_429:
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/Error_response'
application/xml:
schema:
$ref: '#/components/schemas/Error_response'
schemas:
serp-overview.Error_response:
properties:
error:
type: string
type: object
xml:
name: AhrefsApiResponse
serp-overview.serp-overview:
properties:
positions:
items:
properties:
ahrefs_rank:
type:
- integer
- 'null'
title: ahrefs_rank
description: 'The strength of a domain''s backlink profile compared to the other websites in our database, with rank #1 being the strongest.'
backlinks:
type:
- integer
- 'null'
title: backlinks
description: The total number of links from other websites pointing to a search result.
domain_rating:
type:
- number
- 'null'
format: float
title: domain_rating
description: The strength of a domain’s backlink profile compared to the others in our database on a 100-point scale.
keywords:
type:
- integer
- 'null'
title: keywords
description: The total number of keywords that a search result ranks for in the top 100 organic positions.
page_type:
type:
- string
- 'null'
title: page_type
description: Comma-separated list of AI-predicted hierarchical page type paths for the ranking page. Each value is a slash-prefixed path (e.g. /Article/How_to).
position:
type: integer
title: position
description: The position of the search result in SERP.
refdomains:
type:
- integer
- 'null'
title: refdomains
description: (5 units) The total number of unique domains linking to a search result.
title:
type:
- string
- 'null'
title: title
description: The title of a ranking page.
top_keyword:
type:
- string
- 'null'
title: top_keyword
description: The keyword that brings the most organic traffic to a search result.
top_keyword_volume:
type:
- integer
- 'null'
title: top_keyword_volume
description: (10 units) An estimation of the average monthly number of searches for the top keyword over the latest known 12 months of data.
traffic:
type:
- integer
- 'null'
title: traffic
description: (10 units) An estimation of the monthly organic search traffic that a result gets from all the keywords that it ranks for.
type:
items:
type: string
enum:
- paid_top
- paid_bottom
- paid_right
- paid_sitelink
- organic
- sitelink
- snippet
- image
- article
- knowledge_card
- knowledge_panel
- local_pack
- local_teaser
- news
- question
- review
- shopping
- tweet
- spelling
- video
- discussion
- ai_overview
- ai_overview_sitelink
- organic_shopping
- image_th
- video_th
- ai_overview_found
title: type
description: 'The kind of the position: organic, paid, or a SERP feature.'
type: array
title: type
description: 'The kind of the position: organic, paid, or a SERP feature.'
update_date:
type: string
format: date-time
title: update_date
description: The date when we checked search engine results for a keyword.
url:
type:
- string
- 'null'
title: url
description: The URL of a ranking page.
url_rating:
type:
- number
- 'null'
format: float
title: url_rating
description: The strength of a page's backlink profile on a 100-point logarithmic scale.
value:
type:
- integer
- 'null'
title: value
description: (10 units) The estimated value of a page’s monthly organic search traffic, in USD cents.
type: object
type: array
type: object
xml:
name: AhrefsApiResponse
Error_response:
properties:
error:
type: string
type: object
xml:
name: AhrefsApiResponse
serp-overview:
properties:
positions:
items:
properties:
ahrefs_rank:
type:
- integer
- 'null'
title: ahrefs_rank
description: 'The strength of a domain''s backlink profile compared to the other websites in our database, with rank #1 being the strongest.'
backlinks:
type:
- integer
- 'null'
title: backlinks
description: The total number of links from other websites pointing to a search result.
domain_rating:
type:
- number
- 'null'
format: float
title: domain_rating
description: The strength of a domain’s backlink profile compared to the others in our database on a 100-point scale.
keywords:
type:
- integer
- 'null'
title: keywords
description: The total number of keywords that a search result ranks for in the top 100 organic positions.
page_type:
type:
- string
- 'null'
title: page_type
description: Comma-separated list of AI-predicted hierarchical page type paths for the ranking page. Each value is a slash-prefixed path (e.g. /Article/How_to).
position:
type: integer
title: position
description: The position of the search result in SERP.
refdomains:
type:
- integer
- 'null'
title: refdomains
description: (5 units) The total number of unique domains linking to a search result.
title:
type:
- string
- 'null'
title: title
description: The title of a ranking page.
top_keyword:
type:
- string
- 'null'
title: top_keyword
description: The keyword that brings the most organic traffic to a search result.
top_keyword_volume:
type:
- integer
- 'null'
title: top_keyword_volume
description: (10 units) An estimation of the average monthly number of searches for the top keyword over the latest known 12 months of data.
traffic:
type:
- integer
- 'null'
title: traffic
description: (10 units) An estimation of the monthly organic search traffic that a result gets from all the keywords that it ranks for.
type:
items:
type: string
enum:
- paid_top
- paid_bottom
- paid_right
- paid_sitelink
- organic
- sitelink
- snippet
- image
- article
- knowledge_card
- knowledge_panel
- local_pack
- local_teaser
- news
- question
- review
- shopping
- tweet
- spelling
- video
- discussion
- ai_overview
- ai_overview_sitelink
- organic_shopping
- image_th
- video_th
- ai_overview_found
title: type
description: 'The kind of the position: organic, paid, or a SERP feature.'
type: array
title: type
description: 'The kind of the position: organic, paid, or a SERP feature.'
update_date:
type: string
format: date-time
title: update_date
description: The date when we checked search engine results for a keyword.
url:
type:
- string
- 'null'
title: url
description: The URL of a ranking page.
url_rating:
type:
- number
- 'null'
format: float
title: url_rating
description: The strength of a page's backlink profile on a 100-point logarithmic scale.
value:
type:
- integer
- 'null'
title: value
description: (10 units) The estimated value of a page’s monthly organic search traffic, in USD cents.
type: object
type: array
type: object
xml:
name: AhrefsApiResponse
parameters:
serp-overview.output_json_php_xml:
description: The output format.
required: false
explode: false
schema:
type: string
enum:
- json
- php
- xml
name: output
in: query
output_json_php_xml:
description: The output format.
required: false
explode: false
schema:
type: string
enum:
- json
- php
- xml
name: output
in: query
securitySchemes:
http:
type: http
scheme: bearer
externalDocs:
description: ''
url: https://docs.ahrefs.com/docs/api/v3/
x-refined-from:
- ahrefs-openapi-original.json
- ahrefs-serp-overview-openapi.json