Project Management
Project Management API allows managing projects (create, edit, delete), get statistics on individual projects or keywords.
List projects
GET https://api4.seranking.com/sites
Returns a list of all projects available in the user account.
Request format
GET https://api4.seranking.com/sitesResponse parameters
| Parameter | Type | Description |
|---|---|---|
| id | Integer | Unique project (site) ID. |
| title | String | Project name. |
| name | String | Website URL associated with the project. |
| group_id | Integer | Project group ID. |
| is_active | Integer | Project status: • 1 – active• 0 – delayed |
| exact_url | Integer | If 1, ranking positions are checked only for the specified URL, excluding subfolders and subdomains. |
| subdomain_match | Integer | If 1, SERP subdomains are taken into account. |
| depth | Integer | Ranking position collection depth. |
| check_freq | String | Frequency of ranking checks. |
| check_day | Integer | • If check_freq is check_weekly, represents the day of the week (1 – Monday to 7 – Sunday). • If check_freq is check_monthly, represents the day of the month (1 – 31). |
| guest_link | String | Guest link to view project statistics without authorization. |
| keyword_count | Integer | Number of keywords added to the project. |
Response example
[
{
"id": 1,
"title": "zniqpf tfallp mykqeg",
"name": "Cronin.info",
"group_id": 0,
"is_active": 1,
"exact_url": 0,
"subdomain_match": 0,
"depth": 100,
"check_freq": "check_daily",
"check_day": null,
"guest_link": "https://seranking.com/guest.html?site_id=1&hv=0&hash=432&tab=detailed"
}
]List project search engines
GET https://api4.seranking.com/sites/{site_id}/search-engines
Returns a list of search engines configured for the specified project.
Request format
GET https://api4.seranking.com/sites/{site_id}/search-enginesResponse parameters
If successful, the server returns HTTP 200 and a JSON array of search engines associated with the project. If an error occurs (e.g., unknown search_engine_id or site_engine_id), the API returns the corresponding HTTP status code and error message. See Error handling for possible error codes.
| Parameter | Type | Description |
|---|---|---|
| site_engine_id | Integer | Unique ID of the search engine configuration within the project. |
| search_engine_id | Integer | Search engine ID (refer to /system/search-engines). |
| region_id | Integer | Region ID. |
| region_name | String | Region name. Only applicable to Google. |
| lang_code | String | Language code (refer to /system/google-langs). |
| merge_map | Integer | Google Maps SERPs handling mode: • 0 – don’t include • 1 – include • 2 – include and display separately |
| business_name | String | Business name used for Google Maps SERPs. |
| phone | String | Company phone number used for Google Maps SERPs. |
| paid_results | Integer | Track rankings in Google Ads: 1 – yes, 0 – no. |
| featured_snippet | Integer | Track Featured Snippet results: • 1 – include • 0 – exclude |
| keyword_count | Integer | Number of keywords assigned to this search engine configuration. |
Response example
[
{
"site_engine_id": 1,
"search_engine_id": 339,
"region_id": 0,
"region_name": null,
"lang_code": "ru",
"merge_map": 0,
"business_name": null,
"phone": null,
"paid_results": 0,
"featured_snippet": 0,
"keyword_count": 10
}
]Add search engine to project
POST https://api4.seranking.com/sites/{site_id}/search-engines
Adds a new search engine configuration to the specified project.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Unique project (site) ID. |
| search_engine_id | Integer | Yes | Search engine ID (refer to /system/search-engines). |
| region_id | Integer | No | Region ID. |
| region_name | String | No | Geographical name (region or city) in English. Only applicable to Google. |
| lang_code | String | No | Language code (refer to /system/google-langs). |
| merge_map | Integer | No | Google Maps SERPs handling mode: • 0 – don’t include • 1 – include • 2 – include and display separately |
| business_name | String | No | Business name for Google Maps SERPs. |
| phone | String | No | Company phone number for Google Maps SERPs. |
| paid_results | Integer | No | Track rankings in Google Ads: 1 – yes, 0 – no. |
| featured_snippet | Integer | No | Track Featured Snippet results: • 1 – include • 0 – exclude |
Request example
POST https://api4.seranking.com/sites/{site_id}/search-engines
{
"search_engine_id": 339,
"region_id": 0,
"region_name": null,
"lang_code": "ru",
"merge_map": 0,
"business_name": null,
"phone": null,
"paid_results": 0,
"featured_snippet": 0
}
Response
If successful, the server returns the 201 HTTP code and the site_engine_id of the newly added search engine configuration. If an error occurs (e.g., unknown search_engine_id), the API returns the corresponding HTTP status code and error message. See Error handling for possible error codes.
Change search engine in project
PUT https://api4.seranking.com/sites/{site_id}/search-engines/{site_engine_id}
Updates an existing search engine configuration for the specified project.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Unique project (site) ID. |
| site_engine_id | Integer | Yes | Unique ID of the search engine configuration within the project. |
| region_id | Integer | No | Region ID. |
| region_name | String | No | Geographical name (region or city) in English. Only applicable to Google. |
| lang_code | String | No | Language code (refer to /system/google-langs). |
| merge_map | Integer | No | Google Maps SERPs handling mode: • 0 – don’t include • 1 – include • 2 – include and display separately |
| business_name | String | No | Business name for Google Maps SERPs. |
| phone | String | No | Company phone number for Google Maps SERPs. |
| paid_results | Integer | No | Track rankings in Google Ads: 1 – yes, 0 – no. |
| featured_snippet | Integer | No | Track Featured Snippet results: • 1 – include • 0 – exclude |
Request example
PUT https://api4.seranking.com/sites/{site_id}/search-engines/{site_engine_id}
{
"region_id": 0,
"region_name": null,
"lang_code": "ru",
"merge_map": 0,
"business_name": null,
"phone": null,
"paid_results": 0,
"featured_snippet": 0
}Response
If successful, the server returns HTTP 200. If an error occurs (e.g., unknown site_engine_id), the API returns the corresponding HTTP status code and error message. See Error handling for possible error codes.
Delete search engine from project
DELETE https://api4.seranking.com/sites/{site_id}/search-engines/{site_engine_id}
Removes a search engine configuration from the specified project.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Unique project (site) ID. |
| site_engine_id | Integer | Yes | Unique ID of the search engine configuration within the project. |
Request example
DELETE https://api4.seranking.com/sites/{site_id}/search-engines/{site_engine_id}Response
If successful, the server returns HTTP 204. If an error occurs, the API returns the corresponding HTTP status code and error message. See Error handling for possible error codes.
List website keywords
GET https://api4.seranking.com/sites/{site_id}/keywords
Returns a list of keywords for the specified project, including their assigned target URLs and basic statistics.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Unique project (site) ID. |
| search_engine_id | Integer | No | Search engine configuration ID (see /system/search-engines). If provided, first_check_date is returned. |
Request example
GET https://api4.seranking.com/sites/{site_id}/keywords?site_engine_id=NNNResponse parameters
If successful, the server returns HTTP 200 and a JSON array of project keywords. If an error occurs, the API returns the corresponding HTTP status code and error message. See Error handling for possible error codes.
| Parameter | Type | Description |
|---|---|---|
| id | String | Unique keyword ID. |
| name | String | Keyword text. |
| group_id | String | Keyword group ID. |
| link | String | Target URL assigned to the keyword. |
| first_check_date | String | Date of the first ranking check (YYYY-MM-DD). |
| tags | Array | List of tag IDs assigned to the keyword. |
| site_engine_ids | Array | List of associated search engine configuration IDs. |
Response example
[
{
"id": "1",
"name": "key1",
"group_id": "2",
"link": null,
"first_check_date": "2015-02-17"
},
{
"id": "2",
"name": "key2",
"group_id": "2",
"link": "http://mysite.com/",
"first_check_date": null,
"tags": []
},
...
]Get project summary statistics
GET https://api4.seranking.com/sites/{site_id}/stat
Returns summary statistics for the specified project.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Unique project (site) ID. |
Request example
GET https://api4.seranking.com/sites/{site_id}/statResponse parameters
If successful, the server returns HTTP 200 and a JSON object containing summary metrics.
| Parameter | Type | Description |
|---|---|---|
| site_id | Integer | Unique website ID. |
| name | String | Website domain. |
| group_id | Integer | Project group ID. |
| title | String | Project title. |
| today_avg | Number | Average position for the latest ranking check date. |
| yesterday_avg | Number | Average position for the previous ranking check date. |
| total_up | Integer | Total number of positions that improved in SERPs. |
| total_down | Integer | Total number of positions that declined in SERPs. |
| process | String | Percentage of processed website positions. |
| top5 | Integer | Number of keywords ranking in the top 5. |
| top10 | Integer | Number of keywords ranking in the top 10. |
| top30 | Integer | Number of keywords ranking in the top 30. |
| visibility | Number | Traffic forecast value. |
| visibility_percent | Number | Visibility percentage. |
| da | Number | Moz Domain Authority. |
| index_google | Integer | Number of pages indexed in Google. |
Response example
{
"site_id": 123,
"name": "site1.com",
"group_id": null,
"title": "my site",
"today_avg": 123,
"yesterday_avg": 111,
"total_up": 0,
"total_down": 5,
"process": "99.9",
"top5" : 1,
"top10" : 2,
"top30" : 3,
"visibility" : 2,
"visibility_percent" : 30.0,
"da" : 4,
"index_google" : 200,
"index_x" : null,
}Get keyword statistics
GET https://api4.seranking.com/sites/{site_id}/positions
Returns keyword ranking statistics for the specified project within a selected time period.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Unique project (site) ID. |
| date_from | String | No | Start date of the time period (YYYY-MM-DD). The default is today minus one week. |
| date_to | String | No | End date of the time period (YYYY-MM-DD). The default is today. |
| site_engine_id | Integer | No | Search engine configuration ID. If not specified, data for all search engines is returned. |
| in_top | Integer | No | Filter by ranking position. Example: in_top=10 returns keywords ranking in the TOP 10 at the last check date within the selected period. |
| with_landing_pages | Integer | No | Landing page URLs found in SERPs (1 – include). |
| with_serp_features | Integer | No | Detected Google SERP features (1 – include). |
Request example
GET https://api4.seranking.com/sites/{site_id}/positions?date_from=2018-01-01&date_to=2018-01-07&site_engine_id=1&with_landing_pages=1&with_serp_features=1Response parameters
If successful, the server returns a JSON array grouped by site_engine_id, containing keyword statistics for the specified period. If an error occurs (e.g., invalid site_engine_id), the API returns the corresponding HTTP status code and error message. See Error handling for possible error codes.
| Parameter | Type | Description |
|---|---|---|
| site_engine_id | Integer | Search engine configuration ID. |
| keywords | Array | List of keywords with statistics. |
Each object in the keywords array has the following structure:
| Parameter | Type | Description |
|---|---|---|
| id | String | Unique keyword ID. |
| positions | Array | Ranking positions by date. |
| volume | Integer | Search volume. |
| competition | Number | Competition level. |
| suggested_bid | Number | Estimated cost per click. |
| kei | Number | Keyword Efficiency Index. |
| results | Integer | Number of search results in Google. |
| total_sum | Number | Price per keyword (based on financial report settings). |
| landing_pages | Array | Landing page data:date – ranking check date (YYYY-MM-DD)url – page URL in SERPs for the keyword |
| features | Object | Detected SERP features. Each field is true if the feature links to the project’s website; otherwise false. |
Each object in the positions array has the following structure:
| Parameter | Type | Description |
|---|---|---|
| date | String | Date (YYYY-MM-DD). |
| pos | Integer | Current ranking position. |
| change | Integer | Change in position compared to the previous date (could be negative). |
| price | Number | Price calculated from financial report settings. |
| is_map | Integer | Results where the position was found: • 0 – organic search results• 1 – maps block |
| map_position | Number | Position in the maps block when merge_map is 2 (i.e., “Display organic and maps results separately” is enabled). |
| paid_position | Number | Position in paid Google SERPs. |
Response example
[
{
"site_engine_id": 1,
"keywords": [
{
"id": "12",
"positions": [
{
"date": "2017-12-19",
"pos": 18,
"change": 0,
"price": 0,
"is_map": 0,
"map_position": 0,
"paid_position": 0
}
],
"volume": 390,
"competition": 3,
"suggested_bid": 1,
"kei": 1,
"results": 100,
"total_sum": 0,
"landing_pages": [
{
"url": "https://domain.com/page.html",
"date": "2017-12-14"
}
],
"features": {
"tads": true,
"knowledge_graph": true,
"images": true,
"sitelinks": true,
"reviews": false
},
},
...
]Total number of ads chart
The method allows to get data on the total number of top and bottom advertisements by day.
Request format
GET https://api4.seranking.com/sites/{site_id}/ads?date_from=2020-05-20&date_to=2020-05-21&site_engine_ids[]=1&site_engine_ids[]=2&keywords_ids[]=1&keywords_ids[]=1Parameters
Query parameters. All parameters are optional.
| Name | Type | Description |
| date_from | yyyy-mm-dd | Time period start date (today minus one week by default) |
| date_to | yyyy-mm-dd | Time period end date (today by default) |
| site_engine_ids | Search engine ID filter.If not specified, data for all search engines will be returned. | |
| keywords_ids | Keyword ID filter.If not specified, data for all keywords will be returned. |
Result
If successful, the server returns an array of data from all (or specified) search engines of the project. This array contains data on the number of top and bottom advertisements in the search results for all (or selected) keywords by dates in the specified period.
Returns a maximum of 100,000 results. If the project has a large number of keywords, it is advisable to indicate the ID of search engines, keywords and the verification period.
| Name | Description |
| site_engine_id | Search engine ID |
| keywords | Array of keywords with data on the number of ads |
| id | Keyword ID |
| ads | Data array on the number of ads by dates |
| date | Date |
| tads | Total number of top ads |
| bads | Total number of bottom ads |
Response example
[
{
"site_engine_id": 1,
"keywords": [
{
"id": 1,
"ads": [
{
"date": "2020-05-20",
"tads": 2,
"bads": 3,
},
{
"date": "2020-05-21",
"tads": 3,
"bads": 2,
},
],
},
{
"id": 2,
"ads": [
{
"date": "2020-05-20",
"tads": 0,
"bads": 0,
},
{
"date": "2020-05-21",
"tads": 0,
"bads": 1,
},
],
},
],
},
{
"site_engine_id": 2,
"keywords": [
{
"id": 1,
"ads": [
{
"date": "2020-05-20",
"tads": 1,
"bads": 1
},
{
"date": "2020-05-21",
"tads": 2, "bads": 2}],
},
{
"id": 2,
"ads": [
{
"date": "2020-05-20",
"tads": 0,
"bads": 2,
},
{
"date": "2020-05-21",
"tads": 5,
"bads": 1,
},
],
},
],
},
]
}
]Historical dates
The method returns a list of dates necessary to build a graph of historical ranking positions. The dates correspond to the following list: today, yesterday, 7 days ago, 1 month ago, 3 months ago, 6 months ago, the first day of the check. If no ranking position check took place on a given date, the closest ranking position check date will be returned.
Request format
GET https://api4.seranking.com/sites/{site_id}/historicalDatesRequest parameters
| Name | Required | Description |
| site_engine_id | No | ID of the search engine in the project.If site_engine_id is not specified, searches dates for all search engines. |
Result
If successful, the server returns an array of available dates. The array can include the following elements: ‘current’, ‘day_ago’, ‘7days’, ’30days’, ’90days’, ‘180days’, ‘first’. Values displayed in the list will be transmitted as dates expressed in the YYYY-MM-DD format.
Response example
{ "current" : "2019-02-20", "day_ago" : "2019-02-19", "7days" : "2019-02-14",}Adding queries to projects
The method allows to add new keywords to projects.
Request format
POST https://api4.seranking.com/sites/{site_id}/keywords
[
{
"keyword":"text",
"group_id":1,
"target_url": "http://site.com/",
"is_strict": 0,
"comment":"text",
"site_engine_ids": [20,21]
}
]Request parameters
| Name | Required | Description |
| keyword | Yes | Keyword (query) |
| group_id | No | Keyword group ID (if the parameter is not specified, the default group will be used) |
| target_url | No | Target link |
| is_strict | No | Check positions only for the selected target links (0 or 1; 0 be default) |
| comment | No | Comments |
| site_engine_ids | No | Array of search engine IDs. The keyword will only be in these search engines. |
Result
If successful, the server returns an array of added keywords and their project ID.
| Name | Required | Description |
| added | Yes | Number of successfully added queries to the project |
| ids | No | Array of IDs of added queries |
Response example
{
"added": 3,
"ids": [123, 456, 789]
}Errors
| HTTP code | Error message |
| 400 | No keywords specified |
Adding a project
The method allows to add a new project to a user account.
Request format
POST https://api4.seranking.com/sites
[{"url": "http://test.site/","title": "seo site"}]Request parameters
| Name | Required | Description |
| url | Yes | Website URL |
| title | Yes | Project name |
| depth | No | Ranking position collection depth (100, 200), 100 by default |
| subdomain_match | No | Take subdomains in SERPs into account? (0 or 1), 0 by default |
| exact_url | No | Exact URL? (0 or 1), 0 by default |
| check_freq | No | Position check frequency (‘check_daily’,’check_1in3′,’check_weekly’, ‘check_monthly’, ‘manual’), check_daily set by default |
| auto_reports | No | Weekly report? (0 or 1), 1 by default |
| disable_audit | No | 0 by default, 1 if you want to skip website audit |
| site_group_id | No | ID of the group where a new project will be added |
| check_day | No | If weekly checks are represented as check_weekly, this parameter represents the day of the week.(from 1 – Monday to 7 – Sunday) If monthly checks are represented as check_monthly, indicate the day of the week in this parameter (1 – 31) |
| is_active | No | Project status 1 – active, 0 – delayed |
Result
If successful, the server returns the 201 HTTP code and the ID of the project that was added to the account.
| Name | Required | Description |
| site_id | Yes | ID of the project added to the account |
Response example
{ "site_id": 507052 }Changing project settings
The method allows to change/update the project settings.
Request format
PUT https://api4.seranking.com/sites/{site_id}{"title":"new site title"}Request parameters
| Name | Description |
| url | Website URL |
| title | Project name |
| depth | Ranking position collection depth (100, 200), 100 by default |
| subdomain_match | Take subdomains in SERPs into account (0 or 1), 0 by default |
| exact_url | Exact URL? (0 or 1), 0 by default |
| check_freq | Position check frequency (‘check_daily’,’check_1in3′,’check_weekly’, ‘check_monthly’, ‘manual’), check_daily set by default |
| site_group_id | ID of the group where a new project will be added |
| check_day | If weekly checks are represented as check_weekly, this parameter represents the day of the week.(from 1 – Monday to 7 – Sunday) If monthly checks are represented as check_monthly, indicate the day of the week in this parameter (1 – 31) |
| is_active | 1, 0 |
Result
If successful, the server returns the 200 HTTP code.
Deleting a project
The method allows to delete a project from a user account.
Request format
DELETE https://api4.seranking.com/sites/{site_id}Result
If successful, the server returns the 204 HTTP code.
Deleting keywords
The method allows to delete keywords from a project.
Request format
DELETE https://api4.seranking.com/sites/{site_id}/keywords?keywords_ids[]=1&keywords_ids[]=2&keywords_ids[]=3Request parameters
| Name | Required | Description |
| keywords_ids | Yes | Array of IDs of keywords to be deleted |
Result
If successful, the server returns the 204 HTTP code.
Errors
| HTTP code | Error message |
| 400 | No ids in request |
Manual position setting
The method allows to set positions for a project’s keywords.
Request format
PUT https://api4.seranking.com/sites/{site_id}/position/
{"keyword_id": 1,"date": "2018-01-01","position":100,"site_engine_id": 1}Request parameters
| Name | Required | Type | Description |
| keyword_id | Yes | Unique keyword ID (refer to GET https://api4.seranking.com/sites/{site_id}/keywords) | |
| date | Yes | yyyy-mm-dd | The date the positions need to be set for |
| site_engine_id | Yes | Unique project search engine ID (refer to GET https://api4.seranking.com/sites/{site_id}/search-engines) | |
| position | Yes | Position from 0 to 200. 0 is considered as “not found” |
Result
If successful, the server returns the 200 HTTP code.
Errors
| HTTP code | Error message |
| 400 | Invalid date |
| 400 | Invalid keyword_id |
| 400 | Unknown site_engine_id |
Running a position check
The method allows to run a ranking position check for specified keywords or for the entire project.
Request format
POST https://api4.seranking.com/api/sites/{site_id}/recheck/
{ "keywords":[ {"site_engine_id":1, "keyword_id":2} ]}Parameters
| Name | Required | Description |
| site_engine_id | No | Unique project search engine ID. If an API request contains this parameter, the position check will run only for the given search engine. |
| keywords | Yes | An array of separate keywords that need a position check. Several definitions are indicated for every keyword: site_engine_id (unique project search engine ID) and keyword_id (unique keyword ID). If an API request contains this parameter, the site_engine_id parameter is ignored. |
Result
If successful, the server returns an array of keywords for which the position check was launched.
| Name | Required | Description |
| total | Yes | The number of keywords for which the position check was launched |
Response example
{ "total": 5 }Errors
| HTTP code | Error message |
| 400 | Unknown site_engine_id |
