Listing Management

Jump to Create LocationCreate Location

Create a location.

To verify a request without applying changes, use the validate_only parameter. When set to true, the API performs validation but does not persist data updates or consume your Pro limit.

Jump to EndpointEndpoint

POSThttps://api.semrush.com/apis/v4/local/v1/locations

Request Parameters

validate_only

Set to false by default. If set to true, the system validates the data without applying any changes.

Value/Type: boolean

business_nameRequired

The official public name of the business.

Max. length is 125 characters.

Value/Type: string

phone_numberRequired

The primary contact phone number for the business.

International format is required. For example: "+49 351 8629318", "+1 541-754-3010"

Value/Type: string

countryRequired

The 2-letter country code where the business is located, as defined by ISO 3166-1 code reference (column Alpha-2 code).

Supported values: US, AU, FR, DE, GB, CA, IN, ES, IT, NL, BR, AT, BE, DK, FI, NO, PL, SE, CH, JP, MX, IL, NZ, SG, ZA, TR, AE, HK, ID, VN, PK, CO, IE, BD, MY, SA, RO, CL, PH, PT, NG, GR, TH, AR, PE, KE, HU, CZ, RS, NP, LT, UA, BG, EC, CY, HR, EE, LV, IS, SK, SI, AM, AD, PY, GY, EG, MV, UY, SR, KH, BO, LA, MT, PA, PR, TN, DO, MN, GU, VE, ME, MP The list of supported countries will be increased in the future.

Value/Type: string

region

The highest administrative subdivision for postal addresses in a country or region. For example, a state, province, oblast, or prefecture. Specifically, for Spain this is the province rather than the autonomous community (for example, "Barcelona" instead of "Catalonia"). Many countries do not use administrative areas in postal addresses.

Required for Canada, Australia, Brazil, India, and US.

Value/Type: string

cityRequired

The city or locality name.

Max. length is 64 characters.

Value/Type: string

zip

The postal or ZIP code.

Required for the following countries: US, AU, FR, DE, GB, CA, IN, ES, IT, NL, BR, AT, BE, DK, FI, NO, PL, SE, CH, JP, MX, IL, NZ, SG, ZA, TR, ID, VN, PK, CO, IE, BD, MY, SA, RO, CL, PH, PT, NG, GR, TH, AR, PE, KE, HU, CZ, RS, NP, LT, UA, BG, EC, CY, HR, EE, LV, IS, SK, SI, AM, AD, PY, EG, MV, UY, KH, LA, MT, PA, PR, TN, DO, MN, GU, VE, ME, MP

Value/Type: string

address_line_1Required

Street address, including house number and street name.

Max. length is 190 characters.

Value/Type: string

address_line_2

Supplemental address information (for example, suite, floor, or building).

Max. length is 64 characters.

Value/Type: string

website_url

The URL for the business. Must start with http:// or https://. If possible, use a URL specific to this location rather than a generic brand website.

Max. length is 255 characters.

Value/Type: string

description

A detailed description of the business and its services.

Min. length is 10 characters. Max. length is 750 characters.

Value/Type: string

business_hours

Standard weekly operating hours.

Each weekday can contain no more than two time ranges. Ranges must not overlap.

Value/Type: object

special_hours

Exceptions to regular hours, such as holidays or temporary closures. This field can only be set if business hours are specified. These hours override regular business hours.

Max. 30 entries.

Value/Type: array of objects

service_area_places

Service area businesses provide services at the customer’s location.

Value/Type: array of objects

category_idsRequired

A list of category identifiers (max. 10) that describe the business and help customers find relevant services.

Identifiers must be retrieved from the Get Categories endpoint.

Value/Type: array of strings

suppress_address

If set to true, the physical address is hidden from public listings and search results. If the address is hidden, service_area_places must be populated to define the business’s geographic reach.

Value/Type: boolean

coordinates

Exact geographic coordinates for the location.

Value/Type: object

featured_message

A promotional message or announcement displayed on the business profile.

Max. length is 50 characters.

Value/Type: string

featured_message_url

A call-to-action URL associated with the featured message.

Example: "https://www.semrush.com/local-business/start/"

Max. length is 255 characters.

Value/Type: string

youtube_video

URL of a YouTube video showcasing the business.

Example: "https://www.youtube.com/watch?v=ndJB4J951_k"

Max. length is 150 characters.

Value/Type: string

instagram_username

Instagram profile handle.

