Local Rankings
Local Rankings API provides endpoints to retrieve tracked keywords, position history by tracking point, and the indexed percent for a location.
Get Local Rankings keyword list
GET https://api.seranking.com/v1/local-marketing/locations/{location_id}/rankings/keywords
Returns the Local Rankings keyword list for a location with current and best positions, tracking point details, and a summary block.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| location_id | Integer | Yes | Location ID (path parameter). |
| from | String | No | Start date (in YYYY-MM-DD). |
| to | String | No | End date (in YYYY-MM-DD). |
| limit | Integer | No | Maximum number of items to return (1–1000). Default is 100. |
| offset | Integer | No | Number of items to skip. Default is 0. |
Request example
GET https://api.seranking.com/v1/local-marketing/locations/15/rankings/keywords?from=2026-05-01&to=2026-05-31&limit=100&offset=0Response parameters
If successful, the server returns the 200 HTTP status code, a summary block, an array of keywords in items, and a pagination object. Returns HTTP 404 if the location is not found.
| Parameter | Type | Description |
|---|---|---|
| location_id | Integer | Location ID. |
| summary | Object | Summary across tracked keywords. |
| summary.keywords_tracked | Integer | Number of tracked keyword × tracking-point pairs. |
| summary.indexed_keywords | Integer | Number of indexed keywords. |
| summary.average_position | Float | Average position (can be null). |
| summary.top_3_keywords_count | Integer | Number of keywords in the TOP 3. |
| summary.top_10_keywords_count | Integer | Number of keywords in the TOP 10. |
| items | Array | List of keywords. |
| keyword_id | Integer | Keyword ID. |
| keyword | String | Keyword. |
| current_position | Integer | Current position (can be null). |
| best_position | Integer | Best position (can be null). |
| found_at | String | Date the keyword was first found (in YYYY-MM-DD, can be null). |
| key_to_geopoint_id | Integer | Keyword-to-geopoint binding ID (can be null). |
| tracking_point_details | Object | Tracking point details. |
| tracking_point_details.id | Integer | Tracking point ID (can be null). |
| tracking_point_details.type | String | Tracking point type: geopoint or grid. |
| tracking_point_details.label | String | Tracking point label (can be null). |
| tracking_point_details.address | String | Tracking point address (can be null). |
| tracking_point_details.latitude | Float | Latitude (can be null). |
| tracking_point_details.longitude | Float | Longitude (can be null). |
| tracking_point_details.key_to_geopoint_id | Integer | Keyword-to-geopoint binding ID, duplicated inside the tracking point details (can be null). |
| pagination | Object | Pagination info: total, limit, offset. |
Response example
{
"location_id": 15,
"summary": {
"keywords_tracked": 40,
"indexed_keywords": 37,
"average_position": 8.3,
"top_3_keywords_count": 9,
"top_10_keywords_count": 21
},
"items": [
{
"keyword_id": 7001,
"keyword": "italian restaurant holladay",
"current_position": 2,
"best_position": 1,
"found_at": "2026-04-15",
"key_to_geopoint_id": 88,
"tracking_point_details": {
"id": 12,
"type": "geopoint",
"label": "Downtown",
"address": "Holladay, UT",
"latitude": 40.6689,
"longitude": -111.8247,
"key_to_geopoint_id": 88
}
}
],
"pagination": {
"total": 40,
"limit": 100,
"offset": 0
}
}Get Local Rankings positions
GET https://api.seranking.com/v1/local-marketing/locations/{location_id}/rankings/positions
Returns Local Rankings position history for a location by date and tracking point, with a summary block. Note: both from and to must be supplied — a partial or missing range returns an empty result set rather than the full history.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| location_id | Integer | Yes | Location ID (path parameter). |
| from | String | No | Start date (in YYYY-MM-DD). |
| to | String | No | End date (in YYYY-MM-DD). |
| limit | Integer | No | Maximum number of items to return (1–1000). Default is 100. |
| offset | Integer | No | Number of items to skip. Default is 0. |
Request example
GET https://api.seranking.com/v1/local-marketing/locations/15/rankings/positions?from=2026-05-01&to=2026-05-31&limit=100&offset=0Response parameters
If successful, the server returns the 200 HTTP status code, a summary block, an array of position records in items, and a pagination object. Returns HTTP 404 if the location is not found.
| Parameter | Type | Description |
|---|---|---|
| location_id | Integer | Location ID. |
| summary | Object | Summary across the selected period. |
| summary.average_position | Float | Average position (can be null). |
| summary.best_position | Integer | Best position (can be null). |
| summary.worst_position | Integer | Worst position (can be null). |
| items | Array | Position records. |
| date | String | Check date (in YYYY-MM-DD). |
| keyword_id | Integer | Keyword ID. |
| position | Integer | Position on the check date (can be null). |
| tracking_point | String | Tracking point (can be null). |
| key_to_geopoint_id | Integer | Keyword-to-geopoint binding ID (can be null). |
| tracking_point_details | Object | Tracking point details (same structure as in Get Local Rankings keyword list). |
| pagination | Object | Pagination info: total, limit, offset. |
Response example
{
"location_id": 15,
"summary": {
"average_position": 8.3,
"best_position": 1,
"worst_position": 34
},
"items": [
{
"date": "2026-05-30",
"keyword_id": 7001,
"position": 2,
"tracking_point": "Downtown",
"key_to_geopoint_id": 88,
"tracking_point_details": {
"id": 12,
"type": "geopoint",
"label": "Downtown",
"address": "Holladay, UT",
"latitude": 40.6689,
"longitude": -111.8247,
"key_to_geopoint_id": 88
}
}
],
"pagination": {
"total": 1875,
"limit": 100,
"offset": 0
}
}Get rankings indexed percent
GET https://api.seranking.com/v1/local-marketing/locations/{location_id}/rankings/indexed-percent
Returns the percentage of tracked keywords for which the location is indexed.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| location_id | Integer | Yes | Location ID (path parameter). |
Request example
GET https://api.seranking.com/v1/local-marketing/locations/15/rankings/indexed-percentResponse parameters
If successful, the server returns the 200 HTTP status code and the indexed percent value. Returns HTTP 404 if the location is not found.
| Parameter | Type | Description |
|---|---|---|
| location_id | Integer | Location ID. |
| indexed_percent | Float | Percentage of indexed keywords. |
Response example
{
"location_id": 15,
"indexed_percent": 92.5
}
