openapi: 3.0.0
info:
title: SEOmonitor API
description: >-
`
We have now released the new `API
3.0`!
It comes with enhanced data coverage and organization, and easy-to-use
documentation.
This version will continue to be functional, and you can use it alongside
the new version, if needed.`
version: '1.2'
servers:
- description: SEOmonitor API
url: https://api.internal.seomonitor.com/api/v1.2
tags:
- name: Groups
- name: Compare
- name: Keyword Data
- name: Forecast
- name: Ranks
- name: Organic Traffic
- name: Visibility Score
- name: Sites
- name: Content Performance
- name: Keyword SERP
- name: Devices
paths:
/keyword_canibalization/{site_id}/{group_id}:
get:
tags:
- Keyword Data
summary: Keyword Canibalization
operationId: KeywordData_listCanibalizationKeywords
security:
- Authorization: []
description: |
List of keywords with canibalization issues
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
- description: The unique group identifier. 0 for 'All keywords'
name: group_id
in: path
required: true
type: integer
- description: Start Date
name: start_date
in: path
required: false
type: integer
- description: End Date
name: end_date
in: path
required: false
type: integer
responses:
'200':
description: An array of keywords
schema:
type: array
items: {}
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: false
/sites:
get:
tags:
- Sites
summary: Sites
operationId: Sites_getList
security:
- Authorization: []
description: |
List of sites available in your account.
responses:
'200':
description: An array of sites
schema:
type: array
items:
$ref: '#/definitions/Site'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: false
/on_target/{site_id}:
get:
tags:
- Forecast
summary: Forecast
operationId: Forecast_trafficForecastStatus
security:
- Authorization: []
description: |
Traffic forecast status.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
responses:
'200':
description: ''
schema:
type: array
items:
$ref: '#/definitions/ForecastExample'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: false
/on_target/by_dates/{site_id}:
get:
tags:
- Forecast
summary: Objective/Forecast
operationId: Forecast_objectiveData
security:
- Authorization: []
description: It returns the forecast data for the set objective
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
responses:
'200':
description: >-
It returns the traffic forecast data for the last 12 months for the
selected website, such as: month, search volume, real traffic,
estimated traffic and visibility score.
schema:
type: array
items:
$ref: '#/definitions/ForecastExampleByDates'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: true
header:
date:
name: Month
format_rule: format_date_month
note: null
colWidth: 65
style_rule: alignment_center
real_traffic:
name: |-
Actual
Traffic
format_rule: format_number
note: >-
This is the actual non-brand organic traffic for the forecasted
months that already passed.
colWidth: 90
style_rule: alignment_right
inertial_traffic:
name: |-
Est. Inertial
Traffic
format_rule: format_number
note: >-
The estimated monthly non-brand organic traffic if there's no SEO
progress or decrease in the selected timeframe. The estimations
are based on the current values and then extrapolated using the
seasonality and trends of the keywords that generate the
Forecast.
This estimations are used to calculate the impact in non-brand organic traffic when the objective will be achieved.
colWidth: 90
style_rule: alignment_right
estimated_traffic:
name: |-
Est. Improved
Traffic
format_rule: format_number
note: >-
This is the initial forecasted non-brand organic traffic
(monthly), based on achieving the selected SEO goals in the chosen
timeframe.
colWidth: 100
style_rule: alignment_right
estimated_additional_traffic:
name: |-
Additional
Traffic
format_rule: format_number
note: >-
This is the monthly estimated impact of the targeted SEO progress.
It is the difference between the estimated Improved Traffic and
the estimated Inertial Traffic.
colWidth: 90
style_rule: alignment_right
search_volume:
name: |-
Search
Seasonality
format_rule: format_number
note: >-
This is the total monthly Search Volume of the tracked keywords,
which informs our forecasting algorithm on the search seasonality.
colWidth: 90
style_rule: alignment_right
error: |-
There is no forecast set as objective.
You can configure one here: https://app.seomonitor.com/param_0/forecast
/keyword_groups/{site_id}/{date_start}/{date_end}:
get:
tags:
- Groups
summary: Keyword Groups
operationId: Groups_getKeywordGroups
security:
- Authorization: []
description: >-
DEPRECATED
Use groups_list and group_details instead.
The details for the keyword groups for a specific site.
Warning: Group details are only available when
providing the load_keyword_ids parameter with a value of
1.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
- description: >-
The start of the period. (Accepts date format as YYYY-mm-dd or
relative like "1 week ago", "3 months ago", etc.)
name: date_start
in: path
required: true
type: string
format: YYYY-mm-dd or relative
- description: >-
The end of the period. (Accepts date format as YYYY-mm-dd or
relative like "now", "today", etc.)
name: date_end
in: path
required: true
type: string
format: YYYY-mm-dd or relative
- description: >-
By default, a request is limited to 1000 groups (or 10 if
load_keywords_ids is active), if you want more you can set the
offset
name: offset
in: query
type: number
- description: >-
By default, a request is limited to 1000 groups (or 10 if
load_keywords_ids is active). Use the limit parameter to change the
number of results per request (max. 10 if load_keyword_ids is
active)
name: limit
in: query
type: number
- description: >-
Loads Keyword IDs in the keywords array if set to 1. When active,
the response is limited to 10 groups
name: load_keyword_ids
in: query
type: number
responses:
'200':
description: An array of groups
schema:
type: array
items:
$ref: '#/definitions/KeywordGroups'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
deprecated: true
google_sheets:
show: false
/groups_list/{site_id}:
get:
info: >-
It returns Group ID, Group name and Group type (normal or smart) for the
selected website.
tags:
- Groups
summary: Groups List
operationId: Groups_getList
security:
- Authorization: []
description: |
Group List.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
responses:
'200':
description: >-
It returns Group ID, Group name and Group type (normal or smart) for
the selected website.
schema:
type: array
items:
$ref: '#/definitions/GroupsList'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: false
/group_details/{site_id}/{group_id}/{date_start}/{date_end}:
get:
tags:
- Groups
summary: Group Performance
operationId: Groups_getPerformanceData
security:
- Authorization: []
description: >-
Returns the keyword count, the search volumes, the desktop and mobile
visibility at the end of the period and the performance-related
visibility changes for the timeframe.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
- description: The group identifier
name: group_id
in: path
required: true
type: integer
google_sheets:
label: Group
- description: >-
The start of the period. (Accepts date format as YYYY-mm-dd or
relative like "1 week ago", "3 months ago", etc.)
name: date_start
in: path
required: true
type: string
format: YYYY-mm-dd or relative
google_sheets:
label: Start Date
- description: >-
The end of the period. (Accepts date format as YYYY-mm-dd or
relative like "now", "today", etc.)
name: date_end
in: path
required: true
type: string
format: YYYY-mm-dd or relative
google_sheets:
label: End Date
responses:
'200':
description: An array of groups
schema:
type: array
items:
$ref: '#/definitions/GroupDetails'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: true
title_param: group
secondary_header:
search_data:
name: SEARCH DATA
columns: 4
background_color: '#0c343d'
color: '#ffffff'
full_columns_color: false
alignment: left
desktop_visibility:
name: DESKTOP VISIBILITY
columns: 2
background_color: '#4a86e8'
color: '#ffffff'
full_columns_color: '#ecf8ff'
alignment: left
mobile_visibility:
name: MOBILE VISIBILITY
columns: 2
background_color: '#6aa84f'
color: '#ffffff'
full_columns_color: '#eeffed'
alignment: left
header:
group_name:
name: Group
colWidth: 250
style_rule: alignment_left
kw_count:
name: Keywords
format_rule: format_number
note: Number of keywords in each group.
colWidth: 75
style_rule: alignment_right
search_volume:
name: |-
Search
Volume
format_rule: format_number
colWidth: 80
style_rule: alignment_right
yoy.value:
name: |-
YoY
Trend
format_rule: percent
style_rule: percent_sign, alignment_right
note: Year-over-Year search trend.
colWidth: 65
vscore_stop_desktop:
name: Visibility
format_rule: percent
style_rule: percent_round, alignment_right
note: The desktop Visibility in the last day of the timeframe.
colWidth: 70
desktop_performance_change:
name: Change
format_rule: percent
style_rule: sign_color_percent, bold, alignment_right
note: >-
The performance-related change in desktop Visibility for the given
timeframe.
Read more about this here - https://help.seomonitor.com/en/articles/886067-understanding-changes-in-visibility
colWidth: 65
vscore_stop_mobile:
name: Visibility
format_rule: percent
style_rule: percent_round, alignment_right
note: The mobile Visibility in the last day of the timeframe.
colWidth: 70
mobile_performance_change:
name: Change
format_rule: percent
style_rule: sign_color_percent, bold, alignment_right
note: >-
The performance-related change in mobile Visibility for the given
timeframe.
Read more about this here - https://help.seomonitor.com/en/articles/886067-understanding-changes-in-visibility
colWidth: 65
/all_group_details/{site_id}/{date_start}/{date_end}:
get:
info: >-
It returns the group name, number of keywords, total search volume for
the keywords, desktop and mobile visibility score at the start of the
period, desktop and mobile visibility score at the end of the period and
desktop and mobile visibility score performance change for all groups
tags:
- Groups
summary: Group performance
operationId: Groups_getKeywordsDetails
security:
- Authorization: []
description: |
Keywords details for all groups
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
- description: >-
The start of the period. (Accepts date format as YYYY-mm-dd or
relative like "1 week ago", "3 months ago", etc.)
name: date_start
in: path
required: true
type: string
format: YYYY-mm-dd or relative
- description: >-
The end of the period. (Accepts date format as YYYY-mm-dd or
relative like "now", "today", etc.)
name: date_end
in: path
required: true
type: string
format: YYYY-mm-dd or relative
responses:
'200':
description: An array of groups
schema:
type: array
items:
$ref: '#/definitions/AllGroupDetails'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: false
/keyword_data/{site_id}/{date_start}/{date_end}:
get:
info: >-
It returns the name, search volume, cost per click, date and time the
keyword was added, landing page for desktop and mobile in google for the
keyword for this site, total visits, bounces, conversions, conversion
rate, conversions value, goals, goals rate, goals value, last position
both desktop and mobile, the difference between the first position in
the period and the last position in the period both desktop and mobile,
visibility impact (similar to a weighted average) both desktop and
mobile, the group the keyword is in and estimated additional traffic,
revenue and AdWords cost once in Top 3
tags:
- Keyword Data
summary: Keyword Data
operationId: KeywordData_getDetails
security:
- Authorization: []
description: |
All SEO Campaign section keywords details.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
- description: >-
The start of the period. (Accepts date format as YYYY-mm-dd or
relative like "1 week ago", "3 months ago", etc.)
name: date_start
in: path
required: true
type: string
format: YYYY-mm-dd or relative
- description: >-
The end of the period. (Accepts date format as YYYY-mm-dd or
relative like "now", "today", etc.)
name: date_end
in: path
required: true
type: string
format: YYYY-mm-dd or relative
- description: >-
By default a request is limited to 1000 rows, if you want more you
can set the offset
name: offset
in: query
type: number
- description: The keyword name you wish to retrieve data for
name: keyword_name
in: query
required: false
type: string
responses:
'200':
description: An array of keywords details
schema:
type: array
items:
$ref: '#/definitions/KeywordData'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: false
/keyword_data/{site_id}/{group_id}/{date_start}/{date_end}:
get:
tags:
- Keyword Data
summary: Keyword Performance
operationId: KeywordData_getPerformance
security:
- Authorization: []
description: >-
Returns all keyword data including ranking performance on both devices
in the selected timeframe.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
- description: Group id. For Brand folder you can use `brand` as value for group id
name: group_id
in: path
required: true
type: integer
google_sheets:
label: Group
- description: >-
The start of the period. (Accepts date format as YYYY-mm-dd or
relative like "1 week ago", "3 months ago", etc.)
name: date_start
in: path
required: true
type: string
format: YYYY-mm-dd or relative
google_sheets:
label: Start Date
- description: >-
The end of the period. (Accepts date format as YYYY-mm-dd or
relative like "now", "today", etc.)
name: date_end
in: path
required: true
type: string
format: YYYY-mm-dd or relative
google_sheets:
label: End Date
- description: >-
By default, a request is limited to 1000 rows. If you need to get
more, you can set an offset, accordingly (an offset of 1000 will
provide the following 1000 rows).
For example, if you need rows 3000-4000, you would set the offset at 3000.
name: offset
in: query
type: number
google_sheets:
hide: true
label: Offset
- description: The keyword (name, not ID) you need data for.
name: keyword_name
in: query
required: false
type: string
google_sheets:
label: Keyword Filter
placeholder: Enter Keyword
responses:
'200':
description: Keyword details for a specific group.
schema:
type: array
items:
$ref: '#/definitions/KeywordData'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: true
title_param: group
lockColumns: 4
lockRows: 4
sort: 2
secondary_header:
search_data:
name: SEARCH DATA
columns: 4
background_color: '#0c343d'
color: '#ffffff'
full_columns_color: false
alignment: left
desktop_ranking_data:
name: DESKTOP RANKING DATA
columns: 4
background_color: '#4a86e8'
color: '#ffffff'
full_columns_color: '#ecf8ff'
alignment: left
mobile_ranking_data:
name: MOBILE RANKING DATA
columns: 4
background_color: '#6aa84f'
color: '#ffffff'
full_columns_color: '#eeffed'
alignment: left
traffic_data:
name: TRAFFIC DATA
columns: 5
background_color: '#1c4587'
color: '#ffffff'
full_columns_color: false
alignment: left
opportunity:
name: OPPORTUNITY
columns: 3
background_color: '#351c75'
color: '#ffffff'
full_columns_color: false
alignment: left
other:
name: OTHER
columns: 4
background_color: '#000000'
color: '#ffffff'
full_columns_color: false
alignment: left
header:
keyword_data.name:
name: Keyword
note: Keyword Name
format_rule: ''
style_rule: alignment_left
colWidth: 155
keyword_data.average_search_volume:
name: |-
Search
Volume
note: Monthly searches on the keyword.
format_rule: format_number
style_rule: alignment_right
colWidth: 65
keyword_data.yoy:
name: |-
YOY
Trend
note: Year-over-Year search trend.
format_rule: percent
style_rule: percent_round, alignment_right
colWidth: 55
keyword_data.average_cpc:
name: CPC
note: Cost Per Click
format_rule: number_two_decimal
style_rule: alignment_right
colWidth: 55
position:
name: Rank
note: The desktop rank in the last day of the timeframe.
format_rule: max_99
style_rule: alignment_right
colWidth: 55
position_trend:
name: Change
note: The change in desktop rank for the given timeframe.
format_rule: ''
style_rule: sign_color, bold, alignemnt_right
colWidth: 55
visibility_impact_desktop:
name: |-
Visibility
Impact
note: >-
The impact of this keyword's rank change in the desktop Visibility
change for the given timeframe.
Read more about the performance-related Visibility changes here - https://help.seomonitor.com/en/articles/886067-understanding-changes-in-visibility
format_rule: ''
style_rule: sign_color, alignment_right
colWidth: 65
keyword_data.landing_page:
name: Landing Page
format_rule: landing_page
style_rule: alignment_left
note: The ranking landing page in the desktop search.
colWidth: 130
position_mobile:
name: Rank
format_rule: max_99
style_rule: alignment_right
note: The mobile rank in the last day of the timeframe.
colWidth: 55
position_trend_mobile:
name: Change
format_rule: ''
style_rule: sign_color, bold, alignment_right
note: The change in mobile rank for the given timeframe.
colWidth: 55
visibility_impact_mobile:
name: |-
Visibility
Impact
format_rule: ''
style_rule: sign_color, alignment_right
note: >-
The impact of this keyword's rank change in the mobile Visibility
change for the given timeframe.
Read more about the performance-related Visibility changes here - https://help.seomonitor.com/en/articles/886067-understanding-changes-in-visibility
colWidth: 65
keyword_data.landing_page_mobile:
name: Landing Page
format_rule: landing_page
style_rule: alignment_left
note: The ranking landing page in the mobile search.
colWidth: 130
visits:
name: Sessions
format_rule: format_number
style_rule: alignment_right
note: Non-brand organic visits on the keyword, for the given timeframe.
colWidth: 65
bounces:
name: Bounces
note: Percentage of single-page sessions.
format_rule: format_number
style_rule: alignment_right
colWidth: 65
conversions_goals:
name: Conversions
note: Number of completed goals, based on the Analytics selection.
format_rule: format_number
style_rule: alignment_right
colWidth: 87
conversions_goals_rate:
name: |-
Conv.
Rate
note: Percentage of Conversions resulting from the organic sessions.
format_rule: number_two_decimal
style_rule: alignment_right
colWidth: 45
revenue_value:
name: |-
Revenue/
Value
note: Percentage of single-page sessions.
format_rule: format_number
style_rule: alignment_right
colWidth: 70
keyword_data.top_10_difficulty:
name: |-
Top 10
Difficulty
format_rule: ''
style_rule: alignment_right
note: The difficulty for the landing page to reach Top 10.
colWidth: 75
keyword_data.opportunity:
name: Opportunity
note: >-
The effort necessary to reach the top versus the monthly estimated
value (revenue) generated after that.
format_rule: ''
style_rule: alignment_right
colWidth: 80
keyword_data.lables_warning:
name: |-
Labels &
Warnings
format_rule: ''
style_rule: alignment_left
note: Helpful labels and/or warnings automatically added to the keyword.
colWidth: 95
group_name:
name: Groups
note: Groups in which the keyword is present.
format_rule: ''
style_rule: alignment_left
colWidth: 75
keyword_data.date_added:
name: Date Added
format_rule: format_date
style_rule: alignment_center
note: The date when the keyword started being tracked in the campaign.
colWidth: 80
keyword_data.main_keyword_id:
name: Main Keyword ID
format_rule: ''
style_rule: alignment_center
colWidth: 60
keyword_data.close_variation:
name: Close Variation
format_rule: ''
style_rule: alignment_center
note: If the keyword is a close variation of other keyword.
colWidth: 80
/ranks/{site_id}/{date_start}/{date_end}:
get:
info: >-
It returns both desktop and mobile position for each date in your
selected interval
tags:
- Ranks
summary: Ranks
operationId: Ranks_getDesktopMobileRanks
security:
- Authorization: []
description: |
Desktop and mobile ranks
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
- description: >-
The start of the period. (Accepts date format as YYYY-mm-dd or
relative like "1 week ago", "3 months ago", etc.)
name: date_start
in: path
required: true
type: string
format: YYYY-mm-dd or relative
- description: >-
The end of the period. (Accepts date format as YYYY-mm-dd or
relative like "now", "today", etc.)
name: date_end
in: path
required: true
type: string
format: YYYY-mm-dd or relative
- description: >-
By default a rank request is limited to 100 keywords, if you want
the next 100 keywords you can set the offset
name: offset
in: query
type: number
- description: >-
If this field is not set, default value is 100.If this field is set,
allowed values are between 100 and 1000
name: limit
in: query
type: number
responses:
'200':
description: An array of positions grouped by keyword
schema:
type: array
items:
$ref: '#/definitions/Ranks'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: false
/ranks/{site_id}/{date_start}/{date_end}/{group_id}:
get:
info: >-
It returns both desktop and mobile position for each date in your
selected interval filtered by group
tags:
- Ranks
summary: Keywords Ranks
operationId: Ranks_getGroupRanks
security:
- Authorization: []
description: >-
Returns both desktop and mobile ranks for each day in the selected
interval, filtered by group.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
- description: The unique group identifier
name: group_id
in: path
required: true
type: string
format: integer
google_sheets:
label: Group
- description: >-
The start of the period. (Accepts date format as YYYY-mm-dd or
relative like "1 week ago", "3 months ago", etc.)
name: date_start
in: path
required: true
type: string
format: YYYY-mm-dd or relative
google_sheets:
label: Start Date
- description: >-
The end of the period. (Accepts date format as YYYY-mm-dd or
relative like "now", "today", etc.)
name: date_end
in: path
required: true
type: string
format: YYYY-mm-dd or relative
google_sheets:
label: End Date
- description: >-
By default, a rank request is limited to 100 keywords. If you need
to get more, you can set an offset, accordingly (an offset of 100
will provide the following 100 keywords).
For example, if you need keywords 300-400, you would set the offset at 300.
name: offset
in: query
type: number
google_sheets:
label: Offset
placeholder: Offset
- description: >-
If this field is not set, default value is 100.If this field is set,
allowed values are between 100 and 1000
name: limit
in: query
type: number
google_sheets:
label: Limit
placeholder: Limit
responses:
'200':
description: An array of positions grouped by keyword
schema:
type: array
items:
$ref: '#/definitions/Ranks'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: true
title_param: group
lockColumns: 2
lockRows: 4
sort: 2
header:
keyword_data.name:
name: Keyword
style_rule: alignment_left
note: Keyword name.
colWidth: 180
keyword_data.search_volume:
name: |-
Search
Volume
format_rule: format_number
style_rule: alignment_right
note: Monthly searches on the keyword.
colWidth: 65
secondary_header:
date:
name: 'DATE:'
columns: 2
background_color: '#b7e1cd'
color: '#000'
full_columns_color: false
alignment: center
/organic_traffic/{site_id}/{date_start}/{date_end}:
get:
info: >-
It returns the visits, conversion rate (e-commerce), goals rate, revenue
(e-commerce), goals revenue and date for brand and non-brand.
tags:
- Organic Traffic
summary: Organic Traffic Performance
operationId: OrganicTraffic_getPerformanceData
security:
- Authorization: []
description: >-
Returns the sessions, conversions, conversion rates and conversion
values, split by brand and non-brand, for each day in the selected
interval.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
- description: >-
The start of the period. (Accepts date format as YYYY-mm-dd or
relative like "1 week ago", "3 months ago", etc.)
name: date_start
in: path
required: true
type: string
format: YYYY-mm-dd or relative
google_sheets:
label: Start Date
- description: >-
The end of the period. (Accepts date format as YYYY-mm-dd or
relative like "now", "today", etc.)
name: date_end
in: path
required: true
type: string
format: YYYY-mm-dd or relative
google_sheets:
label: End Date
responses:
'200':
description: An array of Organic Traffic statistics grouped by date
schema:
type: array
items:
$ref: '#/definitions/OrganicTraffic'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: true
header:
date:
name: Date
format_rule: format_date
style_rule: alignment_center
visits_non_brand:
name: Sessions
format_rule: format_number
note: Non-brand organic sessions.
style_rule: alignment_right
goals_conversions_non_brand:
name: Conversions
format_rule: format_number
note: Conversions generated by the non-brand organic sessions.
style_rule: alignment_right
conversion_rate_non_brand:
name: Conv. Rate
format_rule: percent
note: >-
Percentage of conversions generated by the non-brand organic
sessions.
style_rule: alignment_right, percent
goals_conversions_value_non_brand:
name: Conv. Value
format_rule: format_number
note: Revenue generated by the non-brand conversions.
style_rule: alignment_right
visits_brand:
name: Sessions
format_rule: format_number
note: Branded organic sessions.
style_rule: alignment_right
goals_conversions_brand:
name: Conversions
format_rule: format_number
note: Conversions generated by the brand organic sessions.
style_rule: alignment_right
conversion_rate_brand:
name: Conv. Rate
format_rule: percent
note: >-
Percentage of conversions generated by the branded organic
sessions.
style_rule: alignment_right, percent
goals_conversions_value_brand:
name: Conv. Value
format_rule: format_number
note: Revenue generated by the branded conversions.
style_rule: alignment_right
secondary_header:
date:
name: ''
columns: 1
background_color: '#b7e1cd'
color: '#000'
full_columns_color: false
alignment: center
non_branded:
name: 'NON-BRANDED:'
columns: 4
background_color: '#b7e1cd'
color: '#000'
full_columns_color: false
alignment: center
branded:
name: 'BRANDED:'
columns: 4
background_color: '#b7e1cd'
color: '#000'
full_columns_color: false
alignment: center
/organic_traffic/split/{site_id}/{date_start}/{date_end}:
get:
info: >-
It returns the visits, conversion rate (e-commerce), goals rate, revenue
(e-commerce), goals revenue, date and type for brand, non-brand or both.
tags:
- Organic Traffic
summary: Organic Traffic
operationId: OrganicTraffic_splitByDates
security:
- Authorization: []
description: |
Organic Traffic split by brand/non-brand.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
- description: >-
The start of the period. (Accepts date format as YYYY-mm-dd or
relative like "1 week ago", "3 months ago", etc.)
name: date_start
in: path
required: true
type: string
format: YYYY-mm-dd or relative
google_sheets:
label: Start Date
- description: >-
The end of the period. (Accepts date format as YYYY-mm-dd or
relative like "now", "today", etc.)
name: date_end
in: path
required: true
type: string
format: YYYY-mm-dd or relative
google_sheets:
label: End Date
- description: 'Possible values: brand | non-brand.'
name: type
in: query
type: string
google_sheets:
label: Type
options:
type: select
options:
Both: ''
Brand: brand
Non-brand: non-brand
responses:
'200':
description: An array of Organic Traffic statistics grouped by date
schema:
type: array
items:
$ref: '#/definitions/OrganicTrafficSplit'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: false
/content/{site_id}/{date_start}/{date_end}:
get:
tags:
- Content Performance
summary: Content Performance
operationId: ContentPerformance_getPerformanceData
security:
- Authorization: []
description: Returns all the content performance data in the selected timeframe
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
- description: >-
The start of the period. (Accepts date format as YYYY-mm-dd or
relative like "1 week ago", "3 months ago", etc.)
name: date_start
in: path
required: true
type: string
google_sheets:
label: Start Date
- description: >-
The end of the period. (Accepts date format as YYYY-mm-dd or
relative like "now", "today", etc.)
name: date_end
in: path
required: true
type: string
google_sheets:
label: End Date
- description: >-
By default, a request is limited to 1000 rows. If you need to get
more, you can set an offset, accordingly (an offset of 1000 will
provide the following 1000 rows).
For example, if you need rows 3000-4000, you would set the offset at 3000.
name: offset
in: query
required: false
type: integer
google_sheets:
label: Offset
placeholder: Offset
responses:
'200':
description: List of articles associated to your site
schema:
type: array
items:
$ref: '#/definitions/Content'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: false
header:
title:
name: Article Title
note: Title of the linking article.
style_rule: alignment_left
colWidth: 205
date:
name: Date
note: Publishing date for the linking article.
format_rule: format_date
style_rule: alignment_center
colWidth: 85
article_url:
name: URL
note: Full linking article URL.
style_rule: alignment_left
colWidth: 205
source:
name: Source
note: Source domain for the linking article.
style_rule: alignment_left
colWidth: 110
social.facebook:
name: Facebook
note: Facebook signals count.
style_rule: alignment_right
colWidth: 70
visits:
name: Sessions
note: Sessions generated by the linking article.
style_rule: alignment_right
colWidth: 75
conversions:
name: Conversions
note: Conversions generated by the linking article.
style_rule: alignment_right
colWidth: 90
conversions_value:
name: |-
Conv.
Value
note: Revenue generated by the linking article.
style_rule: alignment_right
colWidth: 55
landing_pages.url:
name: URL
note: Landing page linked in the article.
format_rule: landing_page
style_rule: alignment_left, clip
colWidth: 170
landing_pages.keywords:
name: Keywords
note: >-
Tracked keywords pointing to the landing page linked in the
article.
style_rule: alignment_left
colWidth: 150
landing_pages.search_volume:
name: |-
Search
Volume
note: >-
Total search volume for the tracked keywords pointing to the
landing pages linked in the article.
style_rule: alignment_right
colWidth: 60
landing_pages.visibility_score:
name: Visibility
note: >-
Visibility score of the linked landing page, in the last day of
the interval.
format_rule: percent
style_rule: alignment_right, percent
colWidth: 65
landing_pages.visibility_score_change:
name: |-
Visibility
Change
note: >-
Visibility score trend for the linked landing page, between the
first and the last day of the interval.
format_rule: percent
style_rule: sign_color_percent, alignment_right
colWidth: 65
secondary_header:
limking_article:
name: LINKING ARTICLE
columns: 5
background_color: '#1c4587'
color: '#fff'
full_columns_color: false
alignment: left
generated_traffic:
name: 'GENERATED TRAFFIC:'
columns: 3
background_color: '#274e13'
color: '#fff'
full_columns_color: false
alignment: left
linked_landing_page:
name: 'LINKED LANDING PAGE:'
columns: 5
background_color: '#20124d'
color: '#fff'
full_columns_color: false
alignment: left
/keyword_serp/{site_id}:
get:
tags:
- Keyword SERP
summary: Keyword Competitors
operationId: KeywordSerp_getCompetitors
security:
- Authorization: []
description: Returns the top 100 ranking domains and URLs, for the given keyword.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
- description: The keyword name
name: keyword_name
in: query
required: true
type: string
google_sheets:
label: Keyword
placeholder: Keyword
- description: >-
The end of the period. (Accepts date format as YYYY-mm-dd or
relative like "now", "today", etc.)
name: query_end_date
in: query
required: true
type: string
google_sheets:
label: End Date
- description: Check to retrieve mobile landing pages.
name: mobile
in: query
type: number
google_sheets:
label: Mobile
options:
type: checkbox
default: 0
responses:
'200':
description: An array of landing pages
schema:
type: array
items:
$ref: '#/definitions/KeywordSERP'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: true
title_param: keyword, device
header:
position:
name: Rank
format_rule: ''
style_rule: alignment_right
colWidth: 45
site:
name: Site
format_rule: ''
style_rule: alignment_left
note: Ranking domain.
colWidth: 180
full_lp:
name: URL
format_rule: ''
style_rule: alignment_left
note: LP that the domain is ranking for.
colWidth: 180
/visibility_score_data/{site_id}/{group_id}/{date_start}/{date_end}:
get:
tags:
- Visibility Score
summary: Daily Visibility
operationId: VisibilityScore_dailyVisibilityData
security:
- Authorization: []
description: >-
Returns the Visibility for mobile or desktop for each day in the
selected interval, with any annotation present on the Visibility graph,
correspondingly.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
- description: The unique group identifier
name: group_id
in: path
required: true
type: integer
google_sheets:
label: Group
- description: >-
The start of the period. (Accepts date format as YYYY-mm-dd or
relative like "1 week ago", "3 months ago", etc.)
name: date_start
in: path
required: true
type: string
google_sheets:
label: Start Date
- description: >-
The end of the period. (Accepts date format as YYYY-mm-dd or
relative like "now", "today", etc.)
name: date_end
in: path
required: true
type: string
google_sheets:
label: End Date
- description: >-
Device value. If it's not provided, default value is 1 (desktop).
Get all devices from "/devices" endpoint. Possible values:
1 or 2
name: device
in: query
required: false
type: integer
google_sheets:
label: Device
options:
type: select
options:
Desktop: 1
Mobile: 2
responses:
'200':
description: An array containing dates and visibility scores for each date
schema:
type: array
items:
$ref: '#/definitions/VisibilityScoreData'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: true
header:
date:
name: Date
format_rule: format_date
style_rule: alignment_center
colWidth: 85
vscore:
name: Visibility
note: Daily group Visibility on selected device.
format_rule: percent
style_rule: percent, alignment_right
colWidth: 65
annotations:
name: Annotations
format_rule: annotation
note: Annotations present on the Visibility graph.
style_rule: alignment_left
colWidth: 230
/visibility_score/{site_id}/{group_id}/{date_start}/{date_end}:
get:
tags:
- Visibility Score
summary: Visibility scores
operationId: VisibilityScore_getByDateRange
security:
- Authorization: []
description: |
DEPRECATED
Use /compare/competitors/visibility_score instead.
Visibility scores for group.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
- description: The unique group identifier
name: group_id
in: path
required: true
type: integer
google_sheets:
label: Group
- description: >-
The start of the period. (Accepts date format as YYYY-mm-dd or
relative like "1 week ago", "3 months ago", etc.)
name: date_start
in: path
required: true
type: string
google_sheets:
label: Start Date
- description: >-
The end of the period. (Accepts date format as YYYY-mm-dd or
relative like "now", "today", etc.)
name: date_end
in: path
required: true
type: string
google_sheets:
label: End Date
responses:
'200':
description: An array of visibility scores
schema:
type: array
items:
$ref: '#/definitions/VisibilityScore'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
deprecated: true
google_sheets:
show: false
/compare/keywords/{site_id}/{start_date}/{end_date}/{competitors}:
get:
info: >-
It returns the keyword, average CPC, YOY, position and position change
of each requested competitor.
tags:
- Compare
summary: Get competitors keywords
operationId: Compare_competitorKeywords
security:
- Authorization: []
description: |
Get competitors keywords.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
- description: The start of the period. (Relative date)
name: start_date
in: path
required: true
type: string
google_sheets:
label: Start Date
- description: The end of the period. (Relative date)
name: end_date
in: path
required: true
type: string
google_sheets:
label: End Date
- description: Maximum 10 competitors, separated by comma.
name: competitors
in: path
required: true
type: string
google_sheets:
label: Competitors
- description: >-
By default a request is limited to 1000 rows, if you want more you
can set the offset
name: offset
in: query
type: number
google_sheets:
label: Offset
placeholder: Offset
responses:
'200':
description: Competition data for keywords
schema:
type: object
$ref: '#/definitions/CompareKeywords'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: false
/compare/keywords/{site_id}/{start_date}/{end_date}/{competitors}/{group_id}:
get:
tags:
- Compare
summary: Competitors' Rankings
operationId: Compare_competitorRankings
security:
- Authorization: []
description: >-
Returns the keyword search and ranking data for the requested
competitors in the selected timeframe.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
- description: The start of the period. (Relative date)
name: start_date
in: path
required: true
type: string
google_sheets:
label: Start Date
- description: The end of the period. (Relative date)
name: end_date
in: path
required: true
type: string
google_sheets:
label: End Date
- description: Maximum 10 competitors, separated by comma.
name: competitors
in: path
required: true
type: string
google_sheets:
label: Competitors
placeholder: Competitors
- description: >-
Group id from /groups_list/{site_id}. If it's not provided, default
group is 'All keywords'
name: group_id
in: path
required: false
type: string
google_sheets:
label: Group
- description: Check to retrieve mobile data.
name: device
in: query
type: number
google_sheets:
label: Device
options:
type: select
options:
Desktop: 1
Mobile: 2
- description: >-
By default, a request is limited to 1000 rows. If you need to get
more, you can set an offset, accordingly (an offset of 1000 will
provide the following 1000 rows).
For example, if you need rows 3000-4000, you would set the offset at 3000.
name: offset
in: query
type: number
google_sheets:
label: Offset
placeholder: Offset
responses:
'200':
description: Competition data for keywords
schema:
type: object
$ref: '#/definitions/CompareKeywords'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: true
title_param: group, device
lockColumns: 4
lockRows: 4
header:
name:
name: Keyword
note: null
style_rule: alignment_left
colWidth: 180
search_volume:
name: |-
Search
Volume
format_rule: format_number
note: Monthly searches on the keyword.
style_rule: alignment_right
colWidth: 65
avg_cpc:
name: CPC
note: Cost Per Click
style_rule: alignment_right
colWidth: 80
yoy:
name: |-
YoY
Trend
note: Year-over-Year search trend.
format_rule: percent
style_rule: percent_sign, alignment_right
colWidth: 60
secondary_header:
search_data:
name: SEARCH DATA
columns: 4
background_color: '#38761d'
color: '#fff'
full_columns_color: false
alignment: left
/compare/competitors/visibility_score/{site_id}/{start_date}/{end_date}:
get:
info: >-
It returns the visibility score of you and the requested competitors
segmented by dates
tags:
- Compare
summary: Get competitors visibility score
operationId: Compare_competitorsVisibilityScore
security:
- Authorization: []
description: |
Get competitors visibility score.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
- description: The start of the period. (Relative date)
name: start_date
in: path
required: true
type: string
google_sheets:
label: Start Date
- description: The end of the period. (Relative date)
name: end_date
in: path
required: true
type: string
google_sheets:
label: End Date
- description: >-
Group id from /groups_list/{site_id}. If it's not provided, default
group is "All keywords". Use comma for multiple groups (Eg:
group_id_1,group_id_2)
name: group_id
in: query
required: false
type: string
google_sheets:
label: Group
- description: Maximum 10 competitors, separated by comma.
name: competitors
in: query
required: false
type: string
google_sheets:
label: Copetitors
- description: >-
Device value. If it's not provided, default value is 1 (desktop).
Get all devices from "/devices" endpoint. Possible values:
1 or 2
name: device
in: query
required: false
type: integer
google_sheets:
label: Device
options:
type: select
options:
Desktop: 1
Mobile: 2
responses:
'200':
description: >-
An array with all marked as "default over all groups" in competitors
and their visibility score on interval [startDate - endDate ]
schema:
type: object
$ref: '#/definitions/CompareCompetitorsResponse'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: false
header:
date:
name: Date
format_rule: format_date
/compare/competitors/visibility_score/{site_id}/{start_date}/{end_date}/{competitors}/{group_id}:
get:
info: >-
It returns the visibility score of you and the requested competitors
segmented by dates, filtered by group
tags:
- Compare
summary: Competitors' Daily visibility
operationId: Compare_dailyVisibility
security:
- Authorization: []
description: >-
Returns the Visibility for each day in the selected interval, with any
annotation present on the Visibility graph, correspondingly, for you and
each of the requested competitors.
parameters:
- description: The unique site identifier
name: site_id
in: path
required: true
type: integer
google_sheets:
label: Site
- description: The start of the period. (Relative date)
name: start_date
in: path
required: true
type: string
google_sheets:
label: Start Date
- description: The end of the period. (Relative date)
name: end_date
in: path
required: true
type: string
google_sheets:
label: End Date
- description: Maximum 10 competitors, separated by comma.
name: competitors
in: path
required: true
type: string
google_sheets:
label: Competitors
placeholder: Enter competitors
- description: >-
Group id from /groups_list/{site_id}. If it's not provided, default
group is "All keywords"
name: group_id
in: path
required: false
type: string
google_sheets:
label: Group
- description: >-
Device value. If it's not provided, default value is 1 (desktop).
Get all devices from "/devices" endpoint. Possible values:
1 or 2
name: device
in: query
required: false
type: integer
google_sheets:
label: Device
options:
type: select
options:
Desktop: 1
Mobile: 2
responses:
'200':
description: >-
An array with all competitors and their visibility score on interval
[startDate - endDate ]
schema:
type: object
$ref: '#/definitions/CompareCompetitorsResponse'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
google_sheets:
show: true
title_param: group
lockColumns: 2
lockRows: 3
header:
date:
name: Date
format_rule: format_date
style_rule: alignment_center
colWidth: 90
annotations:
name: Annotations
format_rule: annotation
style_rule: alignment_left
colWidth: 180
note: Annotations present on the Visibility graph.
/devices:
get:
tags:
- Devices
summary: Get all devices
operationId: Devices_getAll
security:
- Authorization: []
description: |
Get all devices.
responses:
'200':
description: Result with all devices
schema:
type: object
google_sheets: false
components:
securitySchemes:
Authorization:
type: apiKey
name: Authorization
in: header
definitions:
Site:
type: object
properties:
id:
description: Unique identifier representing a specific site
type: integer
name:
description: Name of site
type: string
url:
description: Url of the Site
type: string
owner:
description: The owner of the site (the email address)
type: string
date:
description: The date the site was added
type: string
localized:
description: Location name (if localized)
type: string
localized_canonical:
description: Canonical location name (if localized)
type: string
pitching:
description: 'Possible values: 0 (site is not pitching)/1 (site is pitching).'
type: integer
ForecastExample:
type: object
properties:
manual:
description: Last updated forecast (if it's manual)
type: string
real:
description: Real traffic
type: integer
estimated:
description: Estimated traffic
type: integer
on_target:
description: On target percent
type: integer
type:
description: 'Forecast type: Visibility/Traffic'
type: string
ForecastExampleByDates:
type: object
properties:
date:
type: string
google_sheets:
show: true
header_name: Date
search_volume:
type: integer
google_sheets:
show: true
header_name: Search Volume
format_rule: number
real_traffic:
type: integer
google_sheets:
show: true
header_name: Real Traffic
estimated_traffic:
type: integer
google_sheets:
show: true
header_name: Estimated Traffic
visibility_score:
type: string
google_sheets:
show: true
header_name: Visibility Score
KeywordGroups:
type: object
properties:
id:
description: Unique identifier representing a specific group
type: string
name:
description: The name of the group
type: string
is_smart:
description: If the group is defined by a smart rule
type: boolean
kw_count:
description: The number of keywords in the group for the selected period
type: integer
search_volume:
description: >-
The total search volume for the keywords in the group for the selected
period
type: number
vscore_start:
description: The desktop visibility score at the start of the period
type: number
vscore_end:
description: The desktop visibility score at the end of the period
type: number
vscore_start_mobile:
description: The mobile visibility score at the start of the period
type: number
vscore_end_mobile:
description: The mobile visibility score at the end of the period
type: number
keywords:
description: List of Keyword IDs (when load_keyword_ids is active)
type: array
items:
$ref: '#/definitions/KeywordGroupsKIDS'
GroupsList:
type: object
properties:
id:
description: Unique identifier representing a specific group
type: string
google_sheets:
show: true
header_name: Group ID
name:
description: The name of the group
type: string
google_sheets:
show: true
header_name: Group Name
is_smart:
description: If the group is defined by a smart rule
type: boolean
google_sheets:
show: true
header_name: Group Type
format_rule: boolean_to_string
GroupDetails:
type: object
properties:
kw_count:
description: The number of keywords in the group for the selected period
type: integer
google_sheets:
show: true
header_name: Keyword Count
search_volume:
description: >-
The total search volume for the keywords in the group for the selected
period
type: number
google_sheets:
show: true
header_name: Search Volume
vscore_start_desktop:
description: The desktop visibility score at the start of the period
type: number
google_sheets:
show: true
header_name: Desktop Visibility Score Start Date
format_rule: number_two_decimal
vscore_stop_desktop:
description: The desktop visibility score at the end of the period
type: number
google_sheets:
show: true
header_name: Desktop Visibility Score End Date
format_rule: number_two_decimal
vscore_start_mobile:
description: The mobile visibility score at the start of the period
type: number
google_sheets:
show: true
header_name: Mobile Visibility Score Start Date
format_rule: number_two_decimal
vscore_stop_mobile:
description: The mobile visibility score at the end of the period
type: number
google_sheets:
show: true
header_name: Mobile Visibility Score End Date
format_rule: number_two_decimal
desktop_performance_change:
description: The desktop visibility score performance change
type: number
google_sheets:
show: true
header_name: Desktop Visibility Score Change
mobile_performance_change:
description: The mobile visibility score performance change
type: number
google_sheets:
show: true
header_name: Mobile Visibility Score Change
keywords:
description: List of Keyword IDs (when load_keyword_ids is active)
type: array
items:
$ref: '#/definitions/KeywordGroupsKIDS'
google_sheets:
show: false
AllGroupDetails:
type: object
properties:
group_name:
description: Group name
type: string
google_sheets:
show: true
header_name: Group Name
kw_count:
description: The number of keywords in the group for the selected period
type: integer
google_sheets:
show: true
header_name: Keyword Count
search_volume:
description: >-
The total search volume for the keywords in the group for the selected
period
type: number
google_sheets:
show: true
header_name: Search Volume
vscore_start_desktop:
description: The desktop visibility score at the start of the period
type: number
google_sheets:
show: true
header_name: Desktop Visibility Score Start Date
format_rule: number_two_decimal
vscore_stop_desktop:
description: The desktop visibility score at the end of the period
type: number
google_sheets:
show: true
header_name: Desktop Visibility Score End Date
format_rule: number_two_decimal
vscore_start_mobile:
description: The mobile visibility score at the start of the period
type: number
google_sheets:
show: true
header_name: Mobile Visibility Score Start Date
format_rule: number_two_decimal
vscore_stop_mobile:
description: The mobile visibility score at the end of the period
type: number
google_sheets:
show: true
header_name: Mobile Visibility Score End Date
format_rule: number_two_decimal
desktop_performance_change:
description: The desktop visibility score performance change
type: number
google_sheets:
show: true
header_name: Desktop Visibility Score Change
mobile_performance_change:
description: The mobile visibility score performance change
type: number
google_sheets:
show: true
header_name: Mobile Visibility Score Change
keywords:
description: List of Keyword IDs (when load_keyword_ids is active)
type: array
items:
$ref: '#/definitions/KeywordGroupsKIDS'
google_sheets:
show: false
KeywordGroupsKIDS:
type: integer
KeywordData:
type: object
properties:
id:
description: Unique identifier representing a specific keyword
type: string
google_sheets:
show: true
header_name: Keyword ID
visits:
description: Total visits for the selected period
type: number
google_sheets:
show: true
header_name: Visits
bounces:
description: Total bounces for the selected period
type: number
google_sheets:
show: true
header_name: Bounces
conversions:
description: Total conversions (e-commerce) for the selected period
type: number
google_sheets:
show: true
header_name: Conversions
conversions_rate:
description: Total conversion rate (e-commerce) for the selected period
type: number
google_sheets:
show: true
header_name: Conversion Rate
conversions_value:
description: Total conversions value (e-commerce) for the selected period
type: number
google_sheets:
show: true
header_name: Conversion Value
goals:
description: Total goals for the selected period
type: number
google_sheets:
show: true
header_name: Goals
goals_rate:
description: Total goals rate for the selected period
type: number
google_sheets:
show: true
header_name: Goals Rate
goals_value:
description: Total goals value for the selected period
type: number
google_sheets:
show: true
header_name: Goals Value
position:
description: Last position in the selected period
type: number
google_sheets:
show: true
header_name: Keyword Position
position_trend:
description: >-
The difference between the first position in the period and the last
position in the period
type: number
google_sheets:
show: true
header_name: Position Trend
position_mobile:
description: Last position (mobile devices) in the selected period
type: number
google_sheets:
show: true
header_name: Mobile Position
position_trend_mobile:
description: >-
The difference between the first position in the period and the last
position in the period (mobile devices)
type: number
google_sheets:
show: true
header_name: Mobile Position Trend
visibility_impact_desktop:
description: >-
Visibility impact - similar to a weighted average; Use case: sorting
the keywords by their impact in the Visibility Score
type: number
google_sheets:
show: true
header_name: Desktop Visibility Impact
visibility_impact_mobile:
description: >-
Visibility impact - similar to a weighted average; Use case: sorting
the keywords by their impact in the Visibility Score (mobile devices)
type: number
google_sheets:
show: true
header_name: Mobile Visibility Impact
group_name:
description: The name of the group the keyword is in
type: string
google_sheets:
show: true
header_name: Group Name
keyword_data:
description: Specific keyword data
type: object
google_sheets:
show: true
drill_down: true
header_name: Keyword Data
properties:
name:
description: The keyword name
type: string
google_sheets:
show: true
header_name: Keyword
average_search_volume:
description: The avereage search volume
type: number
google_sheets:
show: true
header_name: Keyword Average Search Volume
average_cpc:
description: The avereage cost per click
type: number
google_sheets:
show: true
header_name: Keyword Average Cost per Click
date_added:
description: The date and time the keyword was added
type: string
google_sheets:
show: true
header_name: Keyword Date Added
landing_page:
description: The landing page for desktop devices
type: string
google_sheets:
show: true
header_name: Desktop Landing Page
landing_page_mobile:
description: The landing page for mobile devices
type: string
google_sheets:
show: true
header_name: Mobile Landing Page
est_additional_visits:
description: Estimated additional traffic once in Top 3
type: number
google_sheets:
show: true
header_name: Estimated Additional Traffic
est_additional_revenue:
description: Estimated additional revenue once in Top 3
type: number
google_sheets:
show: true
header_name: Estimated Additional Revenue
est_adwords_cost:
description: Estimated AdWords cost for the additional visits once in Top 3
type: number
google_sheets:
show: true
header_name: Estimated AdWords Cost
Ranks:
type: array
items:
type: object
properties:
keyword_data:
description: The keyword details
type: object
properties:
id:
description: Unique identifer for keyword
type: number
positions:
description: >-
The positions for deskop devices for the dates in the interval
selected(when available).
The positions can go up to 100, 101 means that the keyword was not found in the first 10 google pages
type: object
properties:
date(YY-mm-dd):
type: string
additionalProperties:
type: integer
positions_mobile:
description: >-
The positions for mobile devices for the dates in the interval
selected(when available).
The positions can go up to 100, 101 means that the keyword was not found in the first 10 google pages
type: object
properties:
date(YY-mm-dd):
type: string
additionalProperties:
type: integer
properties:
keyword_data:
description: Specific keyword data
type: object
google_sheets:
show: true
drill_down: true
header_name: Keyword Data
properties:
name:
description: The keyword name
type: string
google_sheets:
show: true
header_name: Keyword
id:
description: The keyword ID
type: string
google_sheets:
show: true
header_name: Keyword ID
positions:
description: Desktop Positions
type: object
google_sheets:
show: true
drill_down: true
header_name: Desktop Positions
properties:
date:
type: string
additionalProperties:
type: integer
google_sheets:
show: true
header_name: Desktop Positions
positions_mobile:
description: Mobile Positions
type: object
google_sheets:
show: true
drill_down: true
header_name: Mobile Positions
properties:
date:
type: string
additionalProperties:
type: integer
google_sheets:
show: true
header_name: Mobile Positions
OrganicTraffic:
type: object
properties:
visits_brand:
description: The brand visits
type: number
google_sheets:
show: true
header_name: Brand Visits
visits_non_brand:
description: The non brand visits
type: number
google_sheets:
show: true
header_name: Non-Brand Visits
conversions_rate_brand:
description: The conversion rate (e-commerce) for brand
type: number
google_sheets:
show: true
header_name: Brand Conversion Rate
conversions_rate_non_brand:
description: The conversion rate (e-commerce) for non-brand
type: number
google_sheets:
show: true
header_name: Non-Brand Visits
goals_rate_brand:
description: The goals rate for brand
type: number
google_sheets:
show: true
header_name: Brand Goals Rate
goals_rate_non_brand:
description: The goals rate for non-brand
type: number
google_sheets:
show: true
header_name: Non-Brand Goal Rate
conversions_value_brand:
description: The revenue (e-commerce) for brand
type: number
google_sheets:
show: true
header_name: Brand Revenue
conversions_value_non_brand:
description: The revenue (e-commerce) for non-brand
type: number
google_sheets:
show: true
header_name: Non-Brand Revenue
goals_conversions_value_brand:
description: The goals revenue for brand
type: number
google_sheets:
show: true
header_name: Brand Goals Revenue
goals_conversions_value_non_brand:
description: The goals revenue for non-brand
type: number
google_sheets:
show: true
header_name: Non-Brand Goals Revenue
date:
description: Date format(Y-m-d)
type: string
google_sheets:
show: true
header_name: Date
OrganicTrafficSplit:
type: object
properties:
visits:
description: Visits for brand/non-brand
type: number
google_sheets:
show: true
header_name: Visits
conversions_rate:
description: The conversion rate (e-commerce) for brand/non-brand
type: number
google_sheets:
show: true
header_name: Conversion Rate
goals_rate:
description: The goals rate for brand/non-brand
type: number
google_sheets:
show: true
header_name: Goals Rate
conversions_value:
description: The revenue (e-commerce) for brand/non-brand
type: number
google_sheets:
show: true
header_name: Revenue
goals_conversions_value:
description: The goals revenue for brand/non-brand
type: number
google_sheets:
show: true
header_name: Goals Revenue
date:
description: Date format(Y-m-d)
type: string
google_sheets:
show: true
header_name: Date
type:
description: 'Possible values: brand | non-brand'
type: string
google_sheets:
show: true
header_name: Type
Content:
type: object
properties:
title:
type: string
google_sheets:
show: true
header_name: Title
id:
type: integer
format: int32
google_sheets:
show: true
header_name: ID
date:
type: string
google_sheets:
show: true
header_name: Date
article_url:
type: string
google_sheets:
show: true
header_name: Article URL
source:
type: string
google_sheets:
show: true
header_name: Article Source
visits:
type: integer
format: int32
google_sheets:
show: true
header_name: Visits
conversions:
type: integer
format: int32
google_sheets:
show: true
header_name: Conversions
conversions_value:
type: integer
format: int32
google_sheets:
show: true
header_name: Converions Value
transactions:
type: integer
format: int32
google_sheets:
show: true
header_name: Transactions
transactions_value:
type: integer
format: int32
google_sheets:
show: true
header_name: Transactions Value
social:
type: object
google_sheets:
show: true
header_name: Social
drill_down: true
properties:
total:
type: integer
format: int32
google_sheets:
show: true
header_name: Social Total
facebook:
type: integer
format: int32
google_sheets:
show: true
header_name: Facebook
twitter:
type: integer
format: int32
google_sheets:
show: true
header_name: Twitter
google_plus:
type: integer
format: int32
google_sheets:
show: true
header_name: Google Plus
linkedin:
type: integer
format: int32
google_sheets:
show: true
header_name: Linkedin
pinterest:
type: integer
format: int32
google_sheets:
show: true
header_name: Pintrest
landing_pages:
type: array
items:
$ref: '#/definitions/LandingPage'
KeywordSERP:
description: The landing pages
type: object
properties:
landing page(text):
type: string
additionalProperties:
description: position
type: integer
Error:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
LandingPage:
type: object
properties:
url:
type: string
search_volume:
type: integer
visibility_score:
type: integer
visibility_score_change:
type: integer
keywords:
type: array
items:
$ref: '#/definitions/Keyword'
Keyword:
type: object
properties:
id:
type: integer
avg_search_volume:
type: integer
name:
type: string
rank:
type: integer
rank_change:
type: integer
VisibilityScore:
type: object
properties:
date:
type: string
vscore:
type: integer
vscore_mobile:
type: integer
VisibilityScoreData:
type: object
properties:
date:
type: string
vscore:
type: integer
CompareCompetitorsResponse:
type: object
properties:
YYYY-MM-DD:
description: Date
type: object
$ref: '#/definitions/CompareCompetitorsResponseVscore'
CompareCompetitorsResponseVscore:
type: object
properties:
competitor.tld:
description: Visibility Score for Competior
type: number
CompareKeywordsCompetitors:
type: object
properties:
rank:
type: integer
change:
type: string
CompareKeywords:
type: object
properties:
results:
type: array
items:
$ref: '#/definitions/CompareKeywordsResults'
limit:
description: Current limit
type: number
offset:
description: Current offset
type: number
pages:
description: Total number of pages
type: number
total_results:
description: Total number of results
type: number
CompareKeywordsResults:
type: object
properties:
name:
type: string
search_volume:
type: integer
avg_cpc:
type: string
competitors:
type: array
items:
$ref: '#/definitions/CompareKeywordsCompetitors'
yoy:
type: string
serp_features:
description: Array of SERP features
type: array
items:
type: string