Example: semrush

Max. length is 30 characters.

Value/Type: string

twitter_username

X (formerly Twitter) profile handle.

Example: semrush

Max. length is 15 characters.

Value/Type: string

reopen_date

The date ("YYYY-MM-DD") when a temporarily closed location is scheduled to reopen. This must be a future date and is only applicable if the location status is set to temporarily closed.

Value/Type: string

Request example
curl -L 'https://api.semrush.com/apis/v4/local/v1/locations'
  -H 'Authorization: Apikey YOUR_API_KEY'
  -H 'Content-Type: application/json'
  -d '{
    "business_name":"Some business name",
    "phone_number":"+1 435 864 3376",
    "country":"US",
    "region":"UT",
    "city":"Delta",
    "zip":"84624",
    "address_line_1":"Naumburger Str.2",
    "address_line_2":"Second floor",
    "website_url":"www.test.com",
    "description":"Welcome to our Some business name!",
    "category_ids":["b871306d44c145a0b781ed2cb3b19bf1","909c2eebd4fb4b338937d8518a3f0d73"],
    "coordinates":{"latitude":39.35221240176079,
    "longitude":-112.57777149021301},
    "featured_message":"Call Today",
    "featured_message_url":"www.test.com",
    "youtube_video":"https://www.youtube.com/watch?v=nYykbUPQ9eo",
    "instagram_username":"some_instagram_username",
    "twitter_username":"some_x_username"
  }'
Response exampleJSON
{
  "meta": {
      "success": true,
      "status_code": 200,
      "request_id": "182d587194adf5096d1b6d5b309f164f"
  },
  "data": {
      "business_name": "Some business name",
      "phone_number": "+1 435 864 3376",
      "country": "US",
      "region": "UT",
      "city": "Delta",
      "zip": "84624",
      "address_line_1": "Naumburger Str.2",
      "address_line_2": "Second floor",
      "website_url": "www.test.com",
      "description": "Welcome to our Some business name!",
      "special_hours": [],
      "service_area_places": [],
      "category_ids": [
          "b871306d44c145a0b781ed2cb3b19bf1",
          "909c2eebd4fb4b338937d8518a3f0d73"
      ],
      "suppress_address": false,
      "coordinates": {
          "latitude": 39.35221240176079,
          "longitude": -112.57777149021301
      },
      "featured_message": "Call Today",
      "featured_message_url": "www.test.com",
      "youtube_video": "https://www.youtube.com/watch?v=nYykbUPQ9eo",
      "instagram_username": "some_instagram_username",
      "twitter_username": "some_x_username",
      "location_id": "1d21ceab55d740709311ec9b8a12c01e",
      "location_status": "PROCESSING",
      "submit_date": "2026-03-10T17:03:42.691",
      "errors": []
  }
}

Jump to Update LocationUpdate Location

Update a single location by its ID.

You must provide a non-empty update_mask parameter. To clear a field (set it to null), include the field name in the update_mask but omit it from the request body. To update a field with a specific value, include the field in both the update_mask and the request body.

If you want to verify the request without applying changes, use the validate_only parameter. When set to true, the API performs validation but does not persist any data updates.

Jump to EndpointEndpoint

PATCHhttps://api.semrush.com/apis/v4/local/v1/locations/:location_id

Request Parameters

update_maskRequired

Supported values: business_name, address_line_1, address_line_2, city, zip, phone_number, category_ids, region, featured_message, featured_message_url, website_url, description, instagram_username, twitter_username, business_hours, special_hours, service_area_places, suppress_address, coordinates, youtube_video, reopen_date

Specify each field you want to update as a value of the update_mask parameter. For example: update_mask=business_name,address_line_1.

Value/Type: array of strings

validate_only

Set to false by default. If set to true, the system validates the data without applying any changes.

Value/Type: boolean

business_name

The official public name of the business.

Max. length is 125 characters.

Value/Type: string

phone_number

The primary contact phone number for the business.

International format is required. For example: "+49 351 8629318", "+1 541-754-3010".

Value/Type: string

region

The highest administrative subdivision for postal addresses in a country or region. For example, a state, province, oblast, or prefecture. Specifically, for Spain this is the province rather than the autonomous community (for example, "Barcelona" instead of "Catalonia"). Many countries do not use administrative areas in postal addresses.

Required for Canada, Australia, Brazil, India, and US.

Value/Type: string

city

The city or locality name.

Max. length is 64 characters.

