Skip to main content

POST/bulk_create_negative_keyword

Note: This is a Limited ReleaseLimited Release API service that is available only to select partners who have been approved for the eBay Promoted Listings Advanced (PLA) program. For details about how to request access to this program, see Promoted Listings Advanced Access Requests in the Promoted Listings Playbook.
This method adds negative keywords, in bulk, to an existing ad group in a PLA campaign that uses the Cost Per Click (CPC) funding model.

Specify the campaignId and adGroupId in the request body, along with the negativeKeywordText and negativeKeywordMatchType.

Call the getCampaigns method to retrieve a list of current campaign IDs for a specified seller.

Input

Resource URI (production)

POST https://api.ebay.com/sell/marketing/v1/bulk_create_negative_keyword

URI parameters

This method has no URI parameters.

HTTP request headers

All requests made to eBay REST operations require you to provide the Authorization HTTP header for authentication authorization.

In addition, this method requires you to include the Content-Type header and its value should be set to "application/json". See HTTP request headers- opens rest request components page for details.

OAuth scope

This request requires an access token created with the authorization code grant flow, using one or more scopes from the following list (please check your Application Keys page for a list of OAuth scopes available to your application):

https://api.ebay.com/oauth/api_scope/sell.marketing

See OAuth access tokens for more information.

Request payload

Copy complete valid JSON to clipboard

Request fields

Input container/fieldTypeDescription
requestsarray of CreateNegativeKeywordRequest

This array is used to pass in multiple negative keywords for one or more ad groups that belong to a campaign that uses the Cost Per Click (CPC) funding model.

Occurrence: Required

requests.adGroupIdstring

This adGroupId is created when an ad group is first created and associated with a campaign. This is the ad group to which the corresponding negative keyword will be added.

Note: You can call the getAdGroups method to retrieve the ad group IDs for a seller.

Required if the negative keyword is being created at the ad group level.

Occurrence: Conditional

requests.campaignIdstring

A unique eBay-assigned ID for a campaign. This ID is generated when a campaign is created.

Required if the negative keyword is being created at the ad group level.

Occurrence: Conditional

requests.negativeKeywordMatchTypeNegativeKeywordMatchTypeEnum

A field that defines the match type for the negative keyword.

Note: Broad matching of negative keywords is not currently supported.
Valid Values:

  • EXACT
  • PHRASE

Occurrence: Required

requests.negativeKeywordTextstring

The negative keyword text.

Occurrence: Required

Output

HTTP response headers

This call has no response headers.

Response payload

Response fields

Output container/fieldTypeDescription
responsesarray of NegativeKeywordResponse

A list of negative keywords that have been processed by the request.

Occurrence: Conditional

responses.adGroupIdstring

A unique identifier for an ad group that is generated when an ad group is first created and associated with a campaign.

Occurrence: Conditional

responses.campaignIdstring

A unique eBay-assigned ID for a campaign. This ID is generated when a campaign is created.

Occurrence: Conditional

responses.errorsarray of ErrorDetailV3

This container will be returned if there is an issue creating the corresponding negative keyword.

Occurrence: Conditional

responses.errors.categorystring

The category type for this error or warning. It takes an ErrorCategory object which can have one of three values:

  • Application: Indicates an exception or error occurred in the application code or at runtime. Examples include catching an exception in a service's business logic, system failures, or request errors from a dependency.
  • Business: Used when your service or a dependent service refused to continue processing on the resource because of a business rule violation such as "Seller does not ship item to Antarctica" or "Buyer ineligible to purchase an alcoholic item". Business errors are not syntactical input errors.
  • Request: Used when there is anything wrong with the request, such as authentication, syntactical errors, rate limiting or missing headers, bad HTTP header values, and so on.

Occurrence: Conditional

responses.errors.domainstring

Name of the domain containing the service or application.

Occurrence: Conditional

responses.errors.errorIdinteger

A positive integer that uniquely identifies the specific error condition that occurred. Your application can use error codes as identifiers in your customized error-handling algorithms.

Occurrence: Conditional

responses.errors.inputRefIdsarray of string

Identifies specific request elements associated with the error, if any. inputRefId's response is format specific. For JSON, use JSONPath notation.

Occurrence: Conditional

responses.errors.longMessagestring

An expanded version of message that should be around 100-200 characters long, but is not required to be such.

Occurrence: Conditional

responses.errors.messagestring

An end user and app developer friendly device agnostic message. It explains what the error or warning is, and how to fix it (in a general sense). Its value is at most 50 characters long. If applicable, the value is localized in the end user's requested locale.

Occurrence: Conditional

responses.errors.outputRefIdsarray of string

Identifies specific response elements associated with the error, if any. Path format is the same as inputRefId.

Occurrence: Conditional

responses.errors.parametersarray of ErrorParameterV3

This optional complex field type contains a list of one or more context-specific ErrorParameter objects, with each item in the list entry being a parameter (or input field name) that caused an error condition. Each ErrorParameter object consists of two fields, a name and a value.

Occurrence: Conditional

