GetProductSearchResults

Searches for Pre-filled Item Information within one or more characteristic sets. This kind of search is only applicable in the context of the Sell Your Item use case. Use the response to present the seller with a list of products found in a catalog. (For buy-side searches, use GetSearchResults.)

See the Attributes and Catalogs section of the eBay Web Services guide for background information and terminology definitions, as well as information about how to use this call in the Sell Your Item flow.

You can use this call to search for different products at the same time. That is, this call can perform batch searches.

Given an array of ProductSearch properties that are configured with a list of search attributes or keywords (and other information), GetProductSearchResults searches an eBay catalog for products that match each query. Some queries can be configured to also specify a sort order for the results.

To configure a ProductSearch object to search by attributes, you need a valid combination of search attributes. If you want to use a sort order other than the default order, you also need a valid sort attribute. We offer two calls that return product search and sort attributes. Use GetCategory2CS to determine which one of these calls you can use for a given category. At least one approach is offered for each catalog-enabled category, and some cases, both are offered.

GetProductSearchPage: Use this call when you want to configure a simple query that consists of a single search attribute (with a value). This retrieves a single product or a very short list of search results to choose from. Some products are fairly easy to find based on a single attribute. For example, in Consumer Electronics categories (Digital Cameras, Cell Phones, and PDAs), you can specify a unique (or nearly unique) identifier, like a part number. In Media categories (Books, DVDs & Movies, Music, and Video Games), you can specify a descriptive name, like a title.

GetProductFinder: Use this call when you want to configure a complex query. In the Sell Your Item flow, this is a complex query against the eBay product catalog. Currently, this type of search is available in Consumer Electronics categories only. In this type of search, you specify values for multiple attributes, like Brand and Resolution (i.e., number of megapixels). This retrieves a list of matching products. This approach is useful when the user does not know the part number, or a product does not have a single, distinguishing feature that is easy to search on. For example, searching for a digital camera based solely on the brand would likely yield far too many results to be useful. Searching on the brand, product line, and resolution will retrieve a much shorter list of results.

Alternatively, you can search on a particular keyword that appears in a product's title or Item Specifics. For this, you use GetProductSearchResults and and pass in one or more text strings (with optional wildcards) in ProductSearch.QueryKeywords.

When you use a keyword query, the search criteria are not restricted to the results of a product search page or product finder, so the criteria are not tied to a particular characteristic set. This means you can search across multiple characteristic sets using the same query. This is useful when the user wants to broaden their search across multiple categories. For example, a seller who sells Jazz books, Jazz CDs, and Jazz movies may want to search for "Bird" across multiple categories. Specify the characteristic set IDs of interest by using CharacteristicSetIDs.

GetProductSearchResults returns a list of matching products, if any. Each product is represented as a list of attributes (Item Specifics) plus other identifying information, such as a product ID and a stock photo.

Once the user selects a product from the list (this may require a call to GetProductFamilyMembers to retrieve additional products to choose from), pass its ID in a GetProductSellingPages request to retrieve more detailed information about each product, including a set of optional Item Specifics that the seller can use in addition to the pre-filled Item Specifics (see GetProductSellingPages).

To use this data in a listing, pass the product ID and the optional Item Specifics in the seller's listing request (AddItem).

See:
    Working with Attribute-Based Features
    The Catalog Product (Pre-filled Item) API
    Searching for Pre-filled Item Information
    Searching for Catalog Products

Related calls:



Back to top