Value/Type: string

zip

The postal or ZIP code.

Required for the following countries: US, AU, FR, DE, GB, CA, IN, ES, IT, NL, BR, AT, BE, DK, FI, NO, PL, SE, CH, JP, MX, IL, NZ, SG, ZA, TR, ID, VN, PK, CO, IE, BD, MY, SA, RO, CL, PH, PT, NG, GR, TH, AR, PE, KE, HU, CZ, RS, NP, LT, UA, BG, EC, CY, HR, EE, LV, IS, SK, SI, AM, AD, PY, EG, MV, UY, KH, LA, MT, PA, PR, TN, DO, MN, GU, VE, ME, MP

Value/Type: string

address_line_1

Street address, including house number and street name.

Max. length is 190 characters.

Value/Type: string

address_line_2

Supplemental address information (for example, suite, floor, or building).

Max. length is 64 characters.

Value/Type: string

website_url

The URL for the business. Must start with http:// or https://. If possible, use a URL specific to this location rather than a generic brand website.

Max. length is 255 characters.

Value/Type: string

description

A detailed description of the business and its services.

Min. length is 10 characters. Max. length is 750 characters.

Value/Type: string

business_hours

Standard weekly operating hours.

Each weekday can contain no more than two time ranges. Ranges must not overlap.

Value/Type: object

special_hours

Exceptions to regular hours, such as holidays or temporary closures. This field can only be set if business hours are specified. These hours override regular business hours.

Max. 30 entries.

Value/Type: array of objects

service_area_places

Service area businesses provide services at the customer’s location.

Value/Type: array of objects

category_ids

A list of category identifiers (max. 10) that describe the business and help customers find relevant services.

Identifiers must be retrieved from the Get Categories endpoint.

Value/Type: array of strings

suppress_address

If set to true, the physical address is hidden from public listings and search results. If the address is hidden, service_area_places must be populated to define the business’s geographic reach.

Value/Type: boolean

coordinates

Exact geographic coordinates for the location.

Value/Type: object

featured_message

A promotional message or announcement displayed on the business profile.

Max. length is 50 characters.

Value/Type: string

featured_message_url

A call-to-action URL associated with the featured message.

Example: "https://www.semrush.com/local-business/start/"

Max. length is 255 characters.

Value/Type: string

youtube_video

URL of a YouTube video showcasing the business.

Example: "https://www.youtube.com/watch?v=ndJB4J951_k"

Max. length is 150 characters.

Value/Type: string

instagram_username

Instagram profile handle.

Example: semrush

Max. length is 30 characters.

Value/Type: string

twitter_username

X (formerly Twitter) profile handle.

Example: semrush

Max. length is 15 characters.

Value/Type: string

reopen_date

The date ("YYYY-MM-DD") when a temporarily closed location is scheduled to reopen. This must be a future date and is only applicable if the location status is set to temporarily closed.

Value/Type: string

Request example
curl -L -X PATCH 'https://api.semrush.com/apis/v4/local/v1/locations/04f447bda9f845d691fb4cc37daba031?update_mask=address_line_1,business_name,address_line_2'
  -H 'Content-Type: application/json'
  -H 'Authorization: Apikey YOUR_API_KEY'
  -d '{
    "business_name":"Updated business name",
    "address_line_1":"Naumburger Str."
  }'
Response exampleJSON
{
  "meta": {
      "success": true,
      "status_code": 200,
      "request_id": "9d55854e927ecaea7d80707cc8282189"
  },
  "data": {
      "business_name": "Updated business name",
      "phone_number": "+1 222-666-1111",
      "country": "US",
      "region": "CA",
      "city": "New Brettmouth",
      "zip": "08527",
      "address_line_1": "Naumburger Str.",
      "website_url": "www.test.com",
      "description": "Some description here",
      "special_hours": [],
      "service_area_places": [
          {
              "name": "17763",
              "place_id": "DJYLLjkCOgvNiWDFEeiPIhXcAFpKRCJSGjsFdeV"
          },
          {
              "name": "North Many",
              "place_id": "AJfjhjLYkPiHljnHruSOntPsMLvsNthJqycYbSX"
          },
          {
              "name": "West Bradley",
              "place_id": "nYUkPeFsrTzygxnKapBRoBolALdaBxnqLyVhBRe"
          }
      ],
      "category_ids": [
          "42e91d12d5dd45029c709f223545abd5"
      ],
      "suppress_address": false,
      "coordinates": {
          "latitude": -6.761864717379694,
          "longitude": 13.537953520639036
      },
      "instagram_username": "some_user",
      "twitter_username": "some_user",
      "location_id": "04f447bda9f845d691fb4cc37daba031",
      "location_status": "COMPLETED",
      "submit_date": "2026-03-03T11:44:43.19",
      "errors": []
  }
}

