---
title: "POST /v23/customers/{+customerId}/customInterests:mutate"
method: POST
path: "/v23/customers/{+customerId}/customInterests:mutate"
tags: ["customers"]
---

# POST /v23/customers/{+customerId}/customInterests:mutate

`POST /v23/customers/{+customerId}/customInterests:mutate`

Creates or updates custom interests. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CriterionError]() [CustomInterestError]() [HeaderError]() [InternalError]() [MutateError]() [PolicyViolationError]() [QuotaError]() [RequestError]() [StringLengthError]()

## Path parameters

- `customerId` string, required

## Request body

- GoogleAdsSearchads360V23ServicesMutateCustomInterestsRequest — Request message for CustomInterestService.MutateCustomInterests.
  - `operations` GoogleAdsSearchads360V23ServicesCustomInterestOperation[] — Required. The list of operations to perform on individual custom interests.
    - `updateMask` string, google-fieldmask — FieldMask that determines which resource fields are modified in an update.
    - `create` GoogleAdsSearchads360V23ResourcesCustomInterest — A custom interest. This is a list of users by interest.
      - `id` string, int64 — Output only. Id of the custom interest.
      - `description` string — Description of this custom interest audience.
      - `status` 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'REMOVED' — Status of this custom interest. Indicates whether the custom interest is enabled or removed.
      - `type` 'UNSPECIFIED' | 'UNKNOWN' | 'CUSTOM_AFFINITY' | 'CUSTOM_INTENT' — Type of the custom interest, CUSTOM_AFFINITY or CUSTOM_INTENT. By default the type is set to CUSTOM_AFFINITY.
      - `members` GoogleAdsSearchads360V23ResourcesCustomInterestMember[] — List of custom interest members that this custom interest is composed of. Members can be added during CustomInterest creation. If members are presented in UPDATE operation, existing members will be overridden.
        - `memberType` 'UNSPECIFIED' | 'UNKNOWN' | 'KEYWORD' | 'URL' — The type of custom interest member, KEYWORD or URL.
        - `parameter` string — Keyword text when member_type is KEYWORD or URL string when member_type is URL.
      - `name` string — Name of the custom interest. It should be unique across the same custom affinity audience. This field is required for create operations.
      - `resourceName` string — Immutable. The resource name of the custom interest. Custom interest resource names have the form: `customers/{customer_id}/customInterests/{custom_interest_id}`
    - `update` GoogleAdsSearchads360V23ResourcesCustomInterest — A custom interest. This is a list of users by interest.
      - `id` string, int64 — Output only. Id of the custom interest.
      - `description` string — Description of this custom interest audience.
      - `status` 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'REMOVED' — Status of this custom interest. Indicates whether the custom interest is enabled or removed.
      - `type` 'UNSPECIFIED' | 'UNKNOWN' | 'CUSTOM_AFFINITY' | 'CUSTOM_INTENT' — Type of the custom interest, CUSTOM_AFFINITY or CUSTOM_INTENT. By default the type is set to CUSTOM_AFFINITY.
      - `members` GoogleAdsSearchads360V23ResourcesCustomInterestMember[] — List of custom interest members that this custom interest is composed of. Members can be added during CustomInterest creation. If members are presented in UPDATE operation, existing members will be overridden.
        - `memberType` 'UNSPECIFIED' | 'UNKNOWN' | 'KEYWORD' | 'URL' — The type of custom interest member, KEYWORD or URL.
        - `parameter` string — Keyword text when member_type is KEYWORD or URL string when member_type is URL.
      - `name` string — Name of the custom interest. It should be unique across the same custom affinity audience. This field is required for create operations.
      - `resourceName` string — Immutable. The resource name of the custom interest. Custom interest resource names have the form: `customers/{customer_id}/customInterests/{custom_interest_id}`
  - `validateOnly` boolean — If true, the request is validated but not executed. Only errors are returned, not results.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/searchads360.md) · [All operations](https://skmtc.net/google/apis/searchads360/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/searchads360/versions/40d087435afd/schema)