GetProductSearchResults 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"?>
<GetProductSearchResultsRequest xmlns="urn:ebay:apis:eBLBaseComponents">
  <!-- Standard Input Fields -->
  <ErrorLanguage> string </ErrorLanguage>
  <MessageID> string </MessageID>
  <Version> string </Version>
  <WarningLevel> WarningLevelCodeType </WarningLevel>
  <!-- Call-specific Input Fields -->
  <ProductSearch> ProductSearchType 
    <AttributeSetID> int </AttributeSetID>
    <AvailableItemsOnly> boolean </AvailableItemsOnly>
    <CharacteristicSetIDs> CharacteristicSetIDsType 
      <ID> string </ID>
      <!-- ... more ID nodes here ... -->
    </CharacteristicSetIDs>
    <MaxChildrenPerFamily> int </MaxChildrenPerFamily>
    <Pagination> PaginationType 
      <EntriesPerPage> int </EntriesPerPage>
      <PageNumber> int </PageNumber>
    </Pagination>
    <ProductFinderID> int </ProductFinderID>
    <ProductSearchID> string </ProductSearchID>
    <QueryKeywords> string </QueryKeywords>
    <SearchAttributes> SearchAttributesType 
      <AttributeID> int </AttributeID>
      <DateSpecifier> DateSpecifierCodeType </DateSpecifier>
      <RangeSpecifier> RangeCodeType </RangeSpecifier>
      <ValueList> ValType 
        <ValueLiteral> string </ValueLiteral>
      </ValueList>
      <!-- ... more ValueList nodes here ... -->
    </SearchAttributes>
    <!-- ... more SearchAttributes nodes here ... -->
    <SortAttributeID> int </SortAttributeID>
  </ProductSearch>
  <!-- ... more ProductSearch nodes here ... -->
</GetProductSearchResultsRequest>
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.
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
ProductSearch ProductSearchType
(repeatable)
Required Specifies the keywords or attributes that make up the product query, with pagination instructions. ProductSearch is a required input. To search for multiple different products at the same time (i.e., to perform a batch search), pass in multiple ProductSearch properties.

See Searching for Pre-filled Item Information.
ProductSearch.AttributeSetID int Conditional For GetProductFinder and GetProductSearchResults only: Identifier for a characteristic set (an attribute set) that is mapped to a catalog-enabled category (unique across all eBay sites). Required when you use SearchAttributes (for searches based on product search page and product finder data). Returns an error with QueryKeywords (use CharacteristicSetIDs instead). Use GetProductSearchPage or GetProductFinder to determine valid IDs for the type of search you are performing.

For GetProducts only: This field is not applicable to GetProducts. However, if you are using a SOAP toolkit and you get an error indicating that this field is required for GetProducts, you can specify this field with any integer value. It will be ignored by eBay.

See:
    Searching with a Single-Attribute Search Page
    Searching with a Sell-Side Product Finder
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
  .MaxChildrenPerFamily
int Conditional Pagination instruction that specifies the maximum quantity of products to return for each product family within the search response whose ID matches the current request's ID. In the response, if the last family returned contains MaxChildrenPerFamily or fewer additional products, those additional products are also returned (i.e., the actual quantity returned for the last family can exceed the specified maximum value). See "Limit the Quantity of Products Returned Per Family" in the eBay Web Services Guide. The value should not include punctuation (i.e., a thousands separator is not valid).
Min: 1. Max: 20000. Default: 5.

See Step2:Limit the Quantity of Products Returned Per Family.
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: 50000. Default: 50.
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: 0. Max: 2147483647. Default: 0.
ProductSearch.ProductFinderID int Conditional Required when you are performing a sell-side product finder search. (Not applicable to product search page searches.) Numeric identifier for a sell-side product finder that was used to retrieve the search attributes being used in the request. The product finder must be mapped to a catalog-enabled category (i.e., it cannot be a buy-side product finder ID) associated with the characteristics set. Use a product finder when you want to specify multiple attributes in a product search query. Call GetCategory2CS to determine which categories support sell-side product finder searches.

See Searching with a Sell-Side Product Finder.
ProductSearch.ProductSearchID string Optional Unique alphanumeric key help you distinguish between query results in the response. You define the key. Each search request ID must be unique within the same call. Primarily useful when conducting multiple searches in the same call. If not specified, the ProductSearchResult.ID values in the response are indexed starting from 0 (zero).
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.
ProductSearch.SearchAttributes SearchAttributesType
(repeatable)
Conditional A predefined attribute against which to search (e.g., Author). Use this to create a query based on a set of Item Specifics from the catalog. Both the product title and product Item Specifics are searched. If the query includes multiple SearchAttributes fields (one for each attribute), the search engine will apply "AND" logic to the query. Call GetProductSearchPage or GetProductFinder to determine the list of valid attributes and how many are permitted for the specified characteristic set. See the eBay Web Services guide for details. For each ProductSearch, either SearchAttributes or QueryKeywords is required (but do not pass both).
ProductSearch.SearchAttributes
  .AttributeID
