Negotiation API — client.sell.negotiation¶
Version v1.1.2 · base path /sell/negotiation/v1 · async twin: the same methods on
AsyncEbayClient, awaited.
Operations¶
Bases: BaseResource
find_eligible_items ¶
find_eligible_items(*, limit: int | str | None = None, offset: int | str | None = None, x_ebay_c_marketplace_id: str | None = None, raw_response: Literal[False] = False) -> sell_negotiation_models.PagedEligibleItemCollection
find_eligible_items(*, limit: int | str | None = None, offset: int | str | None = None, x_ebay_c_marketplace_id: str | None = None, raw_response: Literal[True]) -> httpx.Response
find_eligible_items(*, limit: int | str | None = None, offset: int | str | None = None, x_ebay_c_marketplace_id: str | None = None, raw_response: bool = False) -> sell_negotiation_models.PagedEligibleItemCollection | httpx.Response
This method evaluates a seller's current listings and returns the set of IDs that are eligible for a seller-initiated discount offer to a buyer. A listing ID is returned only when one or more buyers have shown an interest in the listing.
send_offer_to_interested_buyers ¶
send_offer_to_interested_buyers(*, body: CreateOffersRequest | None = None, x_ebay_c_marketplace_id: str | None = None, raw_response: Literal[False] = False) -> sell_negotiation_models.SendOfferToInterestedBuyersCollectionResponse
send_offer_to_interested_buyers(*, body: CreateOffersRequest | None = None, x_ebay_c_marketplace_id: str | None = None, raw_response: Literal[True]) -> httpx.Response
send_offer_to_interested_buyers(*, body: CreateOffersRequest | None = None, x_ebay_c_marketplace_id: str | None = None, raw_response: bool = False) -> sell_negotiation_models.SendOfferToInterestedBuyersCollectionResponse | httpx.Response
This method sends eligible buyers offers to purchase items in a listing at a discount. When a buyer has shown interest in a listing, they become "eligible" to receive a seller- initiated offer to purchase the item(s). Sellers use findEligibleItems to get the set of listings that have interested buyers.
Models¶
CurrencyCodeEnum ¶
Bases: OpenStrEnum
EligibleItem ¶
Bases: EbayModel
listing_id
class-attribute
instance-attribute
¶
listing_id = Field(None, alias='listingId', description='The unique eBay-assigned ID for an eBay listing. A listingId is assigned by eBay when a seller creates a listing with the Trading API.')
ErrorParameter ¶
OfferStatusEnum ¶
Bases: OpenStrEnum
OfferTypeEnum ¶
Bases: OpenStrEnum
seller_initiated_offer
class-attribute
instance-attribute
¶
seller_initiated_offer = 'SELLER_INITIATED_OFFER'
PagedEligibleItemCollection ¶
Bases: EbayModel
eligible_items
class-attribute
instance-attribute
¶
eligible_items = Field(None, alias='eligibleItems', description='A list of items that are eligible for a seller-initiated offer to a buyer. Each element in the list contains the listing ID of a listed item. These IDs represent the listings for which buyers have shown an interest.')
href
class-attribute
instance-attribute
¶
href = Field(None, description='The URI of the current page of results from the result set.')
limit
class-attribute
instance-attribute
¶
limit = Field(None, description='The number of items returned on a single page from the result set. This value can be set in the request with the limit query parameter.')
next
class-attribute
instance-attribute
¶
next = Field(None, description='The URI for the following page of results. This value is returned only if there is an additional page of results to display from the result set. Maximum length : 2048')
offset
class-attribute
instance-attribute
¶
offset = Field(None, description='The number of results skipped in the result set before listing the first returned result. This value can be set in the request with the offset query parameter. Note: The items in a paginated result set use a zero-based list where the first item in the list has an offset of 0 .')
prev
class-attribute
instance-attribute
¶
prev = Field(None, description='The URI for the preceding page of results. This value is returned only if there is a previous page of results to display from the result set. Maximum length : 2048')
total
class-attribute
instance-attribute
¶
total = Field(None, description='The total number of items retrieved in the result set. If no items match the search criteria, the server returns the HTTP status code 204 No Content .')
TimeDurationUnitEnum ¶
Bases: OpenStrEnum
User ¶
Bases: EbayModel
masked_username
class-attribute
instance-attribute
¶
masked_username = Field(None, alias='maskedUsername', description='The masked username is a username that has certain characters hidden for privacy of the user. Note: Effective September 26, 2025, select developers will no longer receive username data for U.S. users through this field. Instead, an immutable user ID will be returned in its place. For more information, please refer to Data Handling Compliance .')
Amount ¶
Bases: EbayModel
currency
class-attribute
instance-attribute
¶
currency = Field(None, description='The base currency applied to the value field to establish a monetary amount. The currency is represented as a 3-letter ISO4217 currency code. For example, the code for the Canadian Dollar is CAD . Default: The default currency of the eBay marketplace that hosts the listing.')
value
class-attribute
instance-attribute
¶
value = Field(None, description='The monetary amount in the specified currency . Important! For listings on the following marketplaces, a comma ( , ) must be used as the decimal separator: France Canada (French Language) Germany Italy Spain All other sites should use a period ( . ) as the decimal separator. If the incorrect decimal separator is used, the decimal point will be ignored.')
Error ¶
Bases: EbayModel
category
class-attribute
instance-attribute
¶
category = Field(None, description='Identifies the type of erro.')
domain
class-attribute
instance-attribute
¶
domain = Field(None, description='Name for the primary system where the error occurred. This is relevant for application errors.')
error_id
class-attribute
instance-attribute
¶
error_id = Field(None, alias='errorId', description='A unique number to identify the error.')
input_ref_ids
class-attribute
instance-attribute
¶
input_ref_ids = Field(None, alias='inputRefIds', description='An array of request elements most closely associated to the error.')
long_message
class-attribute
instance-attribute
¶
long_message = Field(None, alias='longMessage', description='A more detailed explanation of the error.')
message
class-attribute
instance-attribute
¶
message = Field(None, description="Information on how to correct the problem, in the end user's terms and language where applicable.")
output_ref_ids
class-attribute
instance-attribute
¶
output_ref_ids = Field(None, alias='outputRefIds', description='An array of request elements most closely associated to the error.')
parameters
class-attribute
instance-attribute
¶
parameters = Field(None, description='An array of name/value pairs that describe details the error condition. These are useful when multiple errors are returned.')
subdomain
class-attribute
instance-attribute
¶
subdomain = Field(None, description='Further helps indicate which subsystem the error is coming from. System subcategories include: Initialization, Serialization, Security, Monitoring, Rate Limiting, etc.')
OfferedItem ¶
Bases: EbayModel
discount_percentage
class-attribute
instance-attribute
¶
discount_percentage = Field(None, alias='discountPercentage', description='This value denotes the percentage (as either a whole number or decimal value) that the listing in the offer will be discounted from its original listed price. The seller can specify either the exact price of the discounted items with the price field or they can use this field to specify the percentage that the listing will be discounted, but not both.')
listing_id
class-attribute
instance-attribute
¶
listing_id = Field(None, alias='listingId', description='This value is a unique eBay-assigned ID that identifies the listing to which the offer pertains. A listingId value is generated by eBay when you list an item with the Trading API.')
price
class-attribute
instance-attribute
¶
price = Field(None, description='This value denotes the final discounted price of the listing in the offer being made to the buyer. This value must be lower than the original price of the item as stated in the original listing.')
quantity
class-attribute
instance-attribute
¶
quantity = Field(None, description='This integer value indicates the number of items in the eBay listing for which the offer is being made. The offer being made by the seller is an "all or nothing" offer, meaning the buyer must purchase the indicated quantity of items in order to receive the discount on the transaction. Default: 1')
TimeDuration ¶
Bases: EbayModel
unit
class-attribute
instance-attribute
¶
unit = Field(None, description='A time-measurement unit that specifies a singular period of time. A span of time is defined when you apply the value specified in the value field to the value specified for unit . Time-measurement units can be YEAR, MONTH, DAY, and so on. See TimeDurationUnitEnum for a complete list of possible time-measurement units.')
value
class-attribute
instance-attribute
¶
value = Field(None, description='An integer that represents an amount of time, as measured by the time-measurement unit specified in the unit field.')
CreateOffersRequest ¶
Bases: EbayModel
allow_counter_offer
class-attribute
instance-attribute
¶
allow_counter_offer = Field(None, alias='allowCounterOffer', description="If set to true , the buyer is allowed to make a counter-offer to the seller's offer. Note: Currently, you must set this field to false ; counter-offers are not supported in this release. Default: false")
message
class-attribute
instance-attribute
¶
message = Field(None, description='A seller-defined message related to the offer being made. This message is sent to the list of "interested" buyers. To increase the conversion rate of the offers a seller makes to buyers, eBay recommends you always add a customized message to your offers. Maximum length: 2,000 characters')
offer_duration
class-attribute
instance-attribute
¶
offer_duration = Field(None, alias='offerDuration', description='Important! The offerDuration value will be set automatically based on the eBay marketplace, and each marketplace has one supported value. Due to this fact, we suggest that this container no longer be used. See Negotiation API requirements and restrictions for the offerDuration value for each marketplace. The length of time, in days, the offer is valid from when it is created.')
offered_items
class-attribute
instance-attribute
¶
offered_items = Field(None, alias='offeredItems', description='An array of objects where each object contains the details of an offer and the ID of the listing on which the offer is being made. Note that the service does not currently support the creation of multiple offers with a single call to sendOfferToInterestedBuyer .')
Offer ¶
Bases: EbayModel
allow_counter_offer
class-attribute
instance-attribute
¶
allow_counter_offer = Field(None, alias='allowCounterOffer', description="If set to true , the buyer is allowed to make a counter-offer to the seller's offer.")
buyer
class-attribute
instance-attribute
¶
buyer = Field(None, description='The buyer who has been sent the offer.')
creation_date
class-attribute
instance-attribute
¶
creation_date = Field(None, alias='creationDate', description="The date and time when the seller's offer was created. The returned timestamp is formatted as an ISO 8601 string, which is based on the 24-hour Coordinated Universal Time (UTC) clock. Format: [YYYY]-[MM]-[DD]T[hh]:[mm]:[ss].[sss]Z Example: 2018-08-20T07:09:00.000Z")
initiated_by
class-attribute
instance-attribute
¶
initiated_by = Field(None, alias='initiatedBy', description='The eBay UserName of the user (seller) who initiated the offer. Note: Effective September 26, 2025, select developers will no longer receive username data for U.S. users through this field. Instead, an immutable user ID will be returned in its place. For more information, please refer to Data Handling Compliance .')
last_modified_date
class-attribute
instance-attribute
¶
last_modified_date = Field(None, alias='lastModifiedDate', description='The date and time when the offer was last modified. The returned timestamp is formatted as an ISO 8601 string.')
message
class-attribute
instance-attribute
¶
message = Field(None, description='A seller-defined message related to the offer being made. This message is sent to the list of "interested" buyers along with the offer message from eBay.')
offer_duration
class-attribute
instance-attribute
¶
offer_duration = Field(None, alias='offerDuration', description='The length of time that the offer is valid. The duration of the offer begins at the date and time denoted by creationDate . When the span of time specified by offerDuration passes beyond the creationDate , the offer expires.')
offered_items
class-attribute
instance-attribute
¶
offered_items = Field(None, alias='offeredItems', description='The list of items associated with the offer. Currently, the offer list is restricted to a single offer.')
offer_id
class-attribute
instance-attribute
¶
offer_id = Field(None, alias='offerId', description='A unique eBay-assigned identifier for the offer.')
offer_status
class-attribute
instance-attribute
¶
offer_status = Field(None, alias='offerStatus', description='The current state, or status, of an offer. Status states include PENDING , COUNTERED , ACCEPTED , and DECLINED .')
offer_type
class-attribute
instance-attribute
¶
offer_type = Field(None, alias='offerType', description='The type of offer being made.')
revision
class-attribute
instance-attribute
¶
revision = Field(None, description='A unique, eBay-assigned ID for the revision of the offer.')