<!--
{
  "availability" : [
    "Search Ads: 5.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Apple_Ads",
  "identifier" : "/documentation/apple_ads/Create-Targeting-Keywords",
  "metadataVersion" : "0.1.0",
  "role" : "Web Service Endpoint",
  "symbol" : {
    "kind" : "Web Service Endpoint",
    "modules" : [
      "Apple Ads"
    ],
    "preciseIdentifier" : "rest:apple_ads:post:v5-campaigns-{}-adgroups-{}-targetingkeywords-bulk"
  },
  "title" : "Create Targeting Keywords"
}
-->

# Create Targeting Keywords

Creates targeting keywords in ad groups.

## Overview> Note:
> If you create duplicate keywords, the payload response indicates an error, but the call returns with a 200 status code.

- 400: An invalid query or missing required parameters.
- 401: An unauthenticated call fails to get the requested response.
- 403: Insufficient rights to the resource.
- 404: The API can’t locate the resource.
- 429: The API calls exceed rate-limit thresholds. See the Rate Limits subsection of [Calling the Apple Ads API](/documentation/Apple_Ads/calling-the-apple-search-ads-api).
- 500: The Apple Ads server is temporarily down or unreachable. The request may be valid, but you need to retry it later.

## Discussion

Keywords must belong to a specific ad group, unlike negative keywords, which can belong to a campaign or an ad group.

To create targeting keywords, use the associated `campaignId` and `adgroupId` in the URI.

> Note:
> The limit is 5000 targeting keywords per campaign and per ad group.

### Payload example: Create ad group targeting keywords

**Request:**

```http
POST https://api.searchads.apple.com/api/v5/campaigns/{campaignId}/adgroups/{adgroupId}/targetingkeywords/bulk

[  
  {
    "text": "targeting keyword example 1",
    "matchType": "BROAD",
    "bidAmount": {
      "amount": "100",
      "currency": "USD"
    }
  },
  {
    "text": "targeting keyword example 2",
    "matchType": "EXACT",
    "bidAmount": {
      "amount": "100",
      "currency": "USD"
    }
  }
]
```

**Response:**

```json
[
  {
    "id": 542370642,
    "adGroupId": 427916203,
    "text": "targeting keyword example 1",
    "status": "ACTIVE",
    "matchType": "BROAD",
    "bidAmount": {
      "amount": "1.5",
      "currency": "USD"
    },
    "modificationTime": "2023-04-08T16:53:17.457",
    "deleted”: false
  },
  {
    "id": 542370642,
    "adGroupId": 427916203,
    "text": “targeting keyword example 2”,
    "status": “ACTIVE",
    "matchType": "EXACT",
    "bidAmount": {
      "amount": "2",
      "currency": "USD"
    },
    "modificationTime": "2024-04-08T16:53:17.468",
    "deleted": false
  }
]
```

### Payload example: Create ad group targeting keywords in a Maximize Conversions campaign

- `bidAmount` must be omitted, `null`, or `0`.
- Keywords cannot be created in automated ad groups.

**Request:**

```http
POST https://api.searchads.apple.com/api/v5/campaigns/{campaignId}/adgroups/{adgroupId}/targetingkeywords/bulk

[
  {
    "text": "travel",
    "matchType": "BROAD"
  },
  {
    "text": "flight",
    "matchType": "EXACT"
  }
]
```

**Response:**

```json
[
  {
    "id": 542370642,
    "adGroupId": 427916203,
    "text": "targeting keyword TripTrek 1",
    "status": "ACTIVE",
    "matchType": "BROAD",
    "bidAmount": {
      "amount": "0",
      "currency": "USD"
    },
    "modificationTime": "2025-04-08T16:53:17.457",
    "deleted”: false
  },
  {
    "id": 542370642,
    "adGroupId": 427916203,
    "text": “targeting keyword TripTrek 2”,
    "status": “ACTIVE",
    "matchType": "EXACT",
    "bidAmount": {
      "amount": "0",
      "currency": "USD"
    },
    "modificationTime": "2025-04-08T16:53:17.468",
    "deleted": false
  }
]
```

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)