int Required Unique identifier for the attribute within the characteristic set. Required if SearchAttributes is specified.
ProductSearch.SearchAttributes
  .DateSpecifier
DateSpecifierCodeType Conditional Specifies the date sub-component that the attribute represents. This only applies to date attributes. Required when searching by date attributes. Allows for separate text fields or drop-down lists to be rendered for each sub-component. For example, the day, month, and year can be rendered as separate drop-down lists.

Applicable values:

•   CustomCode

(in) Reserved for internal or future use.

•   D

(in) The day subcomponent of a date.

•   M

(in) The month subcomponent of a date.

•   Y

(in) The year subcomponent of a date.


ProductSearch.SearchAttributes
  .RangeSpecifier
RangeCodeType Conditional Indicates that the attribute represents the high or low end in a range, such as a date range or a price range. Required when searching on ranges.

Applicable values:

•   CustomCode

(in) Reserved for internal or future use.

•   High

(in) High end of the range.

•   Low

(in) Low end of the range.


ProductSearch.SearchAttributes
  .ValueList
ValType
(repeatable)
Conditional Container for the list of one or more valid values that the user has selected for the searchable attribute. If multiple values are specified, the search engine applies "OR" logic to the query (i.e., at least one of the specified values must match). Required if SearchAttributes is specified.
ProductSearch.SearchAttributes
  .ValueList.ValueLiteral
string Conditional The descriptive name of an attribute or characteristic value (e.g., "New" might be a literal value for a Condition attribute). In item-listing requests, if you send ValueID with an id of -3 or -6, you must use ValueLiteral to enter the value the user specified. Otherwise, eBay treats the request as if no value was sent at all. For eBay.com listings, use AttributeSetArray.AttributeSet.Attribute.Value.ValueLiteral. The max length allowed varies per attribute.

