GetProducts

Searches for stock information and reviews for certain kinds of products, such as a particular digital camera model.

GetProducts is designed to be useful to applications that support shopping comparison, product reviews, or basic supply and demand data.

GetProducts also supports tracking so that members of the eBay Affiliates Program can get commissions for driving traffic to eBay.

Note: For selling use cases, use GetProductSearchResults and GetProductSellingPages instead.

To use this call, you typically pass in keywords, and GetProducts finds products with matching words in the product title, description, and/or Item Specifics.

For each product of interest, you call GetProducts again to retrieve additional details that would be useful to buyers:

Note: As catalog queries can take longer than item queries, GetProducts can be slower than GetSearchResults. Also, due to the way product data is cached, you may get a faster response when you run the same query a second time.

Related calls:



Back to top

GetProducts Input

The box below lists all fields that could be included in the call request. To learn more about an individual field or its type, click its name in the box (or scroll down to find it in the table below the box).

See also Samples.

See also the Deprecated Objects link above. Fields presented in this color are deprecated, and fields presented in this color are (or soon will be) non-operational.

The XML prototype may be missing some XML fields and attributes. This is a documentation limitation only (see Limitations of This Document).

<?xml version="1.0" encoding="utf-8"?>
<GetProductsRequest xmlns="urn:ebay:apis:eBLBaseComponents">
  <!-- Standard Input Fields -->
  <ErrorLanguage> string </ErrorLanguage>
  <MessageID> string </MessageID>
  <OutputSelector> string </OutputSelector>
  <!-- ... more OutputSelector nodes here ... -->
  <Version> string </Version>
  <WarningLevel> WarningLevelCodeType </WarningLevel>
  <!-- Call-specific Input Fields -->
  <AffiliateTrackingDetails> AffiliateTrackingDetailsType 
    <AffiliateUserID> string </AffiliateUserID>
    <TrackingID> string </TrackingID>
    <TrackingPartnerCode> string </TrackingPartnerCode>
  </AffiliateTrackingDetails>
  <IncludeBuyingGuideDetails> boolean </IncludeBuyingGuideDetails>
  <IncludeHistogram> boolean </IncludeHistogram>
  <IncludeItemArray> boolean </IncludeItemArray>
  <IncludeReviewDetails> boolean </IncludeReviewDetails>
  <ProductSearch> ProductSearchType 
    <AvailableItemsOnly> boolean </AvailableItemsOnly>
    <CharacteristicSetIDs> CharacteristicSetIDsType 
      <ID> string </ID>
      <!-- ... more ID nodes here ... -->
    </CharacteristicSetIDs>
    <ExternalProductID> ExternalProductIDType 
      <Type> ExternalProductCodeType </Type>
      <Value> string </Value>
    </ExternalProductID>
    <Pagination> PaginationType 
      <EntriesPerPage> int </EntriesPerPage>
      <PageNumber> int </PageNumber>
    </Pagination>
    <ProductReferenceID> string </ProductReferenceID>
    <QueryKeywords> string </QueryKeywords>
  </ProductSearch>
  <ProductSort> ProductSortCodeType </ProductSort>
</GetProductsRequest>
Argument Type Reqd? Meaning
Standard Input Fields   [Jump to call-specific fields]
ErrorLanguage string Optional Use ErrorLanguage to return error strings for the call in a different language from the language commonly associated with the site that the requesting user is registered with. Specify the standard RFC 3066 language identification tag (e.g., en_US).
ID--- country
----- -----
de_AT Austria
de_CH Switzerland
de_DE Germany
en_AU Australia
en_CA Canada
en_GB United Kingdom
en_SG Singapore
en_US United States
es_ES Spain
fr_BE Belgium (French)
fr_CA Canada (French)
fr_FR France
it_IT Italy
nl_BE Belgium (Dutch)
nl_NL Netherlands
zh_CN China
en_IN India
en_IE Ireland
zh_HK Hong Kong

See Tags for the Identification of Languages.
MessageID string Optional In most cases, all calls support a MessageID element in the request and a CorrelationID element in the response. If you pass a message ID in a request, we will return the same value in CorrelationID in the response. You can use this for tracking that a response is returned for every request and to match particular responses to particular requests. If you do not pass MessageID in the request, CorrelationID is not returned.

Note: GetCategories, GetAttributesCS, GetCategory2CS, GetAttributesXSL, GetProductFinder, GetProductFinderXSL, and GetProductSearchPage are designed to retrieve very large sets of metadata that change once a day or less often. To improve performance, these calls return cached responses when you request all available data (with no filters). When this occurs, the MessageID and CorrelationID fields aren't applicable. However, if you specify an input filter to reduce the amount of data returned, the calls retrieve the latest data (not cached). When this occurs, MessageID and CorrelationID are applicable.
OutputSelector string
(repeatable)
Optional You can use the OutputSelector field to restrict the data returned by this call. When you make a call such as GetItem that retrieves data from eBay, the OutputSelector field is useful for restricting the data returned. This field makes the call response easier to use, especially when a large payload would be returned. If you use the OutputSelector field, the output data will include only the fields you specified in the request. For example, if you are using GetItem and you want the item data in the response to be restricted to the ViewItemURL (the URL where a user can view the listing) and BuyItNowPrice, then within the GetItem request, specify those output fields. To use this field, see the information at the following link.

See Selecting Fields to Retrieve.
Version string Conditional The version number of the API code that you are programming against (e.g., 549). The version you specify for a call has these basic effects:
- It indicates the version of the code lists and other data that eBay should use to process your request.
- It indicates the schema version you are using.
You need to use a version that is greater than or equal to the lowest supported version.

For the SOAP API: If you are using the SOAP API, this field is required. Specify the version of the WSDL your application is using.

For the XML API: If you are using the XML API, this field has no effect. Instead, specify the version in the X-EBAY-API-COMPATIBILITY-LEVEL HTTP header. (If you specify Version in the body of an XML API request and it is different from the value in the HTTP header, eBay returns an informational warning that the value in the HTTP header was used instead.)

See:
    HTTP Headers (XML API Only)
    eBay Schema Versioning Strategy
    Lowest Supported Version
WarningLevel WarningLevelCodeType Optional Controls whether or not to return warnings when the application passes unrecognized or deprecated elements in a request.

