Skip to main content

POST/bulk_publish_offer

Note: Each listing can be revised up to 250 times in one calendar day. If this revision threshold is reached, the seller will be blocked from revising the item until the next calendar day.
This call is used to convert unpublished offers (up to 25) into published offers, or live eBay listings. The unique identifier (offerId) of each offer to publish is passed into the request payload. It is possible that some unpublished offers will be successfully created into eBay listings, but others may fail. The response payload will show the results for each offerId value that is passed into the request payload. The errors and warnings containers will be returned for an offer that had one or more issues being published.

Important!Publish offer note: Fields may be optional or conditionally required when calling the create or update methods, but become required when publishing the offer to create active listings. For this method, see Offer fields for a list of fields required to publish an offer.


For those who prefer to publish one offer per call, the publishOffer method can be used instead. In the case of a multiple-variation listing, the publishOfferByInventoryItemGroup call should be used instead, as this call will convert all unpublished offers associated with an inventory item group into a multiple-variation listing.

Input

Resource URI

POST https://api.ebay.com/sell/inventory/v1/bulk_publish_offer

This method is supported in Sandbox environment. To access the endpoint, just replace the api.ebay.com root URI with api.sandbox.ebay.com

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.

The table below shows additional HTTP request headers that are either required, conditionally required, or strongly recommended for this method. Other standard HTTP request headers- opens rest request components page (not in this table) can also be used, but they are optional.

HeaderTypeDescription
Content-TypestringThis header indicates the format of the request body provided by the client. Its value should be set to application/json.

For more information, refer to HTTP request headers.

Occurrence: Required

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.inventory

See OAuth access tokens for more information.

Request payload

Copy complete valid JSON to clipboard
{ /* BulkOffer */
"requests" : []
}

Request fields

Input container/fieldTypeDescription
requestsarray of OfferKeyWithId

This container is used to pass in an array of offers to publish. Up to 25 offers can be published with one bulkPublishOffer method.

Occurrence: Required

requests.offerIdstring

The unique identifier of an unpublished offer for which expected listing fees will be retrieved. One to 250 offerId values can be passed in to the offers container for one getListingFees call.

Use the getOffers method to retrieve offer IDs.

Note: Errors will occur if offerId values representing published offers are passed in.

Occurrence: Required

Output

HTTP response headers

This call has no response headers.

Response payload

Response fields

Output container/fieldTypeDescription
responsesarray of OfferResponseWithListingId

A node is returned under the responses container to indicate the success or failure of each offer that the seller was attempting to publish.

Occurrence: Always

responses.errorsarray of ErrorDetailV3

This container will be returned if there were one or more errors associated with publishing the offer.

Occurrence: Conditional

responses.errors.categorystring

This string value indicates the error category. There are three categories of errors: request errors, application errors, and system errors.

Occurrence: Conditional

responses.errors.domainstring

The name of the domain in which the error or warning occurred.

Occurrence: Conditional

responses.errors.errorIdinteger

A unique code that identifies the particular error or warning that occurred. Your application can use error codes as identifiers in your customized error-handling algorithms.

Occurrence: Conditional

responses.errors.inputRefIdsarray of string

An array of one or more reference IDs which identify the specific request element(s) most closely associated to the error or warning, if any.

Occurrence: Conditional

responses.errors.longMessagestring

A detailed description of the condition that caused the error or warning, and information on what to do to correct the problem.

Occurrence: Conditional

responses.errors.messagestring

A description of the condition that caused the error or warning.

Occurrence: Conditional

responses.errors.outputRefIdsarray of string

An array of one or more reference IDs which identify the specific response element(s) most closely associated to the error or warning, if any.

Occurrence: Conditional

responses.errors.parametersarray of ErrorParameterV3

Various warning and error messages return one or more variables that contain contextual information about the error or waring. This is often the field or value that triggered the error or warning.

Occurrence: Conditional

responses.errors.parameters.namestring

This type contains the name and value of an input parameter that contributed to a specific error or warning condition.

Occurrence: Conditional

responses.errors.parameters.valuestring

This is the actual value that was passed in for the element specified in the name field.

Occurrence: Conditional