Jump to Get LocationGet Location

Get a single location by its ID.

Jump to EndpointEndpoint

GEThttps://api.semrush.com/apis/v4/local/v1/locations/:location_id

Request Parameters

location_idRequired

Path parameter. The unique identifier for this location.

Value/Type: string

Request example
curl -L 'https://api.semrush.com/apis/v4/local/v1/locations/3e8d046f62fe4b73802112e138a78532'
  -H 'Authorization: Apikey YOUR_API_KEY'
Response exampleJSON
{
  "meta": {
      "success": true,
      "status_code": 200,
      "request_id": "fc8e2dd369a9ed46f93ebffd9660afa0"
  },
  "data": {
      "business_name": "Delta Manor Apartments",
      "phone_number": "+1 435 864 3376",
      "country": "US",
      "region": "UT",
      "city": "Delta",
      "zip": "84624",
      "address_line_1": "111 W Main St, Delta, UT 84624, United States",
      "address_line_2": "Second floor",
      "website_url": "www.test.com",
      "description": "Welcome to our Some business name!",
      "business_hours": {
          "monday_hours": [
              {
                  "from": "08:00",
                  "to": "12:00"
              },
              {
                  "from": "14:00",
                  "to": "18:00"
              }
          ],
          "tuesday_hours": [
              {
                  "from": "08:00",
                  "to": "12:00"
              },
              {
                  "from": "14:00",
                  "to": "18:00"
              }
          ],
          "wednesday_hours": [
              {
                  "from": "08:00",
                  "to": "12:00"
              },
              {
                  "from": "14:00",
                  "to": "18:00"
              }
          ],
          "thursday_hours": [
              {
                  "from": "08:00",
                  "to": "12:00"
              },
              {
                  "from": "14:00",
                  "to": "18:00"
              }
          ],
          "friday_hours": [
              {
                  "from": "08:00",
                  "to": "12:00"
              },
              {
                  "from": "14:00",
                  "to": "18:00"
              }
          ],
          "saturday_hours": [
              {
                  "from": "08:00",
                  "to": "14:00"
              }
          ],
          "sunday_hours": []
      },
      "special_hours": [
          {
              "type": "CLOSED",
              "day": "2026-05-01",
              "times": []
          },
          {
              "type": "OPENED_ALL_DAY",
              "day": "2026-12-24",
              "times": []
          },
          {
              "type": "RANGE",
              "day": "2026-03-11",
              "times": [
                  {
                      "from": "14:00",
                      "to": "18:00"
                  }
              ]
          }
      ],
      "service_area_places": [
          {
              "name": "Delta, UT, USA",
              "place_id": "ChIJQRRb_PG0TIcRwoI8h4xTvTM"
          },
          {
              "name": "UT, USA",
              "place_id": "ChIJzfkTj8drTIcRP0bXbKVK370"
          }
      ],
      "category_ids": [
          "b871306d44c145a0b781ed2cb3b19bf1",
          "909c2eebd4fb4b338937d8518a3f0d73"
      ],
      "suppress_address": true,
      "coordinates": {
          "latitude": 39.35221240176079,
          "longitude": -112.57777149021301
      },
      "featured_message": "Call Today",
      "featured_message_url": "www.test.com",
      "youtube_video": "https://www.youtube.com/watch?v=nYykbUPQ9eo",
      "instagram_username": "some_instagram_username",
      "twitter_username": "some_x_username",
      "location_id": "6d6ac5e772284c569c6ca109008b4c4f",
      "location_status": "COMPLETED",
      "submit_date": "2025-08-14T15:57:56.414",
      "errors": []
  }
}

Jump to Get LocationsGet Locations

Get a paginated list of all locations.

Jump to EndpointEndpoint

GEThttps://api.semrush.com/apis/v4/local/v1/locations

Request Parameters

location_statuses

Supported values: "COMPLETED", "PROCESSING", "FAILED" Filter locations by status.

Value/Type: array of strings

limit

The maximum number of locations to be returned in a single paginated response.

Default is 50. Max. is 50.