An unrecognized element is one that is not defined in any supported version of the schema. Schema element names are case-sensitive, so using WarningLevel can also help you remove any potential hidden bugs within your application due to incorrect case or spelling in field names before you put your application into the Production environment.

WarningLevel only validates elements; it doesn't validate XML attributes. It also doesn't control warnings related to user-entered strings or numbers, or warnings for logical errors.

We recommend that you only use this during development and debugging. Do not use this in requests in your production code.

Applicable values:

•   High

(in) Return warnings when the application passes unrecognized or deprecated elements in a request.

•   Low

(in) Do not return warnings when the application passes unrecognized or deprecated elements in a request. This is the default value if WarningLevel is not specified.




See Warning Level.
Call-specific Input Fields
AffiliateTrackingDetails AffiliateTrackingDetailsType Optional See the eBay Partner Network. eBay uses the specified details to build a View Item URL string in the response that includes your affiliate tracking information in the correct format. When a user clicks through the URL to eBay and performs certain tasks, you may get a commission (see the URL above). Only applicable when IncludeItemArray is specified (because the View Item URL is only returned in item information, not in product information).

See Affiliate Tracking Concepts.
AffiliateTrackingDetails
  .AffiliateUserID
string Conditional Need not be specified. You can define an AffiliateUserID (up to 256 characters) if you want to leverage it to better monitor your marketing efforts. If you are using the eBay Partner Network, and you provide an AffiliateUserID, the tracking URL returned by eBay Partner Network will contain the AffiliateUserID, but it will be referred to as a "customid".
AffiliateTrackingDetails
  .TrackingID
string Conditional The value you specify is obtained from your tracking partner. For eBay Partner Network, the TrackingID is the Campaign ID ("campid") provided by eBay Partner Network. A Campaign ID is a 9-digit, unique number to be used for associating traffic. A Campaign ID is valid across all programs to which you have been accepted. Another example is the Affiliate ID given to you by TradeDoubler.
AffiliateTrackingDetails
  .TrackingPartnerCode
string Conditional Specifies your tracking partner for affiliate commissions. Affiliates earn money from eBay for driving traffic to eBay. Required if you specify a TrackingID. Depending on your tracking partner, specify one of the following values. Not all partners are valid for all sites. For PlaceOffer, only eBay Partner Network and Mediaplex are valid:

2 = Be Free
3 = Affilinet
4 = TradeDoubler
5 = Mediaplex
6 = DoubleClick
7 = Allyes
8 = BJMT
9 = eBay Partner Network

For information about the eBay Partner Network, see eBay Partner Network.

See Affiliate Tracking Concepts.
IncludeBuyingGuideDetails boolean Optional If true, the response includes up to 5 buying guides (if any) for the product specified in ExternalProductID or ProductReferenceID. Not applicable with QueryKeywords.
Default: false.
IncludeHistogram boolean Optional If true, the response includes a histogram that lists the number of matching products found and the domains in which they were found. (A domain is like a high-level category.) Including the histogram can affect the call's performance. You may see significantly slower response times when many matching products are found.
Default: false.
IncludeItemArray boolean Optional If true, the response includes items (if any) that match the product specified in ExternalProductID or ProductReferenceID. Not applicable with QueryKeywords.
Default: false.
IncludeReviewDetails boolean Optional If true, the response includes up to 20 reviews (if any) for the product specified in ExternalProductID or ProductReferenceID. The reviews are sorted by most helpful (most votes) first. When you include review details, please note that response times may be longer than 60 seconds. Not applicable with QueryKeywords.
Default: false.
ProductSearch ProductSearchType Required Contains the fields that form the search query. You can query against keywords, an eBay product reference ID (not to be confused with an eBay product ID), or external product ID (like an ISBN).
ProductSearch
  .AvailableItemsOnly
boolean Optional If true, only retrieve products that have been used to pre-fill active listings on the specified eBay site. If false, retrieve all products that match the query. For GetProducts This is useful when you use QueryKeywords and you only want to find products that have items (that is, where ItemArray is not empty).

For GetProductSearchResults: Ths can be useful when you want to find products that other sellers have recently used to pre-fill similar listings.
Default: false.
ProductSearch
  .CharacteristicSetIDs
CharacteristicSetIDsType Optional List of one or more IDs that indicate which domain (characteristic set) to search in. If not specified, the search is conducted across all domains (characteristic sets).

For GetProducts Only useful when QueryKeywords is specified. If you use this with ProductReferenceID or ExternalProductID, AND logic is applied. In this case, if you specify an ID that doesn't match the product, no matching product will be found. Therefore, we recommend that you only use this with QueryKeywords.

For GetProductSearchResults: Only applicable when QueryKeywords is specified. Ignored when SearchAttributes is specified.
ProductSearch
  .CharacteristicSetIDs.ID
string
(repeatable)
Optional Numeric identifier for a domain (characteristic set).

For GetProducts (for buying tools), you can use the list of catalog-enabled attribute sets in the documentation (see link below).

For GetProductSearchResults (for selling tools), it's best to use GetCategory2CS to determine mappings between categories and characteristic sets that are flagged as CatalogEnabled.

See Catalog-Enabled Attribute Sets.
ProductSearch
  .ExternalProductID
