Attention: v4.7 of the API has released! See change log. Posts related to COVID-19 are still temporarily permitted for chains.

Add Services

Businesses can add services they provide to their GMB listings. This could include services provided within a store or those offered at customer locations.

Eligibility and Format

Not all businesses can add services to their GMB listing. To check the eligibilty, check the state of canModifyServiceList in LocationState.

A service is represented as a ServiceItem, which supports the following two formats:

  • StructuredServiceItem: Google's predefined services can be represented as a StructuredServiceItem, which contains a serviceTypeId.
  • FreeFormServiceItem: To offer custom services, use a FreeFormServiceItem which contains a Label.

Listing predefined services by category name

To search for predefined services under a category by category name, use categories.list. A request for all categories that includes the name salon in Singapore is shown in the following Request section.

Request

The CategoryView must be set to FULL.

HTTP
GET https://mybusiness.googleapis.com/v4/categories?regionCode=SG&languageCode=EN&searchTerm=salon&view=FULL

Response

The following partial response returns all supported ServiceTypes.

{
    "categories": [
        {
            "displayName": "Hairdresser",
            "categoryId": "gcid:hair_salon",
            "serviceTypes": [
                {
                    "serviceTypeId": "job_type_id:body_waxing",
                    "displayName": "Body Waxing"
                },
                {
                    "serviceTypeId": "job_type_id:hair_coloring",
                    "displayName": "Hair coloring"
                },
                {
                    "serviceTypeId": "job_type_id:hair_extensions",
                    "displayName": "Hair extensions"
                },
                {
                    "serviceTypeId": "job_type_id:hair_styling",
                    "displayName": "Hair styling"
                },
                {
                    "serviceTypeId": "job_type_id:manicures",
                    "displayName": "Manicures"
                },
                {
                    "serviceTypeId": "job_type_id:pedicures",
                    "displayName": "Pedicures"
                }
            ]
        }
}

List predefined services by category ID

To search for predefined services by specific category ID, use categories.batchGet. A request for details under the category ID gcid:electrician in the United States is shown in the following Request section.

Request

The CategoryView must be set to FULL.

HTTP
GET https://mybusiness.googleapis.com/v4/categories:batchGet?regionCode=US&languageCode=en&categoryIds=gcid:electrician&view=FULL

Response

The response contains all supported ServiceTypes for gcid:electrician.

{
    "categories": [
        {
            "displayName": "Electrician",
            "categoryId": "gcid:electrician",
            "serviceTypes": [
                {
                    "serviceTypeId": "job_type_id:construction",
                    "displayName": "Construction"
                },
                {
                    "serviceTypeId": "job_type_id:electric_car_charger",
                    "displayName": "Install electric car charger"
                },
                {
                    "serviceTypeId": "job_type_id:electrician_remodeling",
                    "displayName": "Remodeling"
                },
                {
                    "serviceTypeId": "job_type_id:general_repairs",
                    "displayName": "General repairs"
                },
                {
                    "serviceTypeId": "job_type_id:install_fan",
                    "displayName": "Install fan"
                },
                {
                    "serviceTypeId": "job_type_id:install_ground_wire",
                    "displayName": "Install ground wire"
                },
                {
                    "serviceTypeId": "job_type_id:install_light_fixtures",
                    "displayName": "Install light fixtures"
                },
                {
                    "serviceTypeId": "job_type_id:install_outdoor_lighting",
                    "displayName": "Install outdoor lighting"
                },
                {
                    "serviceTypeId": "job_type_id:install_outlets_switches",
                    "displayName": "Install outlets or switches"
                },
                {
                    "serviceTypeId": "job_type_id:install_security_system",
                    "displayName": "Install security system"
                },
                {
                    "serviceTypeId": "job_type_id:installation",
                    "displayName": "Installation"
                },
                {
                    "serviceTypeId": "job_type_id:relocate_outlets_switches",
                    "displayName": "Relocate outlets or switches"
                },
                {
                    "serviceTypeId": "job_type_id:repair_fan",
                    "displayName": "Repair fan"
                },
                {
                    "serviceTypeId": "job_type_id:repair_light_fixtures",
                    "displayName": "Repair light fixtures"
                },
                {
                    "serviceTypeId": "job_type_id:repair_outlets_switches",
                    "displayName": "Repair outlets or switches"
                },
                {
                    "serviceTypeId": "job_type_id:repair_panel",
                    "displayName": "Repair panel"
                },
                {
                    "serviceTypeId": "job_type_id:replace_upgrade_panel",
                    "displayName": "Replace or upgrade panel"
                },
                {
                    "serviceTypeId": "job_type_id:restore_power",
                    "displayName": "Restore power"
                }
            ]
        }
    ]
}

List existing services in a listing

To get a current list of services, use locations.getServiceList.

Request

HTTP
GET https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/serviceList

Response

Below is a sample response

{
    "serviceItems": [
        {
            "structuredServiceItem": {
                "serviceTypeId": "job_type_id:hair_coloring"
            }
        },
        {
            "isOffered": true,
            "structuredServiceItem": {
                "serviceTypeId": "job_type_id:hair_styling"
            }
        },
        {
            "isOffered": true,
            "freeFormServiceItem": {
                "categoryId": "gcid:barber_shop",
                "label": {
                    "displayName": "Student Cuts"
                }
            }
        }
    ]
}

Set services for a listing

To update services, use locations.updateServiceList and updateMask=serviceItems. Updating individual services is not supported.

To set services with a StructuredServiceItem and a FreeFormServiceItem, see the following example:

HTTP
PATCH
https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/serviceList?updateMask=serviceItems
{
   "serviceItems":[
      {
         "isOffered":false,
         "structuredServiceItem":{
            "serviceTypeId":"job_type_id:hair_coloring"
         }
      },
      {
         "isOffered":true,
         "structuredServiceItem":{
            "serviceTypeId":"job_type_id:hair_styling"
         }
      },
      {
         "isOffered":true,
         "freeFormServiceItem":{
            "categoryId":"gcid:hair_salon",
            "label":{
               "displayName":"Student Cuts"
            }
         }
      }
   ]
}