# Update a Service Item

Make changes to a service item.
<br> Always use ?identifier= in url param to identify the service item uniquely.
<br>Any blank parameter deletes an old value, any unspecified parameter does nothing

Endpoint: PATCH /service-items/{id}
Version: 20260701
Security: X-API-KEY, Authorization

## Path parameters:

  - `id` (string, required)
    The uberall unique ID for the service item you want to update

## Request fields (application/json):

  - `title` (string, required)
    Name of the service item as represented at the location

  - `description` (string)
    A description of the service

  - `identifier` (string)
    Required - A unique identifier for this service

  - `listName` (string)

  - `price` (integer)
    Minimum price of the service item. Amounts must be provided in the smallest valid unit of the respective currency (e.g., USD - cents, 10.99 USD → 1099).
See range interpretation rules under priceMax.

  - `currency` (string)
    The currency of price and priceMax for this service (required when a price is given).
Amounts for price fields must be expressed in the smallest valid unit of this currency (e.g., USD - cents).
    Example: USD

  - `url` (string)
    A valid page url with more details about the item.

  - `category` (integer)
    Business category the service should be applied to - this is required when applying a Google structured service but not necessary for freeform services.

  - `country` (string)
    The country where the locations providing this service are located - this is required when applying a Google structured service but not necessary for freeform services.

  - `googleService` (string)
    The Google name for a structured service - this is required when applying a Google structured service but not necessary for freeform services.

  - `priceMax` (integer)
    Maximum price for the item when using a price range. Amounts must be provided in the smallest valid unit of the respective currency (e.g., USD → cents).
Range interpretation rules:
- Exact: price == priceMax
- Starts At: priceMax == null (only minimum known)
- Range: price < priceMax (both known and different)
- Not Interpreted: price is null (minimum unknown)

Validation: if provided, priceMax must be a non-negative integer and greater than or equal to price.

  - `duration` (integer)
    Minimum duration of the service in minutes. See range interpretation rules under durationMax.

  - `durationMax` (integer)
    Maximum duration (in minutes) when using a duration range.
Range interpretation rules:
- Exact: duration == durationMax\n
- Starts At: durationMax == null (only minimum known)\n
- Range: duration < durationMax (both known and different)\n
- Not Interpreted: duration is null (minimum unknown)\n

Validation: if provided, durationMax must be a non-negative integer and greater than or equal to duration.

## Response 200 fields (*/*):

  - `status` (string, required)
    Enum: "SUCCESS", "PENDING", "QUOTA_LIMIT_EXCEED", "NOT_AUTHORIZED", "FORBIDDEN", "BAD_ACCESS_TOKEN", "BAD_PRIVATE_KEY", "BAD_PUBLIC_KEY", "MISSING_PARAMETER", "INVALID_PARAMETER", "WRONG_PARAMETER_TYPE", "CONFLICT", "RESOURCE_LOCKED", "SERVER_ERROR", "ERROR", "NOT_FOUND", "BAD_REQUEST", "USER_ERROR", "PARTIAL_ERROR", "SERVICE_TEMPORARILY_UNAVAILABLE"

  - `message` (string)
    (optional) Holds further information about the response

  - `warnings` (array)
    (optional) Holds further warnings

  - `response` (object, required)
    The actual response object of the response

## Response 400 fields (application/json):

  - `status` (string, required)
    Enum: "SUCCESS", "PENDING", "QUOTA_LIMIT_EXCEED", "NOT_AUTHORIZED", "FORBIDDEN", "BAD_ACCESS_TOKEN", "BAD_PRIVATE_KEY", "BAD_PUBLIC_KEY", "MISSING_PARAMETER", "INVALID_PARAMETER", "WRONG_PARAMETER_TYPE", "CONFLICT", "RESOURCE_LOCKED", "SERVER_ERROR", "ERROR", "NOT_FOUND", "BAD_REQUEST", "USER_ERROR", "PARTIAL_ERROR", "SERVICE_TEMPORARILY_UNAVAILABLE"

  - `message` (string)
    (optional) Holds further information about the response

  - `errorCode` (string)
    Enum: "NORMALIZATION_FAILED", "DATA_CORRUPTED", "INVALID_INPUT", "NOT_SYNCABLE", "PAYMENT_FAILED", "FREE_TIER_REACHED", "LIMIT_REACHED", "INACTIVE", "UNKNOWN", "IDENTIFIER_NOT_UNIQUE", "ACCOUNT_WAITING_FOR_AUTO_PAGE_SELECT", "NO_ACCOUNT_CONNECTED", "NO_PAGE_SELECTED", "PAGE_NOT_CREATED", "PAGE_IN_REVIEW", "PAGE_CLAIMED_BY_OTHERS", "OVERLAPPING_SOCIALPOST", "TOO_MANY_REPLIES", "REPLY_TOO_LONG", "DEPRECATED"

  - `response` (object)
    (optional) The actual response object of the response

## Response 401 fields (application/json):

  - `status` (string, required)
    Enum: "SUCCESS", "PENDING", "QUOTA_LIMIT_EXCEED", "NOT_AUTHORIZED", "FORBIDDEN", "BAD_ACCESS_TOKEN", "BAD_PRIVATE_KEY", "BAD_PUBLIC_KEY", "MISSING_PARAMETER", "INVALID_PARAMETER", "WRONG_PARAMETER_TYPE", "CONFLICT", "RESOURCE_LOCKED", "SERVER_ERROR", "ERROR", "NOT_FOUND", "BAD_REQUEST", "USER_ERROR", "PARTIAL_ERROR", "SERVICE_TEMPORARILY_UNAVAILABLE"

  - `message` (string)
    (optional) Holds further information about the response

  - `errorCode` (string)
    Enum: "NORMALIZATION_FAILED", "DATA_CORRUPTED", "INVALID_INPUT", "NOT_SYNCABLE", "PAYMENT_FAILED", "FREE_TIER_REACHED", "LIMIT_REACHED", "INACTIVE", "UNKNOWN", "IDENTIFIER_NOT_UNIQUE", "ACCOUNT_WAITING_FOR_AUTO_PAGE_SELECT", "NO_ACCOUNT_CONNECTED", "NO_PAGE_SELECTED", "PAGE_NOT_CREATED", "PAGE_IN_REVIEW", "PAGE_CLAIMED_BY_OTHERS", "OVERLAPPING_SOCIALPOST", "TOO_MANY_REPLIES", "REPLY_TOO_LONG", "DEPRECATED"

  - `response` (object)
    (optional) The actual response object of the response