ExternalProductIDType Conditional A query that only retrieves items that were listed with stock products that have ISBN or UPC values (such as books, DVDs, CDs, and video game products). Use this query to retrieve basic details about one catalog product (or a very limited number of products). The results can optionally include items, reviews, and/or buying guides that match that product. (Specifically, the items returned are items that sellers listed with the specified product's stock information.)

If you have gotten the ISBN or UPC from another Web site or resource, you can use that ID. Otherwise, call GetProducts with QueryKeywords (or ProductReferenceID). Any matching products that include ISBN or UPC values will return those values in Product.ExternalProductID.

The request requires either QueryKeywords, ProductReferenceID, or ExternalProductID, but these fields cannot be used together.
ProductSearch
  .ExternalProductID.Type
ExternalProductCodeType Conditional The kind of identifier being used. The choices are listed For requests, required if Value is specified. For Half.com listing use cases, only ISBN, UPC, and EAN are supported.

GetSearchResultsExpress returns this value in ProductArray.Product.ExternalProductID.Type. To pass an external product ID in the request, use ExternalProductIDType and ExternalProductIDValue instead.

GetProducts supports ISBN, UPC, and EAN.

Applicable values:

•   EAN

(in/out) ExternalProductID.Value contains an EAN value. Required when you pass an EAN as the external product ID. Not applicable with GetSearchResultsExpress.

•   ISBN

(in/out) ExternalProductID.Value contains an ISBN value. Required when you pass an ISBN as the external product ID. (This value is also applicable to Half.com listings.)

•   UPC

(in/out) ExternalProductID.Value contains a UPC value. Required when you pass a UPC as the external product ID. (This value is also applicable to Half.com listings.)


(Not all values in ExternalProductCodeType apply to this field.)
ProductSearch
  .ExternalProductID.Value
string Conditional An industry-standard value that uniquely identifies the product. The valid values are dictated by the Type property. Required if Type is specified. Max length 13 for ISBN (as of February 2007), 13 for EAN, 12 for UPC, and 4000 for ProductID. No max length for ticket keywords (but passing too much data can result in "no match found" errors).

For AddItem and related calls: If the primary and secondary categories are both catalog-enabled, the value must apply to the primary category. Event tickets listings support a set of keywords that uniquely identify the listing. The ticket keywords specify the event name (the title shown on the ticket), venue name, and event date and time. See the eBay Web Services guide for more information and validation rules. For convenience, you can pass an eBay product ID as input (not limited to media categories).

Required for Half.com listing use cases, and this can only be an ISBN, UPC, or EAN value.

For GetSearchResults and GetProducts input only: Only ISBN, EAN, and UPC values are currently supported as input.

For GetSearchResultsExpress input only: To pass an external product ID in the request, use ExternalProductIDValue and ExternalProductIDType instead.

For GetSearchResultsExpress, GetProducts, and GetSellerPayments output only: Also see AlternateValue, which is returned if the catalog defines multiple ISBN values (e.g., one for ISBN-13 and one for ISBN-10). Please note that some catalogs return ISBN values that are not 10 or 13 characters, and some values contain non-alphanumeric symbols (e.g., $).
Max length: See description.
ProductSearch.Pagination PaginationType Optional Pagination instruction that specifies the virtual page of data to return per search request. For GetProducts, this is primarily useful when you use QueryKeywords. When you use ExternalProductID or ProductReferenceID, only one page of data is typically returned.

See Step4:Specify Pagination Properties.
ProductSearch.Pagination
  .EntriesPerPage
int Optional Specifies the maximum number of entries to return in a single call. If the number of entries that can be returned is less than the value in EntriesPerPage, then the lower number is returned. For most calls, the max is 200 and the default is 25. For GetUserDisputes, the value is hard-coded at 200, and any input is ignored. For GetProducts, the maximum is 20 (and higher values are ignored). See the annotations for other individual calls to determine the correct max and default values. For GetOrders, not applicable to eBay.com (but applicable to Half.com for GetOrders).
Min: 1. Max: 20.
ProductSearch.Pagination
  .PageNumber
int Optional Specifies the number of the page of data to return in the current call. Default is 1 for most calls. For some calls, the default is 0. Specify a positive value equal to or lower than the number of pages available (which you determine by examining the results of your initial request). See the documentation for other individual calls to determine the correct default value. For GetOrders, not applicable to eBay.com (for GetOrders, applicable to Half.com).
Min: 1. Max: 2000. Default: 1.
ProductSearch
  .ProductReferenceID
string Conditional The global reference ID for an eBay catalog product. Use this query to retrieve basic details about one catalog product. The results can optionally include items, reviews, and/or buying guides that match that product. (Specifically, the items returned are items that sellers listed with the specified product's stock information.)

To determine valid reference IDs, call GetProducts with QueryKeywords (or ExternalProductID). Each matching product returns a reference ID in Product.ProductReferenceID.

Note: This value is not the same as the ProductID used in AddItem and related calls. A ProductID represents a particular version of a catalog product. (A given version could have an older or newer description, set of Item Specifics, or other details.) A ProductReferenceID is a more generic or global reference to a product (regardless of version), which is useful for buy-side searching. One product reference ID can be associated with multiple product IDs.

As of mid-2008, some sites (such as eBay US, Germany, Austria, and Switzerland) are updating, replacing, deleting, or merging some products (as a result of migrating from one catalog data provider to another). If you specify one of these products, the call may return a warning, or it may return an error if the product has been deleted.

The request requires either QueryKeywords, ProductReferenceID, or ExternalProductID, but these fields cannot be used together.
ProductSearch.QueryKeywords string Conditional One or more keywords to search for. The words "and" and "or" are treated like any other word. Only use "and", "or", or "the" if you are searching for products containing these words. To use AND or OR logic, use eBay's standard search string modifiers. Wildcards (+, -, or *) are also supported. Be careful when using spaces before or after modifiers and wildcards.

For GetProducts When you use a keyword search, eBay searches the product database for matching words in the product title, description, and/or Item Specifics, and it returns a list of matching products (with no items, reviews, or guides). (To retrieve items, reviews, and/or guides for a particular product, use ProductReferenceID instead.) If specified, you must pass in at least 3 alphanumeric characters. Some keyword queries can result in response times of 30 seconds or longer. If more than 2000 matches are found, the call fails with an error. If this kind of error occurs, refine the search by passing in more keywords and/or by using CharacteristicSetIDs to restrict the search to certain domains (such as DVDs). If you are searching for a particular book, DVD, CD, or video game and you already know its ISBN (for a book) or UPC, consider using ExternalProductID instead to retrieve more precise results. The request requires either QueryKeywords, ProductReferenceID, or ExternalProductID, but these fields cannot be used together.

For GetProductSearchResults: eBay searches only in the characteristic set specified in CharacteristicSetIDs. Both the product title and Item Specifics are searched. For each ProductSearch, either SearchAttributes or QueryKeywords is required (but do not pass both). Blank searches are not applicable (and result in a warning). If your search is using a Keyword attribute returned by GetProductSearchPage, use SearchAttributes instead.
Max length: 350.

See Searching with Plain-Text Keywords.
ProductSort ProductSortCodeType Optional Sorts the list of products returned. This is mostly only useful with QueryKeywords. (When you use ExternalProductID or ProductReferenceID, eBay usually only returns one product.)

Applicable values:

•   CustomCode

(in) Reserved for values that are not available in the version of the schema you are using. If eBay adds a new value to this code type as of a particular version, we return CustomCode when you specify a lower request version.

•   ItemCountAsc

(in) Sort by the number of active items listed with this product, and return products with the fewest items first.

•   ItemCountDesc

(in) Sort by the number of active items listed with this product, and return products with the most items first.

•   PopularityAsc

(in) Sort by product popularity (as determined by eBay), and return the most popular products first.

•   PopularityDesc

(in) Sort by product popularity (as determined by eBay), and return the least popular products first.

•   RatingAsc

(in) Sort by average rating, and return the lowest rated products first.

•   RatingDesc

(in) Sort by average rating, and return the highest rated products first.

•   ReviewCountAsc

(in) Sort by the number of reviews, and return products with the fewest reviews first.

•   ReviewCountDesc

(in) Sort by the number of reviews, and return products with the most reviews first.

•   TitleAsc

(in) Sort by the product title, and return products in ascending order. For example, with Western character sets, this means alphabetical order (e.g., A to Z), where titles that start with the word "A" appear before titles that start with the word "The".

•   TitleDesc

(in) Sort by the product title, and return products in reverse order (e.g., Z to A).




Back to top

GetProducts Output

The box below lists all fields that might be returned in the call response. To learn more about an individual field or its type, click its name in the box (or scroll down to find it in the table below the box).

See also Samples.

See also the Deprecated Objects link above. Fields presented in this color are deprecated, and fields presented in this color are not returned (or soon will not be returned) or are not operational (or soon will be non-operational).

The XML prototype may be missing some XML fields and attributes. This is a documentation limitation only (see Limitations of This Document).

<?xml version="1.0" encoding="utf-8"?>
<GetProductsResponse xmlns="urn:ebay:apis:eBLBaseComponents">
  <!-- Standard Output Fields -->
  <Ack> AckCodeType </Ack>
  <Build> string </Build>
  <CorrelationID> string </CorrelationID>
  <Errors> ErrorType 
    <ErrorClassification> ErrorClassificationCodeType </ErrorClassification>
    <ErrorCode> token </ErrorCode>
    <ErrorParameters ParamID="string"> ErrorParameterType 
      <Value> string </Value>
    </ErrorParameters>
    <!-- ... more ErrorParameters nodes here ... -->
    <LongMessage> string </LongMessage>
    <SeverityCode> SeverityCodeType </SeverityCode>
    <ShortMessage> string </ShortMessage>
  </Errors>
  <!-- ... more Errors nodes here ... -->
  <HardExpirationWarning> string </HardExpirationWarning>
  <Timestamp> dateTime </Timestamp>
  <Version> string </Version>
  <!-- Call-specific Output Fields -->
  <ApproximatePages> int </ApproximatePages>
  <BuyingGuideDetails> BuyingGuideDetailsType 
    <BuyingGuide> BuyingGuideType 
      <CategoryID> string </CategoryID>
      <CreationTime> dateTime </CreationTime>
      <Name> string </Name>
      <Text> string </Text>
      <Title> string </Title>
      <URL> anyURI </URL>
      <UserID> UserIDType (string) </UserID>
    </BuyingGuide>
    <!-- ... more BuyingGuide nodes here ... -->
    <BuyingGuideHub> anyURI </BuyingGuideHub>
  </BuyingGuideDetails>
  <CharacteristicsSetProductHistogram> CharacteristicsSetProductHistogramType 
    <HistogramEntry id="string" name="string"> HistogramEntryType 
      <Count> int </Count>
    </HistogramEntry>
    <!-- ... more HistogramEntry nodes here ... -->
  </CharacteristicsSetProductHistogram>
  <HasMore> boolean </HasMore>
  <ItemArray> ItemArrayType 
    <Item> ItemType 
      <BuyItNowPrice> AmountType (double) </BuyItNowPrice>
      <Country> CountryCodeType </Country>
      <Currency> CurrencyCodeType </Currency>
      <GiftIcon> int </GiftIcon>
      <ItemID> ItemIDType (string) </ItemID>
      <ItemSpecifics> NameValueListArrayType 
        <NameValueList> NameValueListType 
          <Name> string </Name>
          <Value> string </Value>
          <!-- ... more Value nodes here ... -->
        </NameValueList>
        <!-- ... more NameValueList nodes here ... -->
      </ItemSpecifics>
      <ListingDetails> ListingDetailsType 
        <EndTime> dateTime </EndTime>
        <StartTime> dateTime </StartTime>
        <ViewItemURL> anyURI </ViewItemURL>
        <ViewItemURLForNaturalSearch> anyURI </ViewItemURLForNaturalSearch>
      </ListingDetails>
      <ListingDuration> token </ListingDuration>
      <ListingEnhancement> ListingEnhancementsCodeType </ListingEnhancement>
      <!-- ... more ListingEnhancement nodes here ... -->
      <ListingType> ListingTypeCodeType </ListingType>
      <Location> string </Location>
      <PaymentMethods> BuyerPaymentMethodCodeType </PaymentMethods>
      <!-- ... more PaymentMethods nodes here ... -->
      <PictureDetails> PictureDetailsType 
        <GalleryType> GalleryTypeCodeType </GalleryType>
        <GalleryURL> anyURI </GalleryURL>
      </PictureDetails>
      <PostalCode> string </PostalCode>
      <PrimaryCategory> CategoryType 
        <CategoryID> string </CategoryID>
      </PrimaryCategory>
      <SearchDetails> SearchDetailsType 
        <BuyItNowEnabled> boolean </BuyItNowEnabled>
        <Picture> boolean </Picture>
        <RecentListing> boolean </RecentListing>
      </SearchDetails>
      <SecondaryCategory> CategoryType 
        <CategoryID> string </CategoryID>
      </SecondaryCategory>
      <Seller> UserType 
        <FeedbackPrivate> boolean </FeedbackPrivate>
        <FeedbackScore> int </FeedbackScore>
        <PositiveFeedbackPercent> float </PositiveFeedbackPercent>
      </Seller>
      <SellingStatus> SellingStatusType 
        <BidCount> int </BidCount>
        <CurrentPrice> AmountType (double) </CurrentPrice>
      </SellingStatus>
      <ShippingDetails> ShippingDetailsType 
        <DefaultShippingCost> AmountType (double) </DefaultShippingCost>
        <ShippingType> ShippingTypeCodeType </ShippingType>
      </ShippingDetails>
      <Storefront> StorefrontType 
        <StoreName> string </StoreName>
        <StoreURL> anyURI </StoreURL>
      </Storefront>
      <SubTitle> string </SubTitle>
      <Title> string </Title>
    </Item>
    <!-- ... more Item nodes here ... -->
  </ItemArray>
  <PageNumber> int </PageNumber>
  <Product> CatalogProductType 
    <AttributeSetID> int </AttributeSetID>
    <DetailsURL> anyURI </DetailsURL>
    <DisplayStockPhotos> boolean </DisplayStockPhotos>
    <ExternalProductID> ExternalProductIDType 
      <AlternateValue> string </AlternateValue>
      <!-- ... more AlternateValue nodes here ... -->
      <Type> ExternalProductCodeType </Type>
      <Value> string </Value>
    </ExternalProductID>
    <ItemCount> int </ItemCount>
    <ItemSpecifics> NameValueListArrayType 
      <NameValueList> NameValueListType 
        <Name> string </Name>
        <Value> string </Value>
        <!-- ... more Value nodes here ... -->
      </NameValueList>
      <!-- ... more NameValueList nodes here ... -->
    </ItemSpecifics>
    <ProductReferenceID> long </ProductReferenceID>
    <ProductState> ProductStateCodeType </ProductState>
    <ReviewCount> int </ReviewCount>
    <ReviewDetails> ReviewDetailsType 
      <AverageRating> float </AverageRating>
      <Review> ReviewType 
        <CreationTime> dateTime </CreationTime>
        <Rating> int </Rating>
        <Text> string </Text>
        <Title> string </Title>
        <URL> anyURI </URL>
        <UserID> UserIDType (string) </UserID>
      </Review>
      <!-- ... more Review nodes here ... -->
    </ReviewDetails>
    <StockPhotoURL> anyURI </StockPhotoURL>
    <Title> string </Title>
  </Product>
  <!-- ... more Product nodes here ... -->
  <TotalProducts> int </TotalProducts>
</GetProductsResponse>
Return Value Type Returned? Meaning
Standard Output Fields   [Jump to call-specific fields]
Ack AckCodeType Always A token representing the application-level acknowledgement code that indicates the response status (e.g., success). The AckCodeType list specifies the possible values for Ack.

Applicable values:

•   CustomCode

(out) Reserved for internal or future use.

•   Failure

(out) Request processing failed

•   Success

(out) Request processing succeeded

•   Warning

(out) Request processing completed with warning information being included in the response message


(Not all values in AckCodeType apply to this field.)
Build string Always This refers to the specific software build that eBay used when processing the request and generating the response. This includes the version number plus additional information. eBay Developer Support may request the build information when helping you resolve technical issues.
CorrelationID string Conditionally In most cases, all calls support a MessageID element in the request and a CorrelationID element in the response. If you pass a message ID in a request, we will return the same value in CorrelationID in the response. You can use this for tracking that a response is returned for every request and to match particular responses to particular requests. If you do not pass MessageID in the request, CorrelationID is not returned.

Note: GetCategories, GetAttributesCS, GetCategory2CS, GetAttributesXSL, GetProductFinder, GetProductFinderXSL, and GetProductSearchPage are designed to retrieve very large sets of metadata that change once a day or less often. To improve performance, these calls return cached responses when you request all available data (with no filters). When this occurs, the MessageID and CorrelationID fields aren't applicable. However, if you specify an input filter to reduce the amount of data returned, the calls retrieve the latest data (not cached). When this occurs, MessageID and CorrelationID are applicable.
Errors ErrorType
(repeatable)
Conditionally A list of application-level errors (if any) that occurred when eBay processed the request.

See Error Handling.
Errors.ErrorClassification ErrorClassificationCodeType Conditionally API errors are divided between two classes: system errors and request errors.

Applicable values:

•   CustomCode

(out) Reserved for internal or future use.

•   RequestError

(out) An error has occurred either as a result of a problem in the sending application or because the application's end-user has attempted to submit invalid data (or missing data). In these cases, do not retry the request. The problem must be corrected before the request can be made again. If the problem is due to something in the application (such as a missing required field), the application must be changed. If the problem is a result of end-user data, the application must alert the end-user to the problem and provide the means for the end-user to correct the data. Once the problem in the application or data is resolved, resend the request to eBay with the corrected data.

•   SystemError

(out) Indicates that an error has occurred on the eBay system side, such as a database or server down. An application can retry the request as-is a reasonable number of times (eBay recommends twice). If the error persists, contact Developer Technical Support. Once the problem has been resolved, the request may be resent in its original form.


Errors.ErrorCode token Conditionally A unique code that identifies the particular error condition that occurred. Your application can use error codes as identifiers in your customized error-handling algorithms.
Errors.ErrorParameters ErrorParameterType
(repeatable)
Conditionally This optional element carries a list of context-specific error variables that indicate details about the error condition. These are useful when multiple instances of ErrorType are returned.
Errors.ErrorParameters
  [ attribute ParamID ]
string Conditionally The index of the parameter in the list of parameter types returned within the error type.
Errors.ErrorParameters.Value string Conditionally The value of the variable (e.g., the attribute set ID)
Errors.LongMessage string Conditionally A more detailed description of the condition that raised the error.
Errors.SeverityCode SeverityCodeType Conditionally Indicates whether the error is a severe error (causing the request to fail) or an informational error (a warning) that should be communicated to the user.

Applicable values:

•   CustomCode

(out) Reserved for internal or future use

•   Error

(out) Application-level error

•   Warning

(out) Warning or informational error


Errors.ShortMessage string Conditionally A brief description of the condition that raised the error.
HardExpirationWarning string Conditionally Expiration date of the user's authentication token. Only returned within the 7-day period prior to a token's expiration. To ensure that user authentication tokens are secure and to help avoid a user's token being compromised, tokens have a limited life span. A token is only valid for a period of time (set by eBay). After this amount of time has passed, the token expires and must be replaced with a new token.
Timestamp dateTime Always This value represents the date and time when eBay processed the request. The time zone of this value is GMT and the format is the ISO 8601 date and time format (YYYY-MM-DDTHH:MM:SS.SSSZ). See Time Values in the eBay Web Services guide for information about this time format and converting to and from the GMT time zone.

Note: GetCategories, GetAttributesCS, GetCategory2CS, GetAttributesXSL, GetProductFinder, GetProductFinderXSL, and GetProductSearchPage are designed to retrieve very large sets of metadata that change once a day or less often. To improve performance, these calls return cached responses when you request all available data (with no filters). When this occurs, this time value reflects the time the cached response was created. Thus, this value is not necessarily when the request was processed. However, if you specify an input filter to reduce the amount of data returned, the calls retrieve the latest data (not cached). When this occurs, this time value does reflect when the request was processed.
Version string Always The version of the response payload schema. Indicates the version of the schema that eBay used to process the request. See "Standard Data for All Calls" in the eBay Web Services Guide for information on using the response version when troubleshooting "CustomCode" values that appear in the response.
Call-specific Output Fields
ApproximatePages int Always The total number of pages that can be returned, given the same query and filters in the request. As GetProducts only returns up to 2000 products, the maximum possible value is theoretically 2000 (if you were to set EntriesPerPage to 1 in the request).
Min: 1. Max: 2000.
BuyingGuideDetails BuyingGuideDetailsType Conditionally Contains information for up to 5 buying guides that match the query. Only returned when you set IncludeBuyingGuideDetails to true. Buying guides provide useful information about shopping in a particular domain, like Digital Cameras. For example, a digital camera buying guide could help a buyer determine what kind of digital camera is right for them. If no buying guides are associated with the product, this only returns a link to the buying guide hub (the main Guides page).
BuyingGuideDetails.BuyingGuide BuyingGuideType
(repeatable)
Conditionally Information that identifies a buying guide. A buying guide contains content about particular product areas, categories, or subjects to help buyers decide which type of item to purchase based on their particular interests. Buying guides are useful to buyers who do not have a specific product in mind. For example, a digital camera buying guide could help a buyer determine what kind of digital camera is right for them.
BuyingGuideDetails.BuyingGuide
  .CategoryID
string Conditionally Identifies the category (if any) that is associated with the buying guide. For GetSearchResults, this can be a category that is higher or lower in the hierarchy than the category specified in the request. For a matching categories search, you can use this information to determine the order that the buying guides are returned in when multiple guides are found. Optionally, you can use this information to determine where to present the buying guide link in your application. Not returned for product finder searches.
Max length: 10.
BuyingGuideDetails.BuyingGuide
  .CreationTime
dateTime Conditionally The time and date when the guide was posted.
BuyingGuideDetails.BuyingGuide
  .Name
string Conditionally Display name of the buying guide.

GetProducts only returns 20 characters, followed by "..." if the name is longer than 20 characters. For the full title, see BuyingGuide.Title instead.
Max length: 23.
BuyingGuideDetails.BuyingGuide
  .Text
string Conditionally The text of the guide. If the guide is longer than 2000 characters, the text is cut off and it ends with "...". See BuyingGuide.URL for a link to the full text of the review.
BuyingGuideDetails.BuyingGuide
  .Title
string Conditionally The title of the buying guide.
Max length: 55.
BuyingGuideDetails.BuyingGuide
  .URL
anyURI Conditionally URL for the buying guide. Your application can present this as a link. Use the value of Name as the link's display name.
BuyingGuideDetails.BuyingGuide
  .UserID
UserIDType (string) Conditionally The author's eBay user ID.
BuyingGuideDetails
  .BuyingGuideHub
anyURI Conditionally URL of the buying guide home page for the site being searched. Your application can present this URL as a link. Optionally, you can use a value like "See all buying guides" as the link's display name. GetProducts returns this URL even when no guides are available for the product.
CharacteristicsSetProductHistogram CharacteristicsSetProductHistogramType Always A histogram that lists the number of matching products found and the domains in which they were found. A domain is essentially a set of categories that share certain common features (as determined by eBay). Each domain has its own name and ID.
CharacteristicsSetProductHistogram
  .HistogramEntry
HistogramEntryType
(repeatable)
Conditionally In GetProducts, each histogram entry shows how many matching products were found in each matching domain. A domain is like a high-level category. (A domain is also called an attribute set or a characteristic set.)
CharacteristicsSetProductHistogram
  .HistogramEntry
  [ attribute id ]
string Conditionally For GetProducts, this is the domain ID (attribute set ID or characteristic set ID).
CharacteristicsSetProductHistogram
  .HistogramEntry
  [ attribute name ]
string Conditionally For GetProducts, this is the domain name (attribute set name or characteristic set name). A domain is like a high-level category.
CharacteristicsSetProductHistogram
  .HistogramEntry.Count
int Conditionally For GetProducts, the number of products found in the domain (characteristic set or attribute set). If a product is mapped to more than one domain, it will be counted separately for each domain. (For example, if the same product can be found in both Children's Books and Fiction Books, the count for both of these domains will include that product.) Furthermore, when a product is mapped to more than one domain, Product.AttributeSetID only returns the most applicable domain, as determined by eBay.
HasMore boolean Always If true, more pages of results are available. That is, PageNumber is less than ApproximatePages.
ItemArray ItemArrayType Conditionally A list of items (if any) that match the product identified in ExternalProductID or ProductReferenceID in the request. Only returned when you set IncludeItemArray to true. The items are sorted by end time (ending soonest), and this order is not configurable in the request. Up to 200 items can be returned. All items are returned on the first page (page 1). Not returned when you use QueryKeywords.

If ItemCount is greater than 200, use GetSearchResults if you want to retrieve more matching items.

Note: GetSearchResults doesn't currently support ProductReferenceID queries. So, you can use ExternalProductID (if present) as input to GetSearchResults. Otherwise, see Product.DetailsURL for a workaround to determine a ProductID value to use with GetSearchResults.
ItemArray.Item ItemType
(repeatable)
Conditionally Contains the data properties that define one item listing. GetSellerEvents and GetSellerList only return items if any are available for the seller within the time window specified in the request.

Some optional fields are only returned if the seller defined them for the item. Some fields are only returned under particular conditions specified in the individual field descriptions. For example, a buyer's contact information might only be returned if the member who is making the request (as identified in eBayAuthToken) has a transactional relationship with that buyer.

For calls that support detail levels, the set of fields returned is also controlled by the value of DetailLevel in the request. For some calls, other parameters in the request can also control the data returned for each item. For example, GranularityLevel controls the fields to return for each item in the GetSellerList response.

For GetSearchResultsExpress, ItemDetails controls the fields to return for each item.
ItemArray.Item.BuyItNowPrice AmountType (double) Conditionally For Chinese auction listings, Buy It Now allows a user to purchase the item at a fixed price and end the auction immediately. Use this field to add Buy It Now and specify the amount a buyer would need to bid to take advantage of the Buy It Now feature.

On the main eBay site, not applicable to fixed-price items (ListingType values StoresFixedPrice or FixedPriceItem), AdFormat listings, or Half.com listings. For fixed-price and Half.com listings, see StartPrice instead. See the eBay Web Services Guide for validation rules when revising US eBay Motors listings, including rules for lowering the Buy It Now price of a Motors listing.

Once a Chinese auction has bids (and the high bid exceeds the reserve price, if any), the listing is no longer eligible for Buy It Now (with some exceptions noted below). However, calls like GetItem and GetSearchResults still return the BuyItNowPrice that the seller originally set for the listing. You can use Item.SellingStatus.BidCount to determine whether an auction with Buy It Now has bids or not. With GetSearchResults, you can use the Item.SearchDetails.BuyItNowEnabled flag to determine whether the item can still be purchased using Buy It Now. With GetItem, you can use the Item.ListingDetails.BuyItNowAvailable flag to determine whether the item can still be purchased using Buy It Now.

On some sites, the Buy It Now price for a Chinese auction may remain available for certain categories even after a bid is placed. See the "Longer Lasting Buy It Now" link below for more details and the latest list of eBay US categories that support this behavior. The eBay Spain site supports this behavior for all categories.

For a listing to be eligible for Express, the max Buy It Now Price is USD 10,000.00 for the US. (Additional price limits may be imposed by the seller's PayPal account or the payment method used. Such limits cannot be determined via the eBay API and are not covered in eBay's API documentation, as they may vary for each user.)

To remove this value when revising or relisting an item, use DeletedField.

See:
    Longer Lasting Buy It Now
    Specify a Fixed Price for Express and eBay
    Revising US eBay Motors Listings
ItemArray.Item.Country CountryCodeType Conditionally Two-letter ISO 3166 country code. In some calls, used with the Location field to indicate the city and country where the item is located. Also applicable as input to AddItem and related calls when you list items to Half.com (specify US).
For English names that correspond to each code (e.g., KY="Cayman Islands"), call GeteBayDetails or see the ISO site:http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

In GetSearchResultsExpress, only returned when ItemDetails is set to Fine.

Applicable values: See Country.

See (GetSearchResultsExpress) ItemDetails.
ItemArray.Item.Currency CurrencyCodeType Conditionally Currency associated with the item's price information. 3-letter ISO 4217 currency code that corresponds to the site specified in the item-listing request. Also applicable as input to AddItem and related calls when you list items to Half.com (specify USD). You cannot modify a listing's currency when you revise or relist an item.

Applicable values: See Currency.

See Field Differences for eBay Sites.
ItemArray.Item.GiftIcon int Conditionally If true, a generic gift icon displays next the listing's title in search and browse pages. GiftIcon must be set to be able to use GiftServices options. Note that one/zero is returned instead of true/false. Not applicable to Half.com.
ItemArray.Item.ItemID ItemIDType (string) Conditionally The ID that uniquely identifies the item listing. The ID is generated by eBay after an item is listed. You cannot choose or revise this value.

Also applicable to Half.com. For Half.com, you can specify either ItemID or SellerInventoryID in a ReviseItem request to uniquely identify the listing.

In GetItemRecommendations, the item ID is required when the value of ListingFlow is ReviseItem or RelistItem, but it is not applicable when the value of ListingFlow is AddItem.

In GetSearchResultsExpress, always returned when ItemArray.Item is returned.

For GetCart/SetCart input, this is only required if the parent container is submitted.
Max length: 19. (Note: The eBay database specifies 38. Currently, Item IDs are usually 9 to 12 digits.).
ItemArray.Item.ItemSpecifics NameValueListArrayType Conditionally A list of attribute or Item Specific name and value pairs that the seller specified for the item.

In the AddItem family of calls, use this for specifying custom Item Specifics. (If you are including an Item Condition or Return Policy, use AttributeSetArray for these details as usual instead. You can use AttributeSetArray and ItemSpecifics in the same request in this case.)

To determine which categories support custom Item Specifics, use GetCategoryFeatures.

Note: If you are trying to list with ID-based attributes from GetAttributesCS or GetProductSellingPages, use AttributeSetArray instead.

To retrieve recommended Item Specifics, use GetCategorySpecifics or GetItemRecommendations.

In GetItemRecommendations, pass in the PrimaryCategory and (optionally) Title to retrieve recommended names and values.

With GetItem, this is only returned when you specify IncludeItemSpecifics in the request (and the seller included custom Item Specifics in their listing).

For ReviseItem only: When you revise a listing, if the listing has bids and ends within 12 hours, you cannot change or add Item Specifics. If the listing has bids but ends in more than 12 hours, you cannot change existing Item Specifics, but you can add Item Specifics that were not previously specified.

To delete all Item Specifics when you revise or relist, specify Item.ItemSpecifics in DeletedField and don't pass ItemSpecifics in the request.

With GetProducts, only the item condition is returned at the item level. Additional attributes that were pre-filled from the catalog are returned in Product.ItemSpecifics.

See:
    Working with Custom Item Specifics
    (GetProducts) Product.ItemSpecifics
ItemArray.Item.ItemSpecifics
  .NameValueList
NameValueListType
(repeatable)
Conditionally Contains the name of an Item Specific, and one or more corresponding values, if any.

In the AddItem family of calls, this is only required when the ItemSpecifics container is specified.

In GetSearchResults, GetSearchResultsExpress, GetProducts, GetCategorySpecifics, (and soon in GetItem), this is only returned when the ItemSpecifics (or ItemSpecific) node is returned.
ItemArray.Item.ItemSpecifics
  .NameValueList.Name
string Conditionally A name in a name/value pair.

In the AddItem family of calls, this can be any name that the seller wants to use. However, to help buyers find items more easily, it is a good idea to try to use a recommended name when possible (see GetCategorySpecifics or GetItemRecommendations). You cannot specify the same name twice within the same listing.

In the GetCategorySpecifics and GetItemRecommendations response, this is a recommended (popular) name to use for items in the specified category (e.g., "Brand" might be recommended, not "Manufacturer").


In the GetSearchResults response, this is an attribute name that was used in a listing. Specifically: If SearchRequest was used to perform a "Product Finder" search, this contains the name of one attribute (i.e, the name of one Item Specifics field). If IncludeCondition was true in the request, this returns the condition attribute name (e.g., "Item Condition").

In the GetSearchResultsExpress response, this is an attribute name that is defined for a catalog product. Only returned when ProductDetails is set to Fine.

In the GetProducts response, this is an attribute name that is defined for a catalog product.
ItemArray.Item.ItemSpecifics
  .NameValueList.Value
string
(repeatable)
Conditionally A value associated with the name.

In the GetCategorySpecifics and GetItemRecommendations response, the most highly recommended values are returned first. For these calls, Value is only returned when recommended values are available.

In the AddItem family of calls, you can only specify one value per Item Specific. (If you specify multiple values, eBay only stores the first one.)


In the GetSearchResults response, if SearchRequest was used to perform a "Product Finder" search, this contains the value of one attribute. If IncludeCondition was true in the request, this returns the condition attribute value (e.g., "New").

In the GetSearchResultsExpress response, this is only returned when ProductDetails is set to Fine.
ItemArray.Item.ListingDetails ListingDetailsType Conditionally Various details about a listing, some of which are calculated or derived after the item is listed. These include the start and end time, converted (localized) prices, and certain flags that indicate whether the seller specified fields whose values are not visible to the requesting user. For GetMyeBayBuying, returned as a self- closed element if no listings meet the request criteria. Not applicable to Half.com.
ItemArray.Item.ListingDetails
  .EndTime
dateTime Conditionally Time stamp (in GMT) when the listing is scheduled to end (calculated based on the values of StartTime and ListingDuration) or the actual end time if the item has ended. In GetSearchResults, for StoresFixedPrice items which are "Good Till Canceled," this value is 5 minutes later than the actual end time of the item. The discrepancy is intended to facilitate renewal every 30 days of such items' end times.
ItemArray.Item.ListingDetails
  .StartTime
dateTime Conditionally The StartTime value returned by non-search calls such as GetItem is the time stamp (in GMT) for when the item was listed. The StartTime value returned by search calls such as GetSearchResults and GetCategoryListings may vary from the value returned by GetItem. The time value is the same value in the following: The StartTime value returned by GetSearchResults, the StartTime value returned by GetCategoryListings, and the time the item became available for search on the eBay site.
ItemArray.Item.ListingDetails
  .ViewItemURL
anyURI Conditionally The URL of the Web page where a user can view the listing. On the US site, this is called the "View Item" page. If you enabled affiliate tracking in a search-related call (for example, if you used the AffiliateTrackingDetails container in an applicable call), ViewItemURL contains a string that includes affiliate tracking information (see the eBay Partner Network). For GetSearchResultsExpress, the ViewItemURL field is returned only if you specified AffiliateTrackingDetails in the request.
ItemArray.Item.ListingDetails
  .ViewItemURLForNaturalSearch
anyURI Conditionally This URL takes you to the same View Item page as ViewItemURL, but this URL is optimized to support natural search. That is, this URL is designed to make items on eBay easier to find via popular Internet search engines. For example, this URL specifies the item title, and it is optimized for natural search: "_W0QQ" is like "?" (question mark), "QQ" is like "&" (ampersand), and "Z" is like "=" (equals sign).

Note: This URL may include additional query parameters that don't appear in ViewItemURL and vice versa. You should not modify the query syntax. For example, eBay won't recognize the URL if you change QQ to ?.
ItemArray.Item.ListingDuration token Conditionally Describes the number of days the seller wants the listing to be active (available for bidding/buying). The duration specifies the seller's initial intent at listing time. The end time for a listing is calculated by adding the duration to the item's start time. If the listing ends early, the value of the listing duration does not change. When a listing's duration is changed, any related fees (e.g., 10-day fee) may be debited or credited (as applicable).

The valid choice of values depends on the listing format (see Item.ListingType). For a list of valid values, call GetCategoryFeatures with DetailLevel set to ReturnAll and look for ListingDurations information.

Also required for Half.com (but only specify GTC).

When you revise a listing, the duration cannot be reduced if it will result in ending the listing within 24 hours of the current date-time. You are only allowed to increase the duration of the listing if fewer than 2 hours have passed since you initially listed the item and the listing has no bids. You can decrease the value of this field only if the listing has no bids (or no items have sold) and the listing does not end within 12 hours.

See:
    GetCategoryFeatures
    Fees per Site
ItemArray.Item
  .ListingEnhancement
ListingEnhancementsCodeType
(repeatable)
Conditionally Describes listing upgrades that sellers can select for a fee, such as the BoldTitle upgrade. Also includes feature packs for saving on listing upgrades. See Listing Upgrades in the eBay Web site online help.

You cannot remove listing upgrades when you revise a listing. When you relist an item, use DeletedField to remove a listing upgrades.

For AddLiveAuctionItem and ReviseLiveAuctionItem, you can specify a maximum of 10 featured lot items per live auction catalog. Not applicable to Half.com. This field is ignored when Item.ListingType=Express.

Applicable values:

•   BasicUpgradePackBundle

(in/out) No longer applicable to any site. Formerly, a feature pack applicable to the Australia site (site ID 15, abbreviation AU) only. Contained the Gallery and Subtitle features.

•   BoldTitle

(in/out) If specified, the seller wants the title for the item's listing to be in boldface type. Applicable listing fees apply. Does not affect the item subtitle (Item.SubTitle), if any. Not applicable to eBay Motors.

•   Border

(in/out) If specified, the seller wants the item to be displayed with a border that goes around the item in search result pages that return multiple items. The border differentiates the item from other items in the list. Applicable listing fees apply.

•   CustomCode

(in/out) Reserved for internal or future use.

•   Featured

(in/out) Listing is a "Featured Plus" item. The item will display prominently in the Featured Items section of its category list, and it will stand out on search results pages. It will also display in the regular, non-featured item list. Only available to users with a Feedback rating of 10 or greater.

•   Highlight

(in/out) Listing is highlighted in a different color in lists.

•   HomePageFeatured

(in/out) Listing will have a chance to rotate into a special display on eBay's Home page. Your item is very likely to show up on the Home page, although eBay does not guarantee that your item will be highlighted in this way. This is the highest level