responses.errors.subdomainstring

The name of the subdomain in which the error or warning occurred.

Occurrence: Conditional

responses.listingIdstring

The unique identifier of the newly-created eBay listing. This field is only returned if the seller successfully published the offer and created the new eBay listing.

Occurrence: Conditional

responses.offerIdstring

The unique identifier of the offer that the seller published (or attempted to publish).

Occurrence: Always

responses.statusCodeinteger

The HTTP status code returned in this field indicates the success or failure of publishing the offer specified in the offerId field. See the HTTP status codes table to see which each status code indicates.

Occurrence: Always

responses.warningsarray of ErrorDetailV3

This container will be returned if there were one or more warnings associated with publishing the offer.

Occurrence: Conditional

responses.warnings.categorystring

This string value indicates the error category. There are three categories of errors: request errors, application errors, and system errors.

Occurrence: Conditional

responses.warnings.domainstring

The name of the domain in which the error or warning occurred.

Occurrence: Conditional

responses.warnings.errorIdinteger

A unique code that identifies the particular error or warning that occurred. Your application can use error codes as identifiers in your customized error-handling algorithms.

Occurrence: Conditional

responses.warnings.inputRefIdsarray of string

An array of one or more reference IDs which identify the specific request element(s) most closely associated to the error or warning, if any.

Occurrence: Conditional

responses.warnings.longMessagestring

A detailed description of the condition that caused the error or warning, and information on what to do to correct the problem.

Occurrence: Conditional

responses.warnings.messagestring

A description of the condition that caused the error or warning.

Occurrence: Conditional

responses.warnings.outputRefIdsarray of string

An array of one or more reference IDs which identify the specific response element(s) most closely associated to the error or warning, if any.

Occurrence: Conditional

responses.warnings.parametersarray of ErrorParameterV3

Various warning and error messages return one or more variables that contain contextual information about the error or waring. This is often the field or value that triggered the error or warning.

Occurrence: Conditional

responses.warnings.parameters.namestring

This type contains the name and value of an input parameter that contributed to a specific error or warning condition.

Occurrence: Conditional

responses.warnings.parameters.valuestring

This is the actual value that was passed in for the element specified in the name field.

Occurrence: Conditional

responses.warnings.subdomainstring

The name of the subdomain in which the error or warning occurred.

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
500Internal Server Error

Error codes

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

