---
title: "Replace services"
method: PUT
path: "/v1/accounts/{accountId}/gmb-services"
tags: ["GMB Services"]
---

# Replace services

`PUT /v1/accounts/{accountId}/gmb-services`

Replaces the entire service list for a location.
Google's API requires full replacement; individual item updates are not supported.
Each service can be structured (using a predefined serviceTypeId) or free-form (custom label).

## Path parameters

- `accountId` string, required

## Query parameters

- `locationId` string

## Request body

- object
  - `serviceItems` object[], required
    - `structuredServiceItem` object — Exactly one of structuredServiceItem or freeFormServiceItem is required per item (enforced server-side; not modeled as oneOf because required-only oneOf branches break SDK generators).
      - `serviceTypeId` string, required
      - `description` string
    - `freeFormServiceItem` object
      - `category` string, required
      - `label` object, required
        - `displayName` string, required
        - `description` string
        - `languageCode` string
    - `price` object
      - `currencyCode` string
      - `units` string
      - `nanos` integer

## Response `200`

Services updated successfully

- object
  - `success` boolean
  - `services` object[]

## Other responses

- `400` — Invalid request
- `401` — Unauthorized

---

[API](https://skmtc.net/zernio/apis/zernio-api.md) · [All operations](https://skmtc.net/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zernio/zernio-api/revisions/5bcceb4c15ba/schema)
