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
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.
Header | Type | Description |
---|---|---|
Content-Type | string | This 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 clipboardRequest fields
Input container/field | Type | Description |
---|---|---|
requests | array 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.offerId | string | 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. Occurrence: Required |
Output
HTTP response headers
This call has no response headers.
Response payload
Response fields
Output container/field | Type | Description |
---|---|---|
responses | array 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.errors | array of ErrorDetailV3 | This container will be returned if there were one or more errors associated with publishing the offer. Occurrence: Conditional |
responses.errors.category | string | This string value indicates the error category. There are three categories of errors: request errors, application errors, and system errors. Occurrence: Conditional |
responses.errors.domain | string | The name of the domain in which the error or warning occurred. Occurrence: Conditional |
responses.errors.errorId | integer | 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.inputRefIds | array 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.longMessage | string | 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.message | string | A description of the condition that caused the error or warning. Occurrence: Conditional |
responses.errors.outputRefIds | array 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.parameters | array 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.name | string | 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.value | string | This is the actual value that was passed in for the element specified in the name field. Occurrence: Conditional |
responses.errors.subdomain | string | The name of the subdomain in which the error or warning occurred. Occurrence: Conditional |
responses.listingId | string | 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.offerId | string | The unique identifier of the offer that the seller published (or attempted to publish). Occurrence: Always |
responses.statusCode | integer | 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.warnings | array of ErrorDetailV3 | This container will be returned if there were one or more warnings associated with publishing the offer. Occurrence: Conditional |
responses.warnings.category | string | This string value indicates the error category. There are three categories of errors: request errors, application errors, and system errors. Occurrence: Conditional |
responses.warnings.domain | string | The name of the domain in which the error or warning occurred. Occurrence: Conditional |
responses.warnings.errorId | integer | 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.inputRefIds | array 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.longMessage | string | 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.message | string | A description of the condition that caused the error or warning. Occurrence: Conditional |
responses.warnings.outputRefIds | array 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.parameters | array 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.name | string | 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.value | string | This is the actual value that was passed in for the element specified in the name field. Occurrence: Conditional |
responses.warnings.subdomain | string | 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.
Status | Meaning |
---|---|
200 | Success |
207 | Multi-Status |
400 | Bad Request |
500 | Internal Server Error |
Error codes
For more on errors, plus the codes of other common errors, see Handling errors.
Code | Domain | Category | Meaning |
---|---|---|---|
25001 | API_INVENTORY | APPLICATION | Any System error. {additionalInfo} |
25002 | API_INVENTORY | REQUEST | Any User error. {additionalInfo} |
25003 | API_INVENTORY | REQUEST | Invalid price. {additionalInfo} |
25004 | API_INVENTORY | REQUEST | Invalid quantity. {additionalInfo} |
25005 | API_INVENTORY | REQUEST | Invalid category. {additionalInfo} |
25006 | API_INVENTORY | REQUEST | Invalid listing option. {additionalInfo} |
25007 | API_INVENTORY | REQUEST | Invalid Shipping policy information. {additionalInfo} |
25008 | API_INVENTORY | REQUEST | Invalid Payment policy information. {additionalInfo} |
25009 | API_INVENTORY | REQUEST | Invalid Return policy information. {additionalInfo} |
25011 | API_INVENTORY | REQUEST | Invalid tax information. {additionalInfo} |
25012 | API_INVENTORY | REQUEST | Invalid location. {additionalInfo} |
25013 | API_INVENTORY | REQUEST | Invalid InventoryItemGroup information. {additionalInfo} |
25014 | API_INVENTORY | REQUEST | Invalid pictures. {additionalInfo} |
25015 | API_INVENTORY | REQUEST | Invalid picture URL. {additionalInfo} |
25016 | API_INVENTORY | REQUEST | Invalid {fieldName}. {additionalInfo} |
25017 | API_INVENTORY | REQUEST | Missing field {fieldName}. {additionalInfo} |
25018 | API_INVENTORY | REQUEST | Incomplete account information. {additionalInfo} |
25019 | API_INVENTORY | REQUEST | Cannot revise listing. {additionalInfo} |
25020 | API_INVENTORY | REQUEST | Invalid package details. {additionalInfo} |
25021 | API_INVENTORY | REQUEST | Invalid condition information. {additionalInfo} |
25022 | API_INVENTORY | REQUEST | Invalid attribute. {fieldName} |
25023 | API_INVENTORY | REQUEST | Invalid compatibility information. {additionalInfo} |
25025 | API_INVENTORY | APPLICATION | Concurrent access of Inventory or InventoryItemGroup. Please try again later |
25026 | API_INVENTORY | REQUEST | Selling limits exceeded. {additionalInfo} |
25029 | API_INVENTORY | REQUEST | {field} is required for this category. |
25031 | API_INVENTORY | REQUEST | {field} is not valid and needs to be a number between {min} and {max} |
25032 | API_INVENTORY | REQUEST | {field} is not valid |
25034 | API_INVENTORY | REQUEST | Only {max value} policies can be specified |
25035 | API_INVENTORY | REQUEST | The specified policy is not found for the market place |
25036 | API_INVENTORY | REQUEST | The policy(ies) {PolicyId} is not of type {PolicyEnum} |
25038 | API_INVENTORY | REQUEST | {ItemId} cannot be revised if the item has a bid or a best offer or is ending within 12 hours |
25039 | API_INVENTORY | REQUEST | {ItemId} cannot be revised if the item has a bid or a best offer and is ending within 12 hours |
25040 | API_INVENTORY | REQUEST | {ItemId} cannot be revised if the item has a bid or a best offer and is ending within 12 hours |
25041 | API_INVENTORY | REQUEST | When listing an item with Refurbished condition, maximum handling time must be {replaceable_value} business day(s). |
25042 | API_INVENTORY | REQUEST | When listing an item with Refurbished condition, free shipping must be provided. |
25043 | API_INVENTORY | REQUEST | When listing an item with Refurbished condition, returns must be accepted. |
25044 | API_INVENTORY | REQUEST | When listing an item with Refurbished condition, refund must be provided as Money Back. |
25045 | API_INVENTORY | REQUEST | When listing an item with Refurbished condition, the minimum time you'll accept returns must be {replaceable_value} days. |
25046 | API_INVENTORY | REQUEST | When listing an item with Refurbished condition, seller must pay the cost for return shipping. |
25047 | API_INVENTORY | REQUEST | Seller is not eligible to use Refurbished Item Condition |
25048 | API_INVENTORY | REQUEST | Seller is not eligible to use Refurbished Item Condition in this Category |
25049 | API_INVENTORY | REQUEST | Seller is not eligible to use Refurbished Item Condition for the selected Brand |
25050 | API_INVENTORY | REQUEST | When listing an item with Refurbished condition, {replaceable_value} cannot be used in the Title. |
25051 | API_INVENTORY | REQUEST | When listing an item with Refurbished condition, {replaceable_value} cannot be used in the Subtitle |
25052 | API_INVENTORY | REQUEST | When listing an item with Refurbished condition, at least {replaceable_value} images must be provided |
25076 | API_INVENTORY | REQUEST | {replaceable_value} ID(s) {replaceable_value} not found. Please use valid ID(s). |
25077 | API_INVENTORY | REQUEST | Duplicate Regulatory ID(s) {replaceable_value} sent in the request. Duplicate ID(s) have been ignored. |
25078 | API_INVENTORY | REQUEST | Hazmat structure incorrect for {replaceable_value}. |
25079 | API_INVENTORY | REQUEST | Repair score invalid. Repair score must be in the range from {replaceable_value} to {replaceable_value} with one decimal place. |
25080 | API_INVENTORY | REQUEST | The value of the {0} field is invalid. Field must not exceed {replaceable_value} characters. |
25081 | API_INVENTORY | REQUEST | Hazardous material information incomplete. Your listing must include hazardous statements. |
25083 | API_INVENTORY | REQUEST | Energy efficiency image is missing. Image is required with image description. |
25084 | API_INVENTORY | REQUEST | The listing must have both an energy efficiency label and a product information sheet. |
25086 | API_INVENTORY | REQUEST | The URL provided must be an eBay Picture Service URL. |
25088 | API_INVENTORY | REQUEST | The email address provided is formatted incorrectly. |
25089 | API_INVENTORY | REQUEST | No more than {replaceable_value} global compliance policies allowed. Excess policies ignored. |
25090 | API_INVENTORY | REQUEST | No more than {replaceable_value} compliance policies per region allowed. Excess policies ignored. |
25091 | API_INVENTORY | REQUEST | No more than a total of {replaceable_value} compliance policies allowed. Excess policies ignored. |
25092 | API_INVENTORY | REQUEST | No more than {replaceable_value} global takeback policy allowed. |
25093 | API_INVENTORY | REQUEST | No more than {replaceable_value} takeback policy per region allowed. Excess policies ignored. |
25094 | API_INVENTORY | REQUEST | No more than a total of {replaceable_value} takeback policies allowed. |
25095 | API_INVENTORY | REQUEST | Region invalid for regional custom policy. Regions allowed are {replaceable_value}. |
25104 | API_INVENTORY | REQUEST | Regulatory document ID(s) {replaceable_value} not found. Please use valid ID(s). |
25106 | API_INVENTORY | REQUEST | Regulatory document structure incorrect. Max allowed number of entries is {replaceable_value}. |
25107 | API_INVENTORY | REQUEST | Invalid document state for ID(s) {replaceable_value}. Documents must be in the SUBMITTED or ACCEPTED state. |
25108 | API_INVENTORY | REQUEST | Product Safety structure incorrect for {replaceable_value}. Max allowed number of entries is {replaceable_value}. |
25109 | API_INVENTORY | REQUEST | Product Safety information incomplete. Your listing must include product safety pictograms & statements. |
25110 | API_INVENTORY | REQUEST | Manufacturer address information is incomplete. When providing the address, please provide the street, city, postal code and country |
25111 | API_INVENTORY | REQUEST | Manufacturer information is incomplete. Please provide the company name. |
25112 | API_INVENTORY | REQUEST | Responsible Person structure incorrect for {replaceable_value}. Max allowed number of entries is {replaceable_value}. |
25113 | API_INVENTORY | REQUEST | Responsible Person address information is incomplete. When providing the address, please provide the street, city, postal code and country |
25114 | API_INVENTORY | REQUEST | Responsible Person information is incomplete. Please provide the company name. |
25115 | API_INVENTORY | REQUEST | Either the Manufacturer or at least one of the Responsible Persons must be located in the EU. |
25116 | API_INVENTORY | REQUEST | Please provide a minimum of {replaceable_value} and a maximum of {replaceable_value} types for a Responsible Person. |
25118 | API_INVENTORY | REQUEST | Seller must provide at least one form of contact info for Manufacturer - either phone, email or address. |
25119 | API_INVENTORY | REQUEST | Seller must provide at least one form of contact info for Responsible Person - either phone, email or address. |
25601 | API_INVENTORY | REQUEST | Invalid attribute. {fieldName} |
25604 | API_INVENTORY | REQUEST | Input error. {additionalInfo} |
25709 | API_INVENTORY | REQUEST | Invalid offerId |
25713 | API_INVENTORY | REQUEST | This Offer is not available : {additionalInfo}. |
25730 | API_INVENTORY | REQUEST | The number of offers in the request cannot exceed {additionalInfo}. |
25731 | API_INVENTORY | REQUEST | OfferId should be unique in the request. |
25732 | API_INVENTORY | REQUEST | Offers associated with SKUs that are part of a variation group cannot be published using this endpoint. |
25752 | API_INVENTORY | REQUEST | listingStartDate provided is invalid. |
25760 | API_INVENTORY | REQUEST | shipToLocationAvailability quantity insufficient to create auction listings. |
25766 | API_INVENTORY | REQUEST | The takeBackPolicyId field must be a long value type. Please correct the error. |
25767 | API_INVENTORY | REQUEST | The 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.
Code | Domain | Category | Meaning |
---|---|---|---|
25028 | API_INVENTORY | REQUEST | {field} is not applicable and has been dropped |
25030 | API_INVENTORY | REQUEST | {field} is not applicable for the condition and has been dropped |
25033 | API_INVENTORY | REQUEST | Duplicate policy IDs found |
25037 | API_INVENTORY | REQUEST | Item level Eco Participation Fee will be ignored |
25401 | API_INVENTORY | APPLICATION | Invalid listing options removed. {additionalInfo} |
25402 | API_INVENTORY | APPLICATION | System warning. {additionalInfo} |
25753 | API_INVENTORY | REQUEST | listingStartDate 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).