responses.errors.parameters.namestring

Name of the entity that threw the error.

Occurrence: Conditional

responses.errors.parameters.valuestring

A description of the error.

Occurrence: Conditional

responses.errors.subdomainstring

Name of the domain's subsystem or subdivision. For example, checkout is a subdomain in the buying domain.

Occurrence: Conditional

responses.hrefstring

The URI for the negative keyword, which is used to retrieve the negative keyword. This URI will be returned for each successfully created negative keyword.

Occurrence: Conditional

responses.negativeKeywordIdstring

A unique eBay-assigned ID for a negative keyword. This negative keyword ID will be generated for each successfully created negative keyword.

Occurrence: Conditional

responses.negativeKeywordMatchTypeNegativeKeywordMatchTypeEnum

The match type for the negative keyword.

Note: Broad matching of negative keywords is not currently supported.
Valid Values:

  • EXACT
  • PHRASE

Occurrence: Conditional

responses.negativeKeywordTextstring

The text for the negative keyword.

Occurrence: Conditional

responses.statusCodeinteger

The status of the request to create a negative keyword. This field indicates whether the process was successful or not.

Occurrence: Conditional

HTTP status codes

This call can return one of the following HTTP status codes. For an overview of the status codes, see HTTP status codes in Using eBay RESTful APIs.

StatusMeaning
200Success
207Multi Status
400Bad Request
403Forbidden
409Business error
500Internal Server error

Error codes

For more on errors, plus the codes of other common errors, see Handling errors.

CodeDomainCategoryMeaning
35001API_MARKETINGAPPLICATIONThere was a problem with an eBay internal system or process. Contact eBay Developer Technical Support for assistance.
35033API_MARKETINGREQUESTAt least one request is required for bulk requests.
35035API_MARKETINGREQUESTThe campaign with campaign id {campaign_id} has ended.
35045API_MARKETINGREQUESTNo campaign found for campaign id {campaign_id}.
35089API_MARKETINGBUSINESSWe are currently testing a premium ads product with a small invite-only group. We will share more information when we are ready to expand.
36210API_MARKETINGREQUESTNo ad group found for ad group id {ad_group_id}.
36219API_MARKETINGREQUESTThe ad group with ad group id {ad_group_id} has been archived.
36323API_MARKETINGREQUEST'negativeKeywordText' {negativeKeywordText} and 'negativeKeywordMatchType' {negativeKeywordMatchType} already exists for this Campaign.
36330API_MARKETINGREQUESTThe provided negative keyword match type is not supported. Valid values are: {negativeKeywordMatchTypeValues}.
36331API_MARKETINGREQUEST'negativeKeywordText' {negativeKeywordText} and 'negativeKeywordMatchType' {negativeKeywordMatchType} already exists for this Ad Group.
36332API_MARKETINGREQUEST'negativeKeywordText' {negativeKeywordText} cannot be more than {maxNegativeKeywordTextLength} characters.
36333API_MARKETINGREQUEST'negativeKeywordText' cannot be null or empty
36334API_MARKETINGREQUEST'negativeKeywordText' contains invalid characters {invalidCharacters}
36335API_MARKETINGREQUESTYou have exceeded the maximum number of negative keyword for an ad group. Only {maxSupportedNegativeKeywordNumber} Ids are supported per ad group.
36336API_MARKETINGREQUEST'negativeKeywordText' {negativeKeywordText} cannot have total number of words more than {maxWordsInNegativeKeyword} words.
36337API_MARKETINGREQUESTYou have exceeded the maximum number of negative keyword requests in a bulk. Only {maxSupportedNegativeKeywordRequestNumberInBulk} Ids are supported per call.
36338API_MARKETINGREQUESTThere are duplicate 'negativeKeywordText' and 'negativeKeywordMatchType' combination in this request. You must remove the duplicate(s).
36339API_MARKETINGREQUESTTotal negative keyword requests exceed the current AdGroup negative keyword capacity, which is {maxSupportedNegativeKeywordRequestNumber}.
36345API_MARKETINGREQUEST'campaignId' and 'adGroupId' are required.
36346API_MARKETINGREQUESTYou have exceeded the maximum number of negative keyword for a campaign. Only {maxSupportedNegativeKeywordNumberCampaign} Ids are supported per campaign.

Warnings

This call has no warnings.

Samples

New to making API calls? Please see Making a Call.

Note: Identifiers, such as order IDs or user IDs, and personal data in these samples might be anonymized or may no longer be active on eBay. If necessary, substitute current, relevant eBay data in your requests.

Sample 1: Create Negative Keywords in Bulk

This example creates negative keywords, in bulk, for a Promoted Listings Advanced (PLA) ad campaign.

Input

The inputs for this sample are the campaignId, adGroupId, negativeKeywordText, and negativeKeywordMatchType, all passed in the request body.

POSThttps://api.ebay.com/sell/marketing/v1/bulk_create_negative_keyword

Output

If the call is successful, the details for the newly-created negative keywords (such as the negative keyword IDs and statuses) are returned.