CodeDomainCategoryMeaning
25001API_INVENTORYAPPLICATIONAny System error. {additionalInfo}
25002API_INVENTORYREQUESTAny User error. {additionalInfo}
25003API_INVENTORYREQUESTInvalid price. {additionalInfo}
25004API_INVENTORYREQUESTInvalid quantity. {additionalInfo}
25005API_INVENTORYREQUESTInvalid category. {additionalInfo}
25006API_INVENTORYREQUESTInvalid listing option. {additionalInfo}
25007API_INVENTORYREQUESTInvalid Shipping policy information. {additionalInfo}
25008API_INVENTORYREQUESTInvalid Payment policy information. {additionalInfo}
25009API_INVENTORYREQUESTInvalid Return policy information. {additionalInfo}
25011API_INVENTORYREQUESTInvalid tax information. {additionalInfo}
25012API_INVENTORYREQUESTInvalid location. {additionalInfo}
25013API_INVENTORYREQUESTInvalid InventoryItemGroup information. {additionalInfo}
25014API_INVENTORYREQUESTInvalid pictures. {additionalInfo}
25015API_INVENTORYREQUESTInvalid picture URL. {additionalInfo}
25016API_INVENTORYREQUESTInvalid {fieldName}. {additionalInfo}
25017API_INVENTORYREQUESTMissing field {fieldName}. {additionalInfo}
25018API_INVENTORYREQUESTIncomplete account information. {additionalInfo}
25019API_INVENTORYREQUESTCannot revise listing. {additionalInfo}
25020API_INVENTORYREQUESTInvalid package details. {additionalInfo}
25021API_INVENTORYREQUESTInvalid condition information. {additionalInfo}
25022API_INVENTORYREQUESTInvalid attribute. {fieldName}
25023API_INVENTORYREQUESTInvalid compatibility information. {additionalInfo}
25025API_INVENTORYAPPLICATIONConcurrent access of Inventory or InventoryItemGroup. Please try again later
25026API_INVENTORYREQUESTSelling limits exceeded. {additionalInfo}
25029API_INVENTORYREQUEST{field} is required for this category.
25031API_INVENTORYREQUEST{field} is not valid and needs to be a number between {min} and {max}
25032API_INVENTORYREQUEST{field} is not valid
25034API_INVENTORYREQUESTOnly {max value} policies can be specified
25035API_INVENTORYREQUESTThe specified policy is not found for the market place
25036API_INVENTORYREQUESTThe policy(ies) {PolicyId} is not of type {PolicyEnum}
25038API_INVENTORYREQUEST{ItemId} cannot be revised if the item has a bid or a best offer or is ending within 12 hours
25039API_INVENTORYREQUEST{ItemId} cannot be revised if the item has a bid or a best offer and is ending within 12 hours
25040API_INVENTORYREQUEST{ItemId} cannot be revised if the item has a bid or a best offer and is ending within 12 hours
25041API_INVENTORYREQUESTWhen listing an item with Refurbished condition, maximum handling time must be {replaceable_value} business day(s).
25042API_INVENTORYREQUESTWhen listing an item with Refurbished condition, free shipping must be provided.
25043API_INVENTORYREQUESTWhen listing an item with Refurbished condition, returns must be accepted.
25044API_INVENTORYREQUESTWhen listing an item with Refurbished condition, refund must be provided as Money Back.
25045API_INVENTORYREQUESTWhen listing an item with Refurbished condition, the minimum time you'll accept returns must be {replaceable_value} days.
25046API_INVENTORYREQUESTWhen listing an item with Refurbished condition, seller must pay the cost for return shipping.
25047API_INVENTORYREQUESTSeller is not eligible to use Refurbished Item Condition
25048API_INVENTORYREQUESTSeller is not eligible to use Refurbished Item Condition in this Category
25049API_INVENTORYREQUESTSeller is not eligible to use Refurbished Item Condition for the selected Brand
25050API_INVENTORYREQUESTWhen listing an item with Refurbished condition, {replaceable_value} cannot be used in the Title.
25051API_INVENTORYREQUESTWhen listing an item with Refurbished condition, {replaceable_value} cannot be used in the Subtitle
25052API_INVENTORYREQUESTWhen listing an item with Refurbished condition, at least {replaceable_value} images must be provided
25076API_INVENTORYREQUEST{replaceable_value} ID(s) {replaceable_value} not found. Please use valid ID(s).
25077API_INVENTORYREQUESTDuplicate Regulatory ID(s) {replaceable_value} sent in the request. Duplicate ID(s) have been ignored.
25078API_INVENTORYREQUESTHazmat structure incorrect for {replaceable_value}.
25079API_INVENTORYREQUESTRepair score invalid. Repair score must be in the range from {replaceable_value} to {replaceable_value} with one decimal place.
25080API_INVENTORYREQUESTThe value of the {0} field is invalid. Field must not exceed {replaceable_value} characters.
25081API_INVENTORYREQUESTHazardous material information incomplete. Your listing must include pictograms, hazardous statements and a signal word.
25083API_INVENTORYREQUESTEnergy efficiency image is missing. Image is required with image description.
25084API_INVENTORYREQUESTThe listing must have both an energy efficiency label and a product information sheet.
25086API_INVENTORYREQUESTThe URL provided must be an eBay Picture Service URL.
25088API_INVENTORYREQUESTThe email address provided is formatted incorrectly.
25089API_INVENTORYREQUESTNo more than {replaceable_value} global compliance policies allowed. Excess policies ignored.
25090API_INVENTORYREQUESTNo more than {replaceable_value} compliance policies per region allowed. Excess policies ignored.
25091API_INVENTORYREQUESTNo more than a total of {replaceable_value} compliance policies allowed. Excess policies ignored.
25092API_INVENTORYREQUESTNo more than {replaceable_value} global takeback policy allowed.
25093API_INVENTORYREQUESTNo more than {replaceable_value} takeback policy per region allowed. Excess policies ignored.
25094API_INVENTORYREQUESTNo more than a total of {replaceable_value} takeback policies allowed.
25095API_INVENTORYREQUESTRegion invalid for regional custom policy. Regions allowed are {replaceable_value}.
25104API_INVENTORYREQUESTRegulatory document ID(s) {replaceable_value} not found. Please use valid ID(s).
25106API_INVENTORYREQUESTRegulatory document structure incorrect. Max allowed number of entries is {replaceable_value}.
25107API_INVENTORYREQUESTInvalid document state for ID(s) {replaceable_value}. Documents must be in the SUBMITTED or ACCEPTED state.
25108API_INVENTORYREQUESTProduct Safety structure incorrect for {replaceable_value}. Max allowed number of entries is {replaceable_value}.
25109API_INVENTORYREQUESTProduct Safety information incomplete. Your listing must include product safety pictograms & statements.
25110API_INVENTORYREQUESTManufacturer address information is incomplete. When providing the address, please provide the street, city, postal code and country
25111API_INVENTORYREQUESTManufacturer information is incomplete. Please provide the company name.
25112API_INVENTORYREQUESTResponsible Person structure incorrect for {replaceable_value}. Max allowed number of entries is {replaceable_value}.
25113API_INVENTORYREQUESTResponsible Person address information is incomplete. When providing the address, please provide the street, city, postal code and country
25114API_INVENTORYREQUESTResponsible Person information is incomplete. Please provide the company name.
25115API_INVENTORYREQUESTEither the Manufacturer or at least one of the Responsible Persons must be located in the EU.
25116API_INVENTORYREQUESTPlease provide a minimum of {replaceable_value} and a maximum of {replaceable_value} types for a Responsible Person.
25118API_INVENTORYREQUESTSeller must provide at least one form of contact info for Manufacturer - either phone, email or address.
25119API_INVENTORYREQUESTSeller must provide at least one form of contact info for Responsible Person - either phone, email or address.
25601API_INVENTORYREQUESTInvalid attribute. {fieldName}
25604API_INVENTORYREQUESTInput error. {additionalInfo}
25709API_INVENTORYREQUESTInvalid offerId
25713API_INVENTORYREQUESTThis Offer is not available : {additionalInfo}.
25730API_INVENTORYREQUESTThe number of offers in the request cannot exceed {additionalInfo}.
25731API_INVENTORYREQUESTOfferId should be unique in the request.
25732API_INVENTORYREQUESTOffers associated with SKUs that are part of a variation group cannot be published using this endpoint.
25752API_INVENTORYREQUESTlistingStartDate provided is invalid.
25760API_INVENTORYREQUESTshipToLocationAvailability quantity insufficient to create auction listings.
25766API_INVENTORYREQUESTThe takeBackPolicyId field must be a long value type. Please correct the error.
25767API_INVENTORYREQUESTThe productCompliancePolicyId field must be a long value type. Please correct the error.

Warnings

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

CodeDomainCategoryMeaning
25028API_INVENTORYREQUEST{field} is not applicable and has been dropped
25030API_INVENTORYREQUEST{field} is not applicable for the condition and has been dropped
25033API_INVENTORYREQUESTDuplicate policy IDs found
25037API_INVENTORYREQUESTItem level Eco Participation Fee will be ignored
25401API_INVENTORYAPPLICATIONInvalid listing options removed. {additionalInfo}
25402API_INVENTORYAPPLICATIONSystem warning. {additionalInfo}
25753API_INVENTORYREQUESTlistingStartDate is in the past or the offer is live. Value is not updated on the listing.

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: Bulk Publish Offers

This example will convert two unpublished eBay offers into live eBay listings.

Input

The unique identifiers (offerId) of the two unpublished offers that are to be converted into live eBay listings are passed into the request payload.

POSThttps://api.ebay.com/sell/inventory/v1/bulk_publish_offer

Output

If the call is successful, two new eBay listings will be created. If a listing is successfully created for an offer, a statusCode value of 200 is returned for the offerId, along with an eBay-generated listingId value, which is the identifier of the listing (e.g. Item ID).