Listing Management
Jump to GetLocationGetLocation
Get one location by its ID. You can execute up to 10 requests per second. The API is available on the Local Pro plan and requires a Bearer Token. Learn more ›
Note that if the request is unsuccessful, the response format may vary. For more details, refer to the request/response examples.
Requests to this method don’t use up API units.
Jump to EndpointEndpoint
Request Parameters
location_idRequired
Value/Type: string
curl -L 'https://api.semrush.com/apis/v4-raw/listing-management/v1/external/locations/3e8d046f62fe4b73802112e138a78532' -H 'Authorization: Bearer YOUR_TOKEN'{
"data": {
"id": "3e8d046f62fe4b73802112e138a78532",
"locationName": "Some location name",
"phone": "+12096438343",
"region": "OH",
"status": "COMPLETE",
"websiteUrl": "https://www.test.com",
"zip": "43103",
"additionalAddressInfo": "3 floor",
"address": "82 Cromley St",
"city": "Ashville",
"countryCode": "US",
"businessHours": {
"monday": [
{
"from": "00:00",
"to": "00:00"
}
],
"tuesday": [
{
"from": "13:00",
"to": "14:00"
},
{
"from": "15:00",
"to": "01:00"
}
],
"wednesday": [
{
"from": "06:00",
"to": "00:00"
}
],
"thursday": [
{
"from": "09:00",
"to": "17:00"
}
],
"friday": [
{
"from": "09:00",
"to": "17:00"
},
{
"from": "19:00",
"to": "19:30"
}
],
"saturday": [
{
"from": "09:00",
"to": "16:00"
},
{
"from": "17:00",
"to": "18:00"
}
],
"sunday": [
{
"from": "12:00",
"to": "14:00"
}
]
},
"holidayHours": [
{
"type": "RANGE",
"day": "2024-11-26",
"times": [
{
"from": "10:00",
"to": "12:00"
},
{
"from": "13:00",
"to": "15:00"
}
]
},
{
"type": "RANGE",
"day": "2024-11-24",
"times": [
{
"from": "10:00",
"to": "12:00"
},
{
"from": "15:00",
"to": "18:00"
}
]
}
],
"reopenDate": "2025-01-01",
"errors": [
{
"code": "G_020",
"message": "Some location business information can't be processed by Google."
}
]
},
"requested": "api-flb-718c4b47eed5c20965a85df5183fba9a"
}curl -L 'https://api.semrush.com/apis/v4-raw/listing-management/v1/external/locations/3e8d046f62fe4b73802112e138a78532' -H 'Authorization: Bearer YOUR_TOKEN'{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found.",
"details": [
{
"code": "LOCATION_NOT_FOUND",
"message": "Location is not found."
}
]
},
"requestId": "api-flb-fb27c729b51e658d4a4984716df00a77"
}curl -L 'https://api.semrush.com/apis/v4-raw/listing-management/v1/external/locations/3e8d046f62fe4b73802112e138a78532' -H 'Authorization: Bearer YOUR_TOKEN'{
"code": 401,
"message": "Unauthorized"
}Jump to GetLocationsGetLocations
Get a user’s locations page. You can execute up to 10 requests per second. The API is available on the Local Pro plan and requires a Bearer Token. Learn more ›
Requests to this method don’t use up API units.
Jump to EndpointEndpoint
Request Parameters
page
1.Value/Type: int32
size
Value/Type: int32
curl -L 'https://api.semrush.com/apis/v4-raw/listing-management/v1/external/locations?size=4&page=1' -H 'Authorization: Bearer YOUR_TOKEN'{
"data": {
"page": 1,
"totalElements": 1,
"totalPages": 1,
"content": [
{
"id": "3e8d046f62fe4b73802112e138a78532",
"locationName": "Some location name",
"phone": "+12096438343",
"region": "OH",
"websiteUrl": "https://www.test.com",
"zip": "43103",
"additionalAddressInfo": "3 floor",
"address": "82 Cromley St",
"city": "Ashville",
"countryCode": "US",
"businessHours": {
"monday": [
{
"from": "00:00",
"to": "00:00"
}
],
"tuesday": [
{
"from": "13:00",
"to": "14:00"
},
{
"from": "15:00",
"to": "01:00"
}
],
"wednesday": [
{
"from": "06:00",
"to": "00:00"
}
],
"thursday": [
{
"from": "09:00",
"to": "17:00"
}
],
"friday": [
{
"from": "09:00",
"to": "17:00"
},
{
"from": "19:00",
"to": "19:30"
}
],
"saturday": [
{
"from": "09:00",
"to": "16:00"
},
{
"from": "17:00",
"to": "18:00"
}
],
"sunday": [
{
"from": "12:00",
"to": "14:00"
}
]
},
"holidayHours": [
{
"type": "RANGE",
"day": "2024-11-26",
"times": [
{
"from": "10:00",
"to": "12:00"
},
{
"from": "13:00",
"to": "15:00"
}
]
},
{
"type": "RANGE",
"day": "2024-11-24",
"times": [
{
"from": "10:00",
"to": "12:00"
},
{
"from": "15:00",
"to": "18:00"
}
]
}
],
"reopenDate": "2025-01-01",
"errors": [
{
"code": "G_020",
"message": "Some location business information can't be processed by Google."
}
]
}
]
},
"requestId": "api-flb-98bb001dd14b8b71b5446db367918809"
}curl -L 'https://api.semrush.com/apis/v4-raw/listing-management/v1/external/locations?size=4&page=1' -H 'Authorization: Bearer YOUR_TOKEN'{
"code": 401,
"message": "Unauthorized"
}Jump to UpdateLocationUpdateLocation
Update one location by its ID. You can execute up to 5 requests per second. The API is available on the Local Pro plan and requires a Bearer Token. Learn more ›
Note that if the request is unsuccessful, the response format may vary. For more details, refer to the request and response examples.
Requests to this method don’t use up API units.
Jump to EndpointEndpoint
Request Parameters
locationIdRequired
Value/Type: string
locationNameRequired
Value/Type: string
cityRequired
Value/Type: string
addressRequired
Value/Type: string
additionalAddressInfo
Value/Type: string
zip
Postal code of the address. Not all countries use or require postal codes, but where they are used, they may trigger additional validation with other parts of the address such as state/ZIP validation in the USA.
Value/Type: string
phoneRequired
Phone number that customers can use to get in touch with the business. The international code is required.
Value/Type: string
region
Highest administrative subdivision used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (“Barcelona” and not “Catalonia”). Many countries don’t use an administrative area in postal addresses. For example, in Switzerland, this field must be left empty.
Value/Type: string
websiteUrl
URL for this business. Must start with http:// or https://. Max. length is 255 symbols.
If possible, use a URL that represents this individual business location instead of a generic website/URL that represents all locations, or the brand.
Value/Type: string
businessHours
Operating hours for the business.
Each weekday can contain no more than two time ranges. Ranges must not overlap.
Value/Type: object
holidayHours
Special hours for the business. This typically includes holiday hours and other times outside of regular operating hours. These hours override regular business hours.
This field can only be set if business hours are specified.
Value/Type: array
reopenDate
Reopen date of the business. Must be in the "yyyy-mm-dd" format, after the current date, and before 2038-01-01.
Use this field if your business is temporarily closed or seasonal.
Value/Type: string
curl -L -X PUT 'https://api.semrush.com/apis/v4-raw/listing-management/v1/external/locations/17dd19a1408d48fbb125a117ff3fa79d' -H 'Content-Type: application/json' -H 'Authorization: Bearer YOUR_TOKEN' -d '{
"locationName": "Some location name",
"phone": "+12096438343",
"region": "OH",
"websiteUrl": "https://www.test.com",
"zip": "43103",
"additionalAddressInfo": "3 floor",
"address": "82 Cromley St",
"city": "Ashville",
"businessHours": {
"monday": [
{
"from": "00:00",
"to": "00:00"
}
],
"tuesday": [
{
"from": "13:00",
"to": "14:00"
},
{
"from": "15:00",
"to": "01:00"
}
],
"wednesday": [
{
"from": "06:00",
"to": "00:00"
}
],
"thursday": [
{
"from": "09:00",
"to": "17:00"
}
],
"friday": [
{
"from": "09:00",
"to": "17:00"
},
{
"from": "19:00",
"to": "19:30"
}
],
"saturday": [
{
"from": "09:00",
"to": "16:00"
},
{
"from": "17:00",
"to": "18:00"
}
],
"sunday": [
{
"from": "12:00",
"to": "14:00"
}
]
},
"holidayHours": [
{
"type": "CLOSED",
"day": "2024-11-26"
},
{
"type": "RANGE",
"day": "2024-11-24",
"times": [
{
"from": "10:00",
"to": "12:00"
},
{
"from": "13:00",
"to": "15:00"
}
]
}
],
"reopenDate": "2025-01-01"
}'{
"data": {
"id": "17dd19a1408d48fbb125a117ff3fa79d",
"locationName": "Some location name",
"phone": "+12096438343",
"region": "OH",
"status": "COMPLETE",
"websiteUrl": "https://www.test.com",
"zip": "43103",
"additionalAddressInfo": "3 floor",
"address": "82 Cromley St",
"city": "Ashville",
"countryCode": "US",
"businessHours": {
"monday": [
{
"from": "00:00",
"to": "00:00"
}
],
"tuesday": [
{
"from": "13:00",
"to": "14:00"
},
{
"from": "15:00",
"to": "01:00"
}
],
"wednesday": [
{
"from": "06:00",
"to": "00:00"
}
],
"thursday": [
{
"from": "09:00",
"to": "17:00"
}
],
"friday": [
{
"from": "09:00",
"to": "17:00"
},
{
"from": "19:00",
"to": "19:30"
}
],
"saturday": [
{
"from": "09:00",
"to": "16:00"
},
{
"from": "17:00",
"to": "18:00"
}
],
"sunday": [
{
"from": "12:00",
"to": "14:00"
}
]
},
"holidayHours": [
{
"type": "RANGE",
"day": "day": "2024-11-24",
"times": [
{
"from": "10:00",
"to": "12:00"
},
{
"from": "13:00",
"to": "15:00"
}
]
},
{
"type": "CLOSED",
"day": "2024-11-26"
}
],
"reopenDate": "2025-01-01",
"errors": [
{
"code": "G_020",
"message": "Some location business information can't be processed by Google."
}
]
},
"requested": "api-flb-718c4b47eed5c20965a85df5183fba9a"
}curl -L -X PUT 'https://api.semrush.com/apis/v4-raw/listing-management/v1/external/locations/17dd19a1408d48fbb125a117ff3fa79d' -H 'Content-Type: application/json' -H 'Authorization: Bearer YOUR_TOKEN' -d '{
"locationName": "Some location name",
"phone": "+12096438343",
"region": "OH",
"websiteUrl": "https://www.test.com",
"zip": "43103",
"additionalAddressInfo": "3 floor",
"address": "82 Cromley St",
"city": "Ashville",
"businessHours": {
"monday": [
{
"from": "00:00",
"to": "00:00"
}
],
"tuesday": [
{
"from": "13:00",
"to": "14:00"
},
{
"from": "15:00",
"to": "01:00"
}
],
"wednesday": [
{
"from": "06:00",
"to": "00:00"
}
],
"thursday": [
{
"from": "09:00",
"to": "17:00"
}
],
"friday": [
{
"from": "09:00",
"to": "17:00"
},
{
"from": "19:00",
"to": "19:30"
}
],
"saturday": [
{
"from": "09:00",
"to": "16:00"
},
{
"from": "17:00",
"to": "18:00"
}
],
"sunday": [
{
"from": "12:00",
"to": "14:00"
}
]
},
"holidayHours": [
{
"type": "CLOSED",
"day": "2024-11-26",
"times": [
{
"from": "10:00",
"to": "12:00"
},
{
"from": "15:00",
"to": "18:00"
}
]
},
{
"type": "RANGE",
"day": "2024-11-24",
"times": [
{
"from": "10:00",
"to": "12:00"
},
{
"from": "15:00",
"to": "18:00"
},
{
"from": "19:00",
"to": "21:00"
},
{
"from": "22:00",
"to": "00:00"
}
]
}
], "reopenDate": "2025-01-01"
}'{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid data provided.",
"details": [
{
"code": "TIMES_NOT_ALLOWED",
"message": "Operation hours shouldn't be set.",
"field": "holidayHours.times",
"index": "0"
},
{
"code": "TIMES_TOO_MANY_RANGES",
"message": "Only three time ranges can be set.",
"field": "holidayHours.times",
"index": "1"
}
]
},
"requestId": "api-flb-fb27c729b51e658d4a4984716df00a77"
}curl -L -X PUT 'https://api.semrush.com/apis/v4-raw/listing-management/v1/external/locations/17dd19a1408d48fbb125a117ff3fa79d' -H 'Content-Type: application/json' -H 'Authorization: Bearer YOUR_TOKEN' -d '{
"locationName": "Some location name",
"phone": "+12096438343",
"region": "OH",
"websiteUrl": "https://www.test.com",
"zip": "43103",
"additionalAddressInfo": "3 floor",
"address": "82 Cromley St",
"city": "Ashville",
"businessHours": {
"monday": [
{
"from": "00:00",
"to": "00:00"
}
],
"tuesday": [
{
"from": "13:00",
"to": "14:00"
},
{
"from": "15:00",
"to": "01:00"
}
],
"wednesday": [
{
"from": "06:00",
"to": "00:00"
}
],
"thursday": [
{
"from": "09:00",
"to": "17:00"
}
],
"friday": [
{
"from": "09:00",
"to": "17:00"
},
{
"from": "19:00",
"to": "19:30"
}
],
"saturday": [
{
"from": "09:00",
"to": "16:00"
},
{
"from": "17:00",
"to": "18:00"
}
],
"sunday": [
{
"from": "12:00",
"to": "14:00"
}
]
},
"holidayHours": [
{
"type": "CLOSED",
"day": "2024-11-26"
},
{
"type": "RANGE",
"day": "2024-11-24",
"times": [
{
"from": "10:00",
"to": "12:00"
},
{
"from": "13:00",
"to": "15:00"
}
]
}
],
"reopenDate": "2025-01-01"
}'{
"code": 401,
"message": "Unauthorized"
}Jump to UpdateLocationsUpdateLocations
Update up to 50 locations at a time. You can only execute one such request at a time, making up to 5 requests per minute. The API is available on the Local Pro plan and requires a Bearer Token. Learn more ›
Note that if the request is unsuccessful, the response format may vary. For more details, refer to the request/response examples.
Each location ID in the request must be unique.
If some of the specified locations fail to update, the corresponding part of the response will indicate this. Updates for other locations will not be canceled and may still complete successfully. However, you should pay close attention to the response body, as the HTTP status code will still be 200.
Requests to this method don’t use up API units.
Jump to EndpointEndpoint
Request Parameters
locations Required
The locations you need to update.
Value/Type: array
curl -L -X PUT "https://api.semrush.com/listing-management/v1/external/locations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"locations": [
{
"id": "6fb03fd6c3a943a489df2c7060218911",
"locationName": "Some location name",
"phone": "+12096438343",
"region": "OH",
"websiteUrl": "https://www.test.com",
"zip": "43103",
"additionalAddressInfo": "3 floor",
"address": "82 Cromley St",
"city": "Ashville",
"businessHours": {
"monday": [
{
"from": "00:00",
"to": "00:00"
}
],
"tuesday": [
{
"from": "13:00",
"to": "14:00"
},
{
"from": "15:00",
"to": "01:00"
}
],
"wednesday": [
{
"from": "06:00",
"to": "00:00"
}
],
"thursday": [
{
"from": "09:00",
"to": "17:00"
}
],
"friday": [
{
"from": "09:00",
"to": "17:00"
},
{
"from": "19:00",
"to": "19:30"
}
],
"saturday": [
{
"from": "09:00",
"to": "16:00"
},
{
"from": "17:00",
"to": "18:00"
}
],
"sunday": [
{
"from": "12:00",
"to": "14:00"
}
]
},
"holidayHours": [
{
"type": "CLOSED",
"day": "2024-11-26"
},
{
"type": "RANGE",
"day": "2024-11-24",
"times": [
{
"from": "10:00",
"to": "12:00"
},
{
"from": "13:00",
"to": "15:00"
}
]
}
],
"reopenDate": "2025-01-01"
},
{
"id": "17dd19a1408d48fbb125a117ff3fa79d",
"locationName": "Another location name",
"phone": "+12096438345",
"region": "OH",
"websiteUrl": "https://www.test2.com",
"zip": "43103",
"additionalAddressInfo": "4 floor",
"address": "86 Cromley St",
"city": "Ashville"
}
]
}'{
"data": [
{
"locationId": "6fb03fd6c3a943a489df2c7060218911",
"state": "FAILED",
"error": {
"code": "BAD_REQUEST",
"message": "Invalid state of resource.",
"details": [
{
"code": "LOCATION_HAS_NOT_COMPLETE_STATUS",
"message": "Location is not in complete status."
}
]
}
},
{
"locationId": "17dd19a1408d48fbb125a117ff3fa79d",
"state": "UPDATED"
}
],
"requestId": "api-flb-35ad65c07818d19a7e2f5f150fc124cd"
}curl -L -X PUT "https://api.semrush.com/listing-management/v1/external/locations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"locations": [
{
"id": "6fb03fd6c3a943a489df2c7060218911",
"locationName": "Some location name",
"phone": "+12096438343",
"region": "OH",
"websiteUrl": "https://www.test.com",
"zip": "43103",
"additionalAddressInfo": "3 floor",
"address": "82 Cromley St",
"city": "Ashville",
"reopenDate": "2025-01-01"
},
{
"id": "6fb03fd6c3a943a489df2c7060218911",
"locationName": "Another location name",
"phone": "+12096438345",
"region": "OH",
"websiteUrl": "https://www.test2.com",
"zip": "43103",
"additionalAddressInfo": "4 floor",
"address": "86 Cromley St",
"city": "Ashville"
}
]
}'{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid state of resource.",
"details": [
{
"code": "LOCATIONS_ARE_NOT_UNIQUE",
"message": "The locations are not unique. There are several locations with this ID: 6fb03fd6c3a943a489df2c7060218911."
}
]
},
"requestId": "api-flb-ec33fa653e6734980500d561b6aa3d32"
}curl -L -X PUT "https://api.semrush.com/listing-management/v1/external/locations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"locations": [
{
"id": "6fb03fd6c3a943a489df2c7060218911",
"locationName": "Some location name",
"phone": "+12096438343",
"region": "OH",
"websiteUrl": "https://www.test.com",
"zip": "43103",
"additionalAddressInfo": "3 floor",
"address": "82 Cromley St",
"city": "Ashville",
"reopenDate": "2025-01-01"
}
]
}'{
"code": 401,
"message": "Unauthorized"
}curl -L -X PUT "https://api.semrush.com/listing-management/v1/external/locations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"locations": [
{
"id": "6fb03fd6c3a943a489df2c7060218911",
"locationName": "Some location name",
"phone": "+12096438343",
"region": "OH",
"websiteUrl": "https://www.test.com",
"zip": "43103",
"additionalAddressInfo": "3 floor",
"address": "82 Cromley St",
"city": "Ashville",
"reopenDate": "2025-01-01"
}
]
}'{
"code": 429,
"message": "rate limit exceeded"
}Last updated: January 26, 2026