Locations
Locations API provides endpoints to list Local Marketing locations available in your account and retrieve detailed information about a single location.
List locations
GET https://api.seranking.com/v1/local-marketing/locations
Returns a list of Local Marketing locations accessible to the authenticated user, with key statistics for each location.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | String | No | Filter by a comma-separated list of location IDs, e.g. 15,18,21. |
| with_demo | Boolean | No | Include demo locations. Default is false. Accounts with only demo locations receive an empty list unless this is set to true. |
| is_active | Boolean | No | Filter by active status. |
| search | String | No | Search by location title or profile fields. |
| 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. |
| sort | String | No | Field to sort by. |
| sort_order | String | No | Sorting order: asc or desc. Default is desc. |
Request example
GET https://api.seranking.com/v1/local-marketing/locations?is_active=true&limit=100&offset=0Response parameters
If successful, the server returns the 200 HTTP status code, an array of locations in items, and a pagination object.
| Parameter | Type | Description |
|---|---|---|
| items | Array | List of locations. |
| id | Integer | Location ID. |
| account_id | Integer | Owning account ID. |
| account_name | String | Owning account name (can be null). |
| title | String | Location title. |
| lang | String | Location language. |
| is_active | Boolean | Whether the location is active. |
| is_demo | Boolean | Whether the location is a demo. |
| is_sub | Boolean | Whether the location belongs to a sub-account (can be null). |
| is_shared | Boolean | Whether the location is shared (can be null). |
| created_at | String | Creation timestamp (can be null). |
| updated_at | String | Last update timestamp (can be null). |
| connection_status | String | Connection lifecycle status for the location in Local Marketing (can be null). |
| sync_status | String | Current synchronization status across connected directories (can be null). |
| last_synced_at | String | Last synchronization timestamp (can be null). |
| statistics | Object | Key statistics for the location. |
| statistics.reviews_count | Integer | Total number of reviews (can be null). |
| statistics.average_rating | Float | Average review rating. Note: computed differently from average_rating in Get reviews overview — the two values are distinct metrics and may not match (can be null). |
| statistics.unanswered_reviews_count | Integer | Reviews awaiting a reply (can be null). |
| statistics.listings_count | Integer | Number of business listings (can be null). |
| statistics.citations_score | Float | Citations score, 0–100 (can be null). |
| statistics.citations_percentile | Integer | Citations score percentile. Distinct from citations_score (can be null). |
| statistics.listed_directories_count | Integer | Directories where the location is listed (can be null). |
| statistics.synced_directories_count | Integer | Directories currently synchronized. A listing can be listed but not yet synced (can be null). |
| statistics.mismatched_directories_count | Integer | Directories with mismatched listing data (can be null). |
| statistics.keywords_count | Integer | Tracked keywords. Note: counts keywords, while top_3_keywords_count/top_10_keywords_count count keyword × tracking-point pairs, so TOP-N values can exceed keywords_count (can be null). |
| statistics.average_position | Float | Average local ranking position (can be null). |
| statistics.top_3_keywords_count | Integer | Keywords ranking in the top 3 (can be null). |
| statistics.top_10_keywords_count | Integer | Keywords ranking in the top 10 (can be null). |
| statistics.audit_score_percent | Integer | Latest audit score, in percent (can be null). |
| pagination | Object | Pagination info: total, limit, offset. |
Response example
{
"items": [
{
"id": 15,
"account_id": 42,
"account_name": "Acme Agency",
"title": "Folk Osteria",
"lang": "en",
"is_active": true,
"is_demo": false,
"is_sub": false,
"is_shared": false,
"created_at": "2026-04-10 09:15:00",
"updated_at": "2026-08-04 12:00:00",
"connection_status": "connected",
"sync_status": "synced",
"last_synced_at": "2026-08-04 12:00:00",
"statistics": {
"reviews_count": 60,
"average_rating": 3.8,
"unanswered_reviews_count": 8,
"listings_count": 57,
"citations_score": 85.0,
"citations_percentile": 78,
"listed_directories_count": 66,
"synced_directories_count": 49,
"mismatched_directories_count": 3,
"keywords_count": 355,
"average_position": 10.97,
"top_3_keywords_count": 49,
"top_10_keywords_count": 167,
"audit_score_percent": 85
}
}
],
"pagination": {
"total": 2,
"limit": 100,
"offset": 0
}
}Get location details
GET https://api.seranking.com/v1/local-marketing/locations/{location_id}
Returns detailed information about a single location: its business profile, owner, permissions, Google connection state, and latest audit score.
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/15Response parameters
If successful, the server returns the 200 HTTP status code and a location details object. Returns HTTP 404 if the location is not found.
The object includes all fields from List locations, plus:
| Parameter | Type | Description |
|---|---|---|
| profile | Object | Business profile of the location. |
| profile.name | String | Business name. |
| profile.primary_phone | String | Primary phone number (can be null). |
| profile.additional_phones | Array | Additional phone numbers. |
| profile.website | String | Website URL (can be null). |
| profile.description | String | Business description (can be null). |
| profile.address | Object | Address: postal_code, region_code, region_display_name, administrative_area, locality, address_lines. |
| profile.primary_category | Object | Primary business category: id, display_name. |
| profile.additional_categories | Array | Additional business categories. |
| profile.working_hours | Object | Working hours. |
| profile.service_area | Object | Service area settings. |
| profile.social_profiles | Array | Social profiles, each with network and url. |
| properties | Object | Additional location properties. Note: currently returned as an object when populated but as an empty array [] when empty — typed clients should handle both. |
| owner | Object | Location owner: id, parent_id, email, first_name, last_name, lang. |
| permissions | Array | Permissions the current user has for this location. |
| auth | Object | Google connection state. |
| auth.google_connection_status | String | Google connection status (can be null). |
| auth.requires_reconnect | Boolean | Whether the Google account needs to be reconnected (can be null). |
| auth.connected_at | String | Connection timestamp (can be null). |
| audit | Object | Audit summary. |
| audit.score_percent | Integer | Latest audit score, in percent (can be null). |
Response example
{
"id": 15,
"account_id": 42,
"account_name": "Acme Agency",
"title": "Folk Osteria",
"lang": "en",
"is_active": true,
"is_demo": false,
"created_at": "2026-04-10 09:15:00",
"updated_at": "2026-08-04 12:00:00",
"connection_status": "connected",
"sync_status": "synced",
"last_synced_at": "2026-08-04 12:00:00",
"statistics": {
"reviews_count": 60,
"average_rating": 3.8,
"listings_count": 57,
"citations_score": 85.0,
"audit_score_percent": 85
},
"profile": {
"name": "Folk Osteria",
"primary_phone": "1 801-843-9517",
"additional_phones": [],
"website": "https://folkosteria.com",
"description": "Italian restaurant in Holladay.",
"address": {
"postal_code": "84117",
"region_code": "US",
"region_display_name": "United States",
"administrative_area": "UT",
"locality": "Holladay",
"address_lines": ["Highland Dr."]
},
"primary_category": {
"id": "gcid:italian_restaurant",
"display_name": "Italian restaurant"
},
"additional_categories": [],
"working_hours": {},
"service_area": {},
"social_profiles": [
{ "network": "facebook", "url": "https://facebook.com/folkosteria" }
]
},
"properties": {},
"owner": {
"id": 7,
"parent_id": null,
"email": "[email protected]",
"first_name": "Jane",
"last_name": "Doe",
"lang": "en"
},
"permissions": ["view", "export"],
"auth": {
"google_connection_status": "connected",
"requires_reconnect": false,
"connected_at": "2026-04-10 09:20:00"
},
"audit": {
"score_percent": 85
}
}