## Response 403 fields (application/json):

  - `status` (string, required)
    Enum: "SUCCESS", "PENDING", "QUOTA_LIMIT_EXCEED", "NOT_AUTHORIZED", "FORBIDDEN", "BAD_ACCESS_TOKEN", "BAD_PRIVATE_KEY", "BAD_PUBLIC_KEY", "MISSING_PARAMETER", "INVALID_PARAMETER", "WRONG_PARAMETER_TYPE", "CONFLICT", "RESOURCE_LOCKED", "SERVER_ERROR", "ERROR", "NOT_FOUND", "BAD_REQUEST", "USER_ERROR", "PARTIAL_ERROR", "SERVICE_TEMPORARILY_UNAVAILABLE"

  - `message` (string)
    (optional) Holds further information about the response

  - `errorCode` (string)
    Enum: "NORMALIZATION_FAILED", "DATA_CORRUPTED", "INVALID_INPUT", "NOT_SYNCABLE", "PAYMENT_FAILED", "FREE_TIER_REACHED", "LIMIT_REACHED", "INACTIVE", "UNKNOWN", "IDENTIFIER_NOT_UNIQUE", "ACCOUNT_WAITING_FOR_AUTO_PAGE_SELECT", "NO_ACCOUNT_CONNECTED", "NO_PAGE_SELECTED", "PAGE_NOT_CREATED", "PAGE_IN_REVIEW", "PAGE_CLAIMED_BY_OTHERS", "OVERLAPPING_SOCIALPOST", "TOO_MANY_REPLIES", "REPLY_TOO_LONG", "DEPRECATED"

  - `response` (object)
    (optional) The actual response object of the response

## Response 404 fields (application/json):

  - `status` (string, required)
    Enum: "SUCCESS", "PENDING", "QUOTA_LIMIT_EXCEED", "NOT_AUTHORIZED", "FORBIDDEN", "BAD_ACCESS_TOKEN", "BAD_PRIVATE_KEY", "BAD_PUBLIC_KEY", "MISSING_PARAMETER", "INVALID_PARAMETER", "WRONG_PARAMETER_TYPE", "CONFLICT", "RESOURCE_LOCKED", "SERVER_ERROR", "ERROR", "NOT_FOUND", "BAD_REQUEST", "USER_ERROR", "PARTIAL_ERROR", "SERVICE_TEMPORARILY_UNAVAILABLE"

  - `message` (string)
    (optional) Holds further information about the response

  - `errorCode` (string)
    Enum: "NORMALIZATION_FAILED", "DATA_CORRUPTED", "INVALID_INPUT", "NOT_SYNCABLE", "PAYMENT_FAILED", "FREE_TIER_REACHED", "LIMIT_REACHED", "INACTIVE", "UNKNOWN", "IDENTIFIER_NOT_UNIQUE", "ACCOUNT_WAITING_FOR_AUTO_PAGE_SELECT", "NO_ACCOUNT_CONNECTED", "NO_PAGE_SELECTED", "PAGE_NOT_CREATED", "PAGE_IN_REVIEW", "PAGE_CLAIMED_BY_OTHERS", "OVERLAPPING_SOCIALPOST", "TOO_MANY_REPLIES", "REPLY_TOO_LONG", "DEPRECATED"

  - `response` (object)
    (optional) The actual response object of the response

## Response 409 fields (application/json):

  - `status` (string, required)
    Enum: "SUCCESS", "PENDING", "QUOTA_LIMIT_EXCEED", "NOT_AUTHORIZED", "FORBIDDEN", "BAD_ACCESS_TOKEN", "BAD_PRIVATE_KEY", "BAD_PUBLIC_KEY", "MISSING_PARAMETER", "INVALID_PARAMETER", "WRONG_PARAMETER_TYPE", "CONFLICT", "RESOURCE_LOCKED", "SERVER_ERROR", "ERROR", "NOT_FOUND", "BAD_REQUEST", "USER_ERROR", "PARTIAL_ERROR", "SERVICE_TEMPORARILY_UNAVAILABLE"

  - `message` (string)
    (optional) Holds further information about the response

  - `errorCode` (string)
    Enum: "NORMALIZATION_FAILED", "DATA_CORRUPTED", "INVALID_INPUT", "NOT_SYNCABLE", "PAYMENT_FAILED", "FREE_TIER_REACHED", "LIMIT_REACHED", "INACTIVE", "UNKNOWN", "IDENTIFIER_NOT_UNIQUE", "ACCOUNT_WAITING_FOR_AUTO_PAGE_SELECT", "NO_ACCOUNT_CONNECTED", "NO_PAGE_SELECTED", "PAGE_NOT_CREATED", "PAGE_IN_REVIEW", "PAGE_CLAIMED_BY_OTHERS", "OVERLAPPING_SOCIALPOST", "TOO_MANY_REPLIES", "REPLY_TOO_LONG", "DEPRECATED"

  - `response` (object)
    (optional) The actual response object of the response