Value/Type: integer

offset

The starting point for the subset of records to be returned.

Default is 0.

Value/Type: integer

Request example
curl -L 'https://api.semrush.com/apis/v4/local/v1/locations?location_statuses=COMPLETED,FAILED&limit=10&offset=10'
  -H 'Authorization: Apikey YOUR_API_KEY'
Response exampleJSON
{
  "meta": {
      "success": true,
      "status_code": 200,
      "request_id": "94ea05c2c3f903450236cd4f36023631"
  },
  "data": [
      {
          "business_name": "Some business name",
          "phone_number": "+1 112-330-1303",
          "country": "US",
          "region": "TX",
          "city": "Austin",
          "zip": "78731",
          "address_line_1": "3305 Northland",
          "special_hours": [],
          "service_area_places": [],
          "category_ids": [
              "c8124a0c01554493a645a58bb1fd9247",
              "ee5ecf6d8dc14797b750e97f75b03e4f",
              "79ece4794d46492f8e936516001abace"
          ],
          "suppress_address": false,
          "coordinates": {
              "latitude": 30.334286,
              "longitude": -97.7568222
          },
          "featured_message": "Call Today",
          "instagram_username": "some_username",
          "twitter_username": "some_username",
          "location_id": "b326158fb2a24777a76575b1883923e6",
          "location_status": "COMPLETED",
          "submit_date": "2026-02-16T14:38:14.57",
          "errors": []
      },
      {
          "business_name": "Another business name",
          "phone_number": "+357 16 932379",
          "country": "CY",
          "city": "Paphos",
          "zip": "8040",
          "address_line_1": "Apostolou Pavlou Avenue 99",
          "website_url": "https://some-website.com/",
          "description": "Established in 1954, Another Business Name remains a cornerstone of the domestic ball-bearing and gasket distribution industry.",
          "business_hours": {
              "monday_hours": [
                  {
                      "from": "09:00",
                      "to": "17:00"
                  }
              ],
              "tuesday_hours": [],
              "wednesday_hours": [],
              "thursday_hours": [],
              "friday_hours": [],
              "saturday_hours": [],
              "sunday_hours": []
          },
          "special_hours": [],
          "service_area_places": [],
          "category_ids": [
              "3e25b0338cf94ad8bd1c7d5a28140b65"
          ],
          "suppress_address": false,
          "coordinates": {
              "latitude": 34.7851347,
              "longitude": 32.4174674
          },
          "location_id": "15b4a2871cc14dda9fc448aed4060171",
          "location_status": "COMPLETED",
          "submit_date": "2026-02-03T12:03:05.301",
          "errors": []
      }
  ]
}

Jump to Get CategoriesGet Categories

Get a paginated list of business categories for a specific country.

Jump to EndpointEndpoint

GEThttps://api.semrush.com/apis/v4/local/v1/categories

Request Parameters

countryRequired

Filter categories by country.

Value/Type: string

limit

The maximum number of categories to be returned in a single paginated response.

Default is 1000. Max. is 1000.

Value/Type: integer

offset

The starting point for the subset of records to be returned.

Default is 0.

Value/Type: integer

Request example
curl -L 'https://api.semrush.com/apis/v4/local/v1/categories?country=CZ&limit=1000&offset=1000'
 -H 'Authorization: Apikey YOUR_API_KEY'
Response exampleJSON
{
  "meta": {
      "success": true,
      "status_code": 200,
      "request_id": "c2ad517a4e341f07b543f0f68477e9fa"
  },
  "data": [
      {
          "id": "46e6afbab7cd408bae8d392184a5627e",
          "name": "Marble supplier",
          "full_name": "Businesses and Services > Supplier > Marble supplier",
          "parent_id": "12898ed82f5849b1abb684887b82b464"
      },
      {
          "id": "836dca5e11c546c49eb8802e9efe2d54",
          "name": "Metal industry suppliers",
          "full_name": "Businesses and Services > Supplier > Metal industry suppliers",
          "parent_id": "12898ed82f5849b1abb684887b82b464"
      },
      {
          "id": "90d3ba25b03f4e13bb1ef77d9097a025",
          "name": "Metal detecting equipment supplier",
          "full_name": "Businesses and Services > Supplier > Metal detecting equipment supplier",
          "parent_id": "12898ed82f5849b1abb684887b82b464"
      }
  ]
}

Last updated: March 26, 2026

Was this page helpful?