For GetSearchResults requests (in SearchRequest), only use ValueLiteral for attributes that support free-text values. That is, if eBay defines a value name and a unique value ID for an attribute in GetProductFinder, do not pass the name in ValueLiteral (because it won't work). Instead, specify the unique value ID in ValueID.

For Half.com, use AttributeArray.Attribute.Value.ValueLiteral in listing requests. That is, the parent elements and usage for Half.com differs from eBay's standard Item Specifics format (and there is no relationship to GetAttributesCS). For Half.com, AttributeArray.Attribute.Value.ValueLiteral is required when you use AddItem. See the eBay Web Services Guide for valid values. For the Half.com Notes attribute, the max length is 500 characters. You can revise AttributeArray.Attribute.Value.ValueLiteral for Half.com listings.
Max length: see description.
ProductSearch.SortAttributeID int Optional Unique identifier for a sortable attribute. Use GetProductSearchPage or GetProductFinder to determine the valid sort attribute IDs for the specified characteristic set (including the default sort attribute that will be used if you do not specify this field).

See Step3:Specify the Product Sort Criteria.



Back to top

GetProductSearchResults 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"?>
<GetProductSearchResultsResponse 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 -->
  <DataElementSets attributeSetID="int"> DataElementSetType 
  </DataElementSets>
  <!-- ... more DataElementSets nodes here ... -->
  <ProductSearchResult> ProductSearchResultType 
    <AttributeSet> ResponseAttributeSetType 
      <ApproximatePages> int </ApproximatePages>
      <AttributeSetID> int </AttributeSetID>
      <HasMore> boolean </HasMore>
      <ProductFamilies hasMoreChildren="boolean"> ProductFamilyType 
        <FamilyMembers productID="string" stockPhotoURL="anyURI" title="string"> ProductType 
          <CharacteristicsSet> CharacteristicsSetType 
            <AttributeSetID> int </AttributeSetID>
            <Characteristics> CharacteristicType 
              <AttributeID> int </AttributeID>
              <DateFormat> string </DateFormat>
              <DisplaySequence> string </DisplaySequence>
              <DisplayUOM> string </DisplayUOM>
              <Label visible="boolean"> LabelType 
                <Name> string </Name>
              </Label>
              <ValueList> ValType 
                <ValueID> int </ValueID>
                <ValueLiteral> string </ValueLiteral>
              </ValueList>
              <!-- ... more ValueList nodes here ... -->
            </Characteristics>
            <!-- ... more Characteristics nodes here ... -->
          </CharacteristicsSet>
          <DetailsURL> anyURI </DetailsURL>
          <MaxPrice> AmountType (double) </MaxPrice>
          <MinPrice> AmountType (double) </MinPrice>
          <NumItems> int </NumItems>
        </FamilyMembers>
        <!-- ... more FamilyMembers nodes here ... -->
        <ParentProduct productID="string" stockPhotoURL="anyURI" title="string"> ProductType 
          <CharacteristicsSet> CharacteristicsSetType 
            <AttributeSetID> int </AttributeSetID>
            <Characteristics> CharacteristicType 
              <AttributeID> int </AttributeID>
              <DateFormat> string </DateFormat>
              <DisplaySequence> string </DisplaySequence>
              <DisplayUOM> string </DisplayUOM>
              <Label visible="boolean"> LabelType 
                <Name> string </Name>
              </Label>
              <ValueList> ValType 
                <ValueID> int </ValueID>
                <ValueLiteral> string </ValueLiteral>
              </ValueList>
              <!-- ... more ValueList nodes here ... -->
            </Characteristics>
            <!-- ... more Characteristics nodes here ... -->
          </CharacteristicsSet>
          <DetailsURL> anyURI </DetailsURL>
        </ParentProduct>
      </ProductFamilies>
      <!-- ... more ProductFamilies nodes here ... -->
      <ProductFinderConstraints> ProductFinderConstraintType 
        <DisplayName> string </DisplayName>
        <DisplayValue> string </DisplayValue>
      </ProductFinderConstraints>
      <!-- ... more ProductFinderConstraints nodes here ... -->
      <TooManyMatchesFound> boolean </TooManyMatchesFound>
      <TotalProducts> int </TotalProducts>
    </AttributeSet>
    <!-- ... more AttributeSet nodes here ... -->
    <DisplayStockPhotos> boolean </DisplayStockPhotos>
    <ID> string </ID>
    <NumProducts> string </NumProducts>
  </ProductSearchResult>
  <!-- ... more ProductSearchResult nodes here ... -->
</GetProductSearchResultsResponse>
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
DataElementSets DataElementSetType
(repeatable)
Always Container for one or more DataElement fields containing supplemental helpful data. A DataElement field is an HTML snippet that specifies hints for the user, help links, help graphics, and other supplemental information that varies per characteristic set. Usage of this information is optional and may require you to inspect the information to determine how it can be applied in an application. Also returned with warnings when no matches are found.
DataElementSets
  [ attribute attributeSetID ]
int Always Matches the AttributeSetID associated with a response returned from the same call that returned the data element set. As calls like GetProductSearchResults can perform batch searches, this ID helps you determine which attribute set the data element set is associated with.
ProductSearchResult ProductSearchResultType
(repeatable)
Always Contains the attributes and product details that match the attributes or query keywords passed in the request. Always returned when product search results are found.

See Searching for Pre-filled Item Information.
ProductSearchResult
  .AttributeSet
ResponseAttributeSetType
(repeatable)
Always A result containing a set of one or more product families. For GetProductSearchResults, if QueryKeywords and multiple characteristic set IDs were specified in the request, multiple AttributeSet objects can be returned. Each AttributeSet corresponds to a characteristic set ID specified in the request. See the eBay Web Services guide for more information about working with this data. For GetProductSearchResults, only returned with request version 387 and higher. For GetProductFamilyMembers, only returned with request version 415 and higher.
ProductSearchResult
  .AttributeSet.ApproximatePages
int Always As calculating the potentially large number of pages can affect this call's performance, and since the actual number of products returned per page can vary in each response, we cannot provide a precise total page count. Therefore, this is an estimated page count based on TotalProducts and other factors, such as the number of records eBay's search engine has examined so far in the product database. Once PageNumber approaches or exceeds this page count, we examine more records in the database and we may recalculate this value. If you estimate the number of pages yourself by using TotalProducts, EntriesPerPage, and MaxChildrenPerFamily (which is also an approximate value), your result will not necessarily match ApproximatePages.
Min: 1.

See Step4:Specify Pagination Properties.
ProductSearchResult
  .AttributeSet.AttributeSetID
int Always Numeric value that identifies the attribute set in a language-independent way. Unique across all eBay sites. Corresponds to a characteristic set associated with the current set of search results. Always returned when AttributeSet is returned.
ProductSearchResult
  .AttributeSet.HasMore
boolean Always If true, the query results contain additional pages (higher than the current page number). You can retrieve more results by incrementing the PageNumber value that was passed in the request.

See Step6:Retrieve More Pages (If Necessary).
ProductSearchResult
  .AttributeSet.ProductFamilies
ProductFamilyType
(repeatable)
Always ProductFamilies represents one product family. Multiple ProductFamilies properties can be returned. A product family identifies a group of related products. For example, the movie "My Favorite Movie: The Sequel" might be released on DVD, but there might be several editions of the DVD (e.g., in different languages) with different ISBN numbers. All variations are part of the same product family ("My Favorite Movie: The Sequel" in the DVD format). See "Limit the Quantity of Products Returned Per Family" in the eBay Web Services Guide. Always returned when AttributeSet is returned.

See Step2:Limit the Quantity of Products Returned Per Family.
ProductSearchResult
  .AttributeSet.ProductFamilies
  [ attribute hasMoreChildren ]
boolean Always If true, the product family has more products than you requested in MaxChildrenPerFamily for a query in the GetProductSearchResults request. In this case, no products are returned in the GetProductSearchResults response. (Call GetProductFamilyMembers to retrieve all products in the family.) If false, the product family has MaxChildrenPerFamily or fewer product children, and the call returns all products in the family.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
ProductType
(repeatable)
Always A set of products (within the same product family) that match the search query.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  [ attribute productID ]
string Always For GetProductFamilyMembers, GetProductSearchResults, and GetProductSellingPages, a unique identifier for the product. The ID is defined in an eBay catalog. Product IDs may change over time. Therefore, use the catalog search calls (GetProductSearchResults and GetProductFamilyMembers) to update any product IDs that you store locally.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  [ attribute stockPhotoURL ]
anyURI Conditionally Fully qualified URL for a standard image that is associated with the product, if available. Allows the user to preview the image from your application. A user can choose to include the stock photo in a listing.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  [ attribute title ]
string Always The name of the product, as defined within the catalog. Not necessarily the same as the "Title" attribute in the characteristics set meta-data, if any. On the eBay site, this title serves as the basis for the suggested item title (truncated to the max length permitted for Title in item-listing calls). Applications can use this value to supply a suggested listing title to users.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  .CharacteristicsSet
CharacteristicsSetType Always A set of characteristics that describe the product in a standardized way. In responses, only the attributes and values that applicable for the specified product are returned.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  .CharacteristicsSet
  .AttributeSetID
int Always Numeric value that identifies the characteristic set in a language-independent way. Identifies the characteristic set that is mapped to a catalog-enabled category associated with the product. Unique across all eBay sites.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  .CharacteristicsSet
  .Characteristics
CharacteristicType
(repeatable)
Always A salient aspect or feature of an item. Used to describe an item in a standard way so that buyers can find it more easily. An individual, standardized characteristic that is common to all items within the specified characteristic set. In the context of GetProductSearchPage, each characteristic identifies a single searchable attribute. A searchable attribute is a product aspect or feature that can be used as a criterion in a search for catalog content. For example, "Title" might be a criterion for searching the book catalog for Pre- filled Item Information related to books. See the eBay Web Services guide for more information.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  .CharacteristicsSet
  .Characteristics.AttributeID
int Always Constant value that identifies the characteristic in a language-independent way. Unique within the characteristic set.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  .CharacteristicsSet
  .Characteristics.DateFormat
string Conditionally Applicable when working with Pre-filled Item Information (Catalogs) functionality. Returned if the characteristic is a Date data type. Specifies the pattern to use when presenting the date to a user. Possible values: Day/Month/Year, Month/Year, Year Only. For example, the Year Only format would indicate that the date should be a value like 1999. Output only.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  .CharacteristicsSet
  .Characteristics
  .DisplaySequence
string Always The suggested order in which the characteristic should be presented to the user in a list. Indicates the relative position of the sort key in the list of characteristics. The characteristic with the lowest display sequence is considered the default sort key in calls to GetProductSearchResults. Aside from that, usage of this display sequence information is optional. For example, in an application with a graphical user interface, a characteristic with a display sequence of 2 could be presented before one with a display sequence of 3 in a drop-down list. If multiple sort characteristics are returned for a characteristic set, compare their display sequence values to determine the lowest available value (usually 0) and the overall sequence.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  .CharacteristicsSet
  .Characteristics.DisplayUOM
string Conditionally Applicable when working with Pre-filled Item Information (Catalogs) functionality. The unit of measure (e.g., Inch) to use when the characteristic is numeric indicates a measurement. Not returned if not applicable. Output only.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  .CharacteristicsSet
  .Characteristics.Label
LabelType Always Applicable when working with Pre-filled Item Information (Catalogs) functionality. The label to display when presenting the attribute to a user. Not necessarily the same as the attribute's label as defined in the characteristic set (i.e., the label could be overridden by the catalog).
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  .CharacteristicsSet
  .Characteristics.Label
  [ attribute visible ]
boolean Always If true, the label name is visible on the eBay site. If false, the label is not visible. Usage of this information is optional. You are not required to display labels in the same manner as eBay.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  .CharacteristicsSet
  .Characteristics.Label.Name
string Always The label to display when presenting the attribute to a user (e.g., "Title" or "Manufacturer").

The label is defined for the product, and is therefore not necessarily the same as the label that is defined in the characteristic set returned by another call like GetAttributesCS.

For GetProductSearchPage: If the attribute's label is "Keyword", it means you can enter the attribute's ID and a string value in the SearchAttributes node of GetProductSearchResults, and then eBay will search for the string against one or more attributes in the catalog. For example, for strollers, GetProductSearchPage only returns a Keyword attribute instead of separate Brand, Product Type, and Model attributes (for the US site). So, you can use the single Keyword attribute to search against all of those attributes.

ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  .CharacteristicsSet
  .Characteristics.ValueList
ValType
(repeatable)
Always List of one or more valid values for the characteristic.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  .CharacteristicsSet
  .Characteristics.ValueList
  .ValueID
int Always Constant value that identifies the attribute or characteristic in a language-independent way. Unique within the characteristic set.

In item-listing requests, if the ID is defined as -3 or -6 (Other) in GetAttributesCS or GetProductSellingPages, use ValueLiteral to specify the string value that the user entered. Otherwise, use ValueID to specify the ID that is pre-defined in GetAttributesCS or GetProductSellingPages. In item-listing requests and product searches, the possible ID values are:
-3 = User entered an arbitrary value (not an "Other" field)
-6 = User entered a value in an "Other" field
-100 = Value not specified (null)
#### (integer) = Identifier for a pre-defined value that the user selected (e.g., -14 or 1001)
For eBay.com, required if ValueList is specified. Not applicable to Half.com.

See Attribute Elements.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers
  .CharacteristicsSet
  .Characteristics.ValueList
  .ValueLiteral
string Always The descriptive name of an attribute or characteristic value (e.g., "New" might be a literal value for a Condition attribute). In item-listing requests, if you send ValueID with an id of -3 or -6, you must use ValueLiteral to enter the value the user specified. Otherwise, eBay treats the request as if no value was sent at all. For eBay.com listings, use AttributeSetArray.AttributeSet.Attribute.Value.ValueLiteral. The max length allowed varies per attribute.

For GetSearchResults requests (in SearchRequest), only use ValueLiteral for attributes that support free-text values. That is, if eBay defines a value name and a unique value ID for an attribute in GetProductFinder, do not pass the name in ValueLiteral (because it won't work). Instead, specify the unique value ID in ValueID.

For Half.com, use AttributeArray.Attribute.Value.ValueLiteral in listing requests. That is, the parent elements and usage for Half.com differs from eBay's standard Item Specifics format (and there is no relationship to GetAttributesCS). For Half.com, AttributeArray.Attribute.Value.ValueLiteral is required when you use AddItem. See the eBay Web Services Guide for valid values. For the Half.com Notes attribute, the max length is 500 characters. You can revise AttributeArray.Attribute.Value.ValueLiteral for Half.com listings.
Max length: see description.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers.DetailsURL
anyURI Always Fully qualified URL for optional information about the product, such as a movie's description or film credits. This information is hosted through the eBay site and cannot be edited. Applications can include this URL as a link in product search results so that end users can view additional descriptive details about the product.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers.MaxPrice
AmountType (double) Always Highest current price of active and ended listings on the specified eBay site that were pre-filled based on this product. The value is in the specified site's currency. Round numbers (such as 15.0) may only show one zero after the decimal (as with any double in the schema).
Min: 0.0.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers.MinPrice
AmountType (double) Always Lowest current price of active and ended listings on the specified eBay site that were pre-filled based on this product. The value is in the specified site's currency.
Min: 0.0.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .FamilyMembers.NumItems
int Always Total number of active listings on the specified eBay site that were pre-filled based on this product.
Min: 0.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
ProductType Always A transient header that describes the current search results. Contains a an ID, a subset of attributes, and a typical stock photo to help a user easily distinguish the products in the current result set from products in other result sets returned in the same response. One ParentProduct is returned per ProductFamily.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  [ attribute productID ]
string Always For GetProductFamilyMembers, GetProductSearchResults, and GetProductSellingPages, a unique identifier for the product. The ID is defined in an eBay catalog. Product IDs may change over time. Therefore, use the catalog search calls (GetProductSearchResults and GetProductFamilyMembers) to update any product IDs that you store locally.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  [ attribute stockPhotoURL ]
anyURI Conditionally Fully qualified URL for a standard image that is associated with the product, if available. Allows the user to preview the image from your application. A user can choose to include the stock photo in a listing.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  [ attribute title ]
string Always The name of the product, as defined within the catalog. Not necessarily the same as the "Title" attribute in the characteristics set meta-data, if any. On the eBay site, this title serves as the basis for the suggested item title (truncated to the max length permitted for Title in item-listing calls). Applications can use this value to supply a suggested listing title to users.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  .CharacteristicsSet
CharacteristicsSetType Always A set of characteristics that describe the product in a standardized way. In responses, only the attributes and values that applicable for the specified product are returned.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  .CharacteristicsSet
  .AttributeSetID
int Always Numeric value that identifies the characteristic set in a language-independent way. Identifies the characteristic set that is mapped to a catalog-enabled category associated with the product. Unique across all eBay sites.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  .CharacteristicsSet
  .Characteristics
CharacteristicType
(repeatable)
Always A salient aspect or feature of an item. Used to describe an item in a standard way so that buyers can find it more easily. An individual, standardized characteristic that is common to all items within the specified characteristic set. In the context of GetProductSearchPage, each characteristic identifies a single searchable attribute. A searchable attribute is a product aspect or feature that can be used as a criterion in a search for catalog content. For example, "Title" might be a criterion for searching the book catalog for Pre- filled Item Information related to books. See the eBay Web Services guide for more information.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  .CharacteristicsSet
  .Characteristics.AttributeID
int Always Constant value that identifies the characteristic in a language-independent way. Unique within the characteristic set.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  .CharacteristicsSet
  .Characteristics.DateFormat
string Conditionally Applicable when working with Pre-filled Item Information (Catalogs) functionality. Returned if the characteristic is a Date data type. Specifies the pattern to use when presenting the date to a user. Possible values: Day/Month/Year, Month/Year, Year Only. For example, the Year Only format would indicate that the date should be a value like 1999. Output only.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  .CharacteristicsSet
  .Characteristics
  .DisplaySequence
string Always The suggested order in which the characteristic should be presented to the user in a list. Indicates the relative position of the sort key in the list of characteristics. The characteristic with the lowest display sequence is considered the default sort key in calls to GetProductSearchResults. Aside from that, usage of this display sequence information is optional. For example, in an application with a graphical user interface, a characteristic with a display sequence of 2 could be presented before one with a display sequence of 3 in a drop-down list. If multiple sort characteristics are returned for a characteristic set, compare their display sequence values to determine the lowest available value (usually 0) and the overall sequence.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  .CharacteristicsSet
  .Characteristics.DisplayUOM
string Conditionally Applicable when working with Pre-filled Item Information (Catalogs) functionality. The unit of measure (e.g., Inch) to use when the characteristic is numeric indicates a measurement. Not returned if not applicable. Output only.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  .CharacteristicsSet
  .Characteristics.Label
LabelType Always Applicable when working with Pre-filled Item Information (Catalogs) functionality. The label to display when presenting the attribute to a user. Not necessarily the same as the attribute's label as defined in the characteristic set (i.e., the label could be overridden by the catalog).
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  .CharacteristicsSet
  .Characteristics.Label
  [ attribute visible ]
boolean Always If true, the label name is visible on the eBay site. If false, the label is not visible. Usage of this information is optional. You are not required to display labels in the same manner as eBay.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  .CharacteristicsSet
  .Characteristics.Label.Name
string Always The label to display when presenting the attribute to a user (e.g., "Title" or "Manufacturer").

The label is defined for the product, and is therefore not necessarily the same as the label that is defined in the characteristic set returned by another call like GetAttributesCS.

For GetProductSearchPage: If the attribute's label is "Keyword", it means you can enter the attribute's ID and a string value in the SearchAttributes node of GetProductSearchResults, and then eBay will search for the string against one or more attributes in the catalog. For example, for strollers, GetProductSearchPage only returns a Keyword attribute instead of separate Brand, Product Type, and Model attributes (for the US site). So, you can use the single Keyword attribute to search against all of those attributes.

ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  .CharacteristicsSet
  .Characteristics.ValueList
ValType
(repeatable)
Always List of one or more valid values for the characteristic.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  .CharacteristicsSet
  .Characteristics.ValueList
  .ValueID
int Always Constant value that identifies the attribute or characteristic in a language-independent way. Unique within the characteristic set.

In item-listing requests, if the ID is defined as -3 or -6 (Other) in GetAttributesCS or GetProductSellingPages, use ValueLiteral to specify the string value that the user entered. Otherwise, use ValueID to specify the ID that is pre-defined in GetAttributesCS or GetProductSellingPages. In item-listing requests and product searches, the possible ID values are:
-3 = User entered an arbitrary value (not an "Other" field)
-6 = User entered a value in an "Other" field
-100 = Value not specified (null)
#### (integer) = Identifier for a pre-defined value that the user selected (e.g., -14 or 1001)
For eBay.com, required if ValueList is specified. Not applicable to Half.com.

See Attribute Elements.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct
  .CharacteristicsSet
  .Characteristics.ValueList
  .ValueLiteral
string Always The descriptive name of an attribute or characteristic value (e.g., "New" might be a literal value for a Condition attribute). In item-listing requests, if you send ValueID with an id of -3 or -6, you must use ValueLiteral to enter the value the user specified. Otherwise, eBay treats the request as if no value was sent at all. For eBay.com listings, use AttributeSetArray.AttributeSet.Attribute.Value.ValueLiteral. The max length allowed varies per attribute.

For GetSearchResults requests (in SearchRequest), only use ValueLiteral for attributes that support free-text values. That is, if eBay defines a value name and a unique value ID for an attribute in GetProductFinder, do not pass the name in ValueLiteral (because it won't work). Instead, specify the unique value ID in ValueID.

For Half.com, use AttributeArray.Attribute.Value.ValueLiteral in listing requests. That is, the parent elements and usage for Half.com differs from eBay's standard Item Specifics format (and there is no relationship to GetAttributesCS). For Half.com, AttributeArray.Attribute.Value.ValueLiteral is required when you use AddItem. See the eBay Web Services Guide for valid values. For the Half.com Notes attribute, the max length is 500 characters. You can revise AttributeArray.Attribute.Value.ValueLiteral for Half.com listings.
Max length: see description.
ProductSearchResult
  .AttributeSet.ProductFamilies
  .ParentProduct.DetailsURL
anyURI Always Fully qualified URL for optional information about the product, such as a movie's description or film credits. This information is hosted through the eBay site and cannot be edited. Applications can include this URL as a link in product search results so that end users can view additional descriptive details about the product.
ProductSearchResult
  .AttributeSet
  .ProductFinderConstraints