Products API

Programmatically access fresh product data from Tradedoubler advertisers.

Overview

The Products API lets you access advertisers' product data through a REST API. As soon as you are connected to advertisers through Tradedoubler, you can access their products. All data is searchable and filterable.

The API allows you as a publisher to:

  • Access fresh product data from top European advertisers.
  • Query the information with powerful search functionality.
  • Find the best price on a product.
  • Retrieve structured information about millions of products.
  • Download advertiser raw data.
  • Build rich widgets with product data.

Do not have a publisher account? Register with Tradedoubler and get started today!


This documentation is intended for publishers. If you are an advertiser, go to the corresponding advertiser documentation.

Authentication

In order to access the Products API, you need a publisher account with Tradedoubler. Signing up for an account takes approximately 2 minutes by filling out this form.

Once you have an account and a site, you can pick up your unique token by logging on and going to "Account" > "Manage tokens". The token for Products API is under the system "PRODUCTS".

Examples in this document use {token} as placeholder to where you should place your token when building a request.

Tokens are 40 character hexadecimal SHA-1 strings.

CORS

The domain api.tradedoubler.com is CORS enabled, meaning that you can use client side XMLHttpRequest without getting cross-domain security issues.

Please note however that CORS is not yet fully implemented in all browsers, so you may want to go for JSONP for client side requests.

Matrix syntax

All services in Tradedoubler APIs use the matrix syntax .

However, top level and service irrelevant information is sent as regular URL parameters. Usually, these are token and jsonp.

Search service

This is the main search service of Products API. Use it to query the API for products.

The syntax of the search service is:

HTTP[S] GET http://api.tradedoubler.com/1.0/products[.xml|.json|empty][query keys]?token={token}[&jsonp=myCallback]

If you want your response as XML, simply add .xml as extention.

Query keys

You can add a query to your request if you want to filter the results. All data may not be available on products.

Name Description Type Multiple
token Your unique token, identifying you. Required to provide. String No
q Generic keyword search. Matches intelligently against title and description. String Yes
fid Feed ID. Required to provide. Integer Yes
currency Matches against the currency of products. String No
sourceproducturl Adds the advertiser's product URL without any Tradedoubler tracking. Helps for integrating with platforms like Google Merchant Centre which do not allow tracking links on products Boolean Yes
minPrice Search for products with a minimum price. Float No
maxPrice Search for products with a maximum price. Float No
minUpdateDate Search for products updated after a certian point in time. Date No
maxUpdateDate Search for products updated before a certian point in time. Date No
tdCategoryId Matches against the Tradedoubler category ID Integer Yes
category Matches against the advertiser category name String Yes
brand Matches against the brand of products String Yes
spId Matches against the advertiser product ID. String Yes
tdId Matches against the Tradedoubler ID of products String Yes
ean Matches against the european article number of products String Yes
mpn Matches against the manufacturer part number of products String Yes
sku Matches against the stock keeping unit of products String Yes
upc Matches against the universal part number of products String Yes
isbn Matches against the international standard book number of products String Yes
language Matches against the language of the feed containing products String No
field Search among custom information on a product. For example field=colour%3Dblack String No
orderBy Set the order in which products are returned. Choose between priceAsc, priceDesc, modificationDateAsc and modificationDateDesc. String No
page Which page of result to return, given limit and pageSize is set. Integer No
pageSize The maximum number of items to return. Integer No
limit Global limit of the returned document. Set to pageSize*page+pageSize in order to use pagination. Integer No
groupOffersByProduct Set to true if you want the same product from different advertisers to be grouped. Boolean No
priceHistory Set to true to enable price history which gives you a list of previous prices for products. Boolean No
dateOutputFormat Set to iso8601 to use ISO8601 dates, otherwise dates will be output as unix time in milliseconds. String No
availability Matches against the availability of products String Yes
minInStock Miminum number of products in stock. Integer No
maxInStock Maximum number of products in stock. Integer No
condition Matches against the condition of products String Yes
model Matches against the model of products String Yes
manufacturer Matches against the manufacturer of products String Yes
shippingCost Matches against the shipping cost of products String Yes
promoText Matches against the promoText of products String Yes
warranty Matches against the warranty of products String Yes
deliveryTime Matches against the delivery time of products String Yes
weight Matches against the weight of products String Yes
size Matches against the size of products String Yes
techSpec Matches against the technical specification of products String Yes
pretty Set to true for nice line breaks in the output. Boolean No
jsonp If you are requesting JSON, you can define a callback name. The API will return a Javascript document with the result as an array in a function named as the callback. String No
Manifold: If you want to enter multiple values for a key, use either one key for each value brands=Cheerios&brands=Weetos or comma separate values brands=Cheerios,Weetos. Make sure that the key supports multiple values first.
Encoding: If you are searching categories and your search term includes a comma (,) you need to double encode the comma to prevent the search term being split into a list of items. For example, searching for category=Cheerios%252CWeetos will search for the single term "Cheerios,Weetos". Not double encoding the comma will result in two search terms being used - "Cheerios" and "Weetos".

Example requests

Get all available products in JSON:

HTTP[S] GET http://api.tradedoubler.com/1.0/products?token={token}

Get products matching "laptop" in XML:

HTTP[S] GET http://api.tradedoubler.com/1.0/products.xml;q=laptop?token={token}

Get Weetos products costing at least £200 with price history enabled:

HTTP[S] GET http://api.tradedoubler.com/1.0/products;brands=Weetos;priceHistory=true;pricemin=200?token={token}

Get five football related products in a pretty JSON format with grouping enabled:

HTTP[S] GET http://api.tradedoubler.com/1.0/products;groupoffersbyproduct=true;pretty=true;limit=5;q=football?token={token}

Response expectations

As a response to your request, you can expect some of the following data. Please note that not all data is present for all products.

Name Description Type Required
categories Parent of categories attributes (id, name, tdCategoryName). N/A Yes
id ID of the Tradedoubler category that the product is mapped to. String Yes*
name Advertiser category name. String Yes*
tdCategoryName Name of the Tradedoubler category that the product is mapped to. String No
description A long description of the product. String Yes
feedId Primary key of the feed owning the product. Integer Yes
groupingId The identifier Tradedoubler use to group this product. String Yes
id Tradedoubler's internal identifier of the product. May be used as GUID. String Yes
modified Date of the last modification in ISO-8601 or unix time depending on the dateOutputFormat parameter. For example 2012-12-24T15:00+0100 or 1356357600000. Date Yes
name Title of the product. String Yes
price Price of the product. Currency is picked up from your affiliate program. Float Yes
priceHistory A list of all price changes during the life of the product. Each entry will detail the price, currency and date changed. Array Yes
productImage Parent of productImage attributes (url, width, height). N/A Yes
url A URL to an image of the product. String Yes
width Width of the product image in pixels. Integer No
height Height of the product image in pixels. Integer No
productUrl URL to the product. Use this to link to the product and earn commission. If publisher token is used, the product URL is prefixed with Tradedoubler's tracker URL. String Yes
programName Name of the program of the feed this product belongs to. String Yes
sourceProductUrl Adds the advertiser's product URL without any Tradedoubler tracking. String No
sourceProductId Your identifier of the product. String Yes
availability Information on the availablity of the product. String No
brand Brand of the product. For example "Apple". String No
condition Condition of the product. For example used or new. String No
deliveryTime The amount of time it takes to get the product delivered. String No
identifiers Parent of identifiers attributes (ean, sku, upc, isbn, mpn). N/A No
ean International article number of the product. Used for grouping and can be used as product identifier. Integer No
sku Stock-keeping unit of the product. Used for grouping and can be used as product identifier. String No
upc Universal Product Code. Used for grouping and can be used as product identifier. String No
isbn International Standard Book Number. Used for grouping and can be used as product identifier. String No
mpn Manufacturer part number. Used for grouping and can be used as product identifier. String No
inStock Number of items you have in stock. Integer No
language ISO 639-1 code of the language to use in the response. For example en for English or sv for Swedish. String No
manufacturer Manufacturer of the product. For example "Samsung" String No
model The product's model. For example "iPhone" String No
programLogo Url to the logo of the program of the feed this product belongs to. String No
promoText Promotional text of the product String No
shippingCost Cost of getting the product delivered. For example "Free" or "11.95". String No
shortDescription Description of the product in fewer words. String No
size Size of the product. String No
techSpecs Technical specification of the product. String No
warranty Warranty information about the product String No
weight Weight of the product. String No
fields Additional information about the product that does not fit any of the attributes above. N/A No
name Name of the custom attribute. String No
value Value of the custom attribute. String No

*Either tdCategoryName or name is always present.

Note: Only information set as "required" above is present on all products. Other types of information is not mandatory for advertisers to provide.

JSON response

This is an example of a JSON response. It contains one product with lots of information.

{
  "productHeader" : {
    "totalHits" : 1
  },
  "products" : [ {
    "name" : "Symantec pcAnywhere Host & Remote - (versie 12.5 ) - volledig pakket - 5 gebruikers - CD - Linux, Win - International",
    "productImage" : {
      "url" : "http://snpi.dell.com/snp/images/products/mlrg/nl-nl~A6854908/A6854908.jpg"
    },
    "language" : "sv",
    "description" : "Symantec pcAnywhere is een uitgebreide, veilige oplossing voor remote besturing en beheer die is voorzien van functies voor het doorgeven van bestanden, zodat helpdesk- en supportkwesties snel kunnen worden opgelost, ook over meerdere platforms. De invitation-functie voor gateways en hosts is een oplossing voor typische connectiviteitsproblemen waarmee organisaties en het MKB mee te maken krijgt die meerdere remote apparaten ondersteunen. Doordat de gateway-functie de detectie van en de veilige verbinding met meerdere apparaten achter een firewall of NAT (Network Address Translation) in real time mogelijk maakt, kunnen helpdeskmedewerkers sessies met eindgebruikers initiëren,",
    "identifiers" : {
      "sku" : "A6854908"
    },
    "fields" : [ {
      "name" : "ManufacturerID",
      "value" : "14530209"
    }, {
      "name" : "HomeDelivery",
      "value" : "Yes"
    }, {
      "name" : "StaticSKU",
      "value" : "A6854908nlnl"
    }, {
      "name" : "VendorCode",
      "value" : "93"
    }, {
      "name" : "CategoryID",
      "value" : "5243"
    }, {
      "name" : "VendorName",
      "value" : "Symantec Corporation"
    }, {
      "name" : "Channel",
      "value" : "bsd"
    }, {
      "name" : "ArticleID",
      "value" : "14530209"
    } ],
    "offers" : [ {
      "feedId" : 8976,
      "productUrl" : "http://pdt.tradedoubler.com/click?a(2038177)p(41305)product(519de2b6e4b00d36c4c7e7c0)ttid(3)url(http%3A%2F%2Fwww.rf.nl%2Fdellspider%2Fredir.asp%3Fc%3Dnl%26l%3Dnl%26a%3Dbsd%26ProductID%3DA6854908%26redir%3Dhttp%253A%252F%252Flt%252Edell%252Ecom%252Flt%252Flt%252Easpx%253FCID%253D6511%2526LID%253D167791%2526DGC%253DAF%2526DGSeg%253DBSD%2526ACD%253D%5Btd_guid%5D%2526AID%253D%5Btd_affiliate_id%5D%2526DURL%253DDestinationURL)",
      "priceHistory" : [ {
        "price" : {
          "value" : "617.28",
          "currency" : "EUR"
        },
        "date" : 1378557168050
      } ],
      "modified" : 1381505376751,
      "availability" : "In Stock",
      "deliveryTime" : "Gebruikelijke verzending in: + 3 weken",
      "condition" : "New",
      "shippingCost" : "Kostenlos",
      "sourceProductId" : "A6854908nlnl",
      "programName" : "Wanten testzzzzzzzzzz",
	"id" : "519de2b6e4b00d36c4c7e7c0",
	"sourceProductUrl" : "https://accessories.euro.dell.com/sna/productdetail.aspx?c=nl&l=nl&s=bsd&cs=nlbsdt1&sku=A6854908"
    } ],
    "categories" : [ {
      "name" : "Software en downloads - Zakelijk & kantoor"
    } ]
  } ]
}

JSONP

If you defined the jsonp key in your query (for example jsonp=myCallbackFunction), the API will return a Javascript document with the result as an array in a function named as the callback:

function myCallbackFunction(result, statusCode, message)

JSONP callback function argument definitions:

Name Description Type
result The result JSON as an evaluated javascript object. See example JSON above. object/array
statusCode HTTP status code. Undefined if successful. int
message Error message. Undefined if successful. string

If you did not define the jsonp key, the API will return actual JSON with Content-Type: application/json.

JSONP, really? Well, api.tradedoubler.com is CORS enabled, so you may not want to use JSONP at all. Learn more.

XML response

This is the same product as above, formatted as XML:

<result version="3.0" xmlns:ns2="urn:com:tradedoubler:pf:model:xml:common" xmlns="urn:com:tradedoubler:pf:model:xml:output">
    <productHeader>
        <totalHits>1</totalHits>
    </productHeader>
    <products>
        <product language="sv">
            <ns2:name>Symantec pcAnywhere Host & Remote - (versie 12.5 ) - volledig pakket - 5 gebruikers - CD - Linux, Win - International</ns2:name>
            <ns2:description>Symantec pcAnywhere is een uitgebreide, veilige oplossing voor remote besturing en beheer die is voorzien van functies voor het doorgeven van bestanden, zodat helpdesk- en supportkwesties snel kunnen worden opgelost, ook over meerdere platforms. De invitation-functie voor gateways en hosts is een oplossing voor typische connectiviteitsproblemen waarmee organisaties en het MKB mee te maken krijgt die meerdere remote apparaten ondersteunen. Doordat de gateway-functie de detectie van en de veilige verbinding met meerdere apparaten achter een firewall of NAT (Network Address Translation) in real time mogelijk maakt, kunnen helpdeskmedewerkers sessies met eindgebruikers initiëren,</ns2:description>
            <ns2:productImage>http://snpi.dell.com/snp/images/products/mlrg/nl-nl~A6854908/A6854908.jpg</ns2:productImage>
            <ns2:categories>
                <ns2:category name="Software en downloads - Zakelijk &amp; kantoor"/>
            </ns2:categories>
            <ns2:fields>
                <ns2:field name="ManufacturerID">14530209</ns2:field>
                <ns2:field name="HomeDelivery">Yes</ns2:field>
                <ns2:field name="StaticSKU">A6854908nlnl</ns2:field>
                <ns2:field name="VendorCode">93</ns2:field>
                <ns2:field name="CategoryID">5243</ns2:field>
                <ns2:field name="VendorName">Symantec Corporation</ns2:field>
                <ns2:field name="Channel">bsd</ns2:field>
                <ns2:field name="ArticleID">14530209</ns2:field>
            </ns2:fields>
            <ns2:sku>A6854908</ns2:sku>
            <offers>
                <offer dateFormat="epoch" modifiedDate="1381505376751" sourceProductId="A6854908nlnl" id="519de2b6e4b00d36c4c7e7c0">
                    <ns2:feedId>8976</ns2:feedId>
                    <ns2:productUrl>http://pdt.tradedoubler.com/click?a(2038177)p(41305)product(519de2b6e4b00d36c4c7e7c0)ttid(3)url(http%3A%2F%2Fwww.rf.nl%2Fdellspider%2Fredir.asp%3Fc%3Dnl%26l%3Dnl%26a%3Dbsd%26ProductID%3DA6854908%26redir%3Dhttp%253A%252F%252Flt%252Edell%252Ecom%252Flt%252Flt%252Easpx%253FCID%253D6511%2526LID%253D167791%2526DGC%253DAF%2526DGSeg%253DBSD%2526ACD%253D%5Btd_guid%5D%2526AID%253D%5Btd_affiliate_id%5D%2526DURL%253DDestinationURL)</ns2:productUrl>
					<ns2:programName>Wanten testzzzzzzzzzz</ns2:programName>
					<ns2:sourceProductUrl>https://accessories.euro.dell.com/sna/productdetail.aspx?c=nl&l=nl&s=bsd&cs=nlbsdt1&sku=A6854908</ns2:sourceProductUrl>
                    <priceHistory>
                        <ns2:price dateFormat="epoch" date="1378557168050" currency="EUR">617.28</ns2:price>
                    </priceHistory>
                    <ns2:availability>In Stock</ns2:availability>
                    <ns2:deliveryTime>Gebruikelijke verzending in: + 3 weken</ns2:deliveryTime>
                    <ns2:condition>New</ns2:condition>
                    <ns2:shippingCost>Kostenlos</ns2:shippingCost>
                </offer>
            </offers>
        </product>
    </products>
</result>

To get your response as XML, add xml as extension products.xml.

XML schemas

XSD files for the output format are available here:

Name File
Common format ProductsFeedCommon_v3_0.xsd
Output format ProductsFeedOutput_v3_0.xsd

CSV export

You may wish to export the results in CSV rather than JSON or XML. To do so, you need to modify the search service syntax as follows:

HTTP[S] GET http://api.tradedoubler.com/1.0/products[.xml|.json|empty][format=csv][csvSeparators][csvEmbrace][csvFlattenFields][query keys]?token={token}
Name Description Expected value
Format Informs the service that a CSV export should be performed. csv
csvSeparators Defines the character used as a field separator. There are three levels within the Products API - categories, category and attribute. You must define the separator to be used for each in that order (see below for more information). The value must be URL encoded. The default value is ,;: Three URL encoded characters (e.g. ;||)
csvEmbrace Defines the character used to embrace each field (sometimes called text qualifier). The value must be URL encoded. URL encoded characters (e.g. ")
csvFlattenFields Defines whether fields should be flattened or not. The default value is false. Boolean (e.g. True or False)

CSV separators

Take this example of product data:

...
"categories" : [
	{
	  "name" : "Electronics",
	  "tdCategoryName" : "Electronics",
	  "id" : 40
	},
	{
	  "name" : "Projectors",
	  "tdCategoryName" : "Projectors",
	  "id" : 62
	}
]
...

The above extract shows a product with two categories (Electronics and Projectors). The separators are as follows:

  • Categories - On line seven, after the closing } a comma is used to separate the first value of 'categories' from the second.
  • Category - Within each category there are multiple attributes and values. Each attribute is seprated by a comma (e.g. at the end of lines four and five).
  • Attribute - Attibutes are separated from their value with a semi-colon (e.g. "attribute" : "value").

Example requests

Use " as the embrace character, |:; as the separators and flatten the fields:

HTTP[S] GET http://api.tradedoubler.com/1.0/products;format=csv;fid=9612;csvSeparators=%7C%3A%3B;csvEmbrace=%22;csvFlattenFields=true?token={token}

Use " as the embrace character, ,;: as the separators and do not flatten the fields (these are all default setting so they do not need to be listed) :

HTTP[S] GET http://api.tradedoubler.com/1.0/products;format=csv;fid=9612;?token={token}

Limitations

Any search request is limited to a maximum of 1,000 products. That means that adding page=2;pageSize=1000 will not get any results since the cap has already been reached at page one.

Unlimited service

In addition to the search service, you can use the unlimited service to get all of your raw product data from a specific feed.

This service is intended to be used by technically advanced publishers who wish to save the data it their own database, and process it on their own.

The syntax of the unlimited service is:

HTTP[S] GET http://api.tradedoubler.com/1.0/productsUnlimited[.xml|.json|empty];fid={feedId}?token={token}[&jsonp=myCallback]

Query keys

These are the query keys available to unlimited requests:

Name Description Type Required
token Your unique token, identifying you as a publisher. String Yes
fid Primary key of the feed you are requesting. Integer Yes
sourceproducturl Adds the advertiser's product URL without any Tradedoubler tracking. Helps for integrating with platforms like Google Merchant Centre which do not allow tracking links on products Boolean Yes
page Which page of the result to return, given pageSize has been set. Integer No*
pageSize The maximum number of items to return per page. Integer/td> No*
pretty Set to true for nice line breaks in the output. Boolean No
* If either page or pageSize is specified then the other becomes mandatory.
Be aware! Unlimited responses can contain millions of products, causing browsers to crash.

Example requests

Get all products from feed ID 123 as JSON:

HTTP[S] GET http://api.tradedoubler.com/1.0/productsUnlimited;fid=123?token={token}

Unlimited feed last updated service

You can use the unlimited feed last updated service to get the last updated time for a specific feed.

It would be ideal to use this service before the unlimited search service. If the feed is not updated, you should avoid calling the unlimited search service for that feed.

This service is intended to be used by technically advanced publishers who wish to save the data it their own database, and process it on their own.

The syntax of the unlimited feed last updated service is:

HTTP[S] GET http://api.tradedoubler.com/1.0/productsUnlimited/lastUpdated[.xml|.json|empty];fid={feedId}?token={token}[&jsonp=myCallback]

Query keys

These are the keys you can use in your request:

Name Description Type Required
token Your unique token, identifying you as a publisher. String Yes
fid Primary key of the feed you are requesting. Integer Yes
pretty Set to true for nice line breaks in the output. Boolean No

Example requests

Get last updated time for feed ID 123 as JSON:

HTTP[S] GET http://api.tradedoubler.com/1.0/productsUnlimited/lastUpdated.json;fid=123?token={token}

Categories Service

All products are mapped to a Tradedoubler category to ensure consistent naming conventions. The Categories service allows you to retrieve the Tradedoubler category tree together with the number of products available in each.

The category tree is available using the following syntax:

HTTP[S] GET http://api.tradedoubler.com/1.0/productCategories[.{json|xml|empty}][;language={language|empty}]?token={token}

These are the keys you can use in your request:

Name Description Required
token Your unique token, identifying you as a publisher. Yes
language ISO 639-1 code of the language to use in the response. For example en for English or sv for Swedish. No
jsonp If you are requesting JSON, you can define a callback name. The API will return a Javascript document with the result as an array in a function named as the callback. No
The API will return categories in English by default. If you enter a language that the categories have not been translated to, the API also returns English category names.

XML schema

An XSD file for the output format is available here:

Name File
Output format CategoryTree_v1_0.xsd

Response

As a response to your request, you can expect the following information:

Name Description
language Language of the category name.
name Name of the category in the language you specified. Defaults to English.
id Unique category identifier which does not change.
productCount Total number of products mapped to this category in feeds associated with the token provided.

If a category has subcategories, these are presented as children in the JSON or XML.


Fetch JSON tree Click here to fetch the category tree in English as JSON:

Data not loaded

Fetch XML tree Click here to fetch the category tree in English as XML:

Data not loaded
Stay current and use the productCategories service to get an up to date tree, instead of using a static tree.

Product feed service

The product feed service allows you to get general information about feeds connected with your token including name, status, number of products and unmapped categories.

The syntax of the productFeeds service is:

HTTP[S] GET http://api.tradedoubler.com/1.0/productFeeds{/feedId}[.xml|.json|empty]?token={token}[&jsonp=myCallback]

Query keys

These are the query keys available for productFeeds requests:

Name Description Type Required
token Your unique token, identifying you as a publisher. String Yes
pretty Set to true to get nice line breaks in the response. Boolean No
To lookup a specific feed, add its ID as a path to the URL. For example: /1.0/productFeeds/123?token={token}

Example requests

Get all feeds as JSON:

HTTP[S] GET http://api.tradedoubler.com/1.0/productFeeds?token={token}

Get feed ID 123 as XML:

HTTP[S] GET http://api.tradedoubler.com/1.0/productFeeds/123.xml?token={token}

Filter feeds from program IDs:

HTTP[S] GET http://api.tradedoubler.com/1.0/productFeeds;programId=id1,id2;?token={token}

Response

Here is an example of a response in JSON:

{
  "feeds" : [ {
    "feedId" : 19750,
    "name" : "Carl Example Feed",
    "active" : true,
    "sendToNewPF" : false,
    "visible" : true,
    "currencyISOCode" : "GBP",
    "languageISOCode" : "sv",
    "secret" : false,
    "numberOfUnmappedCategories" : 0,
	"numberOfProducts" : 189905,
	"lastModifiedTime" : "2020-01-01T12:09:03.374+0200",
    "programs" : [ {
      "programId" : 231514,
      "name" : "Carl Example program UK"
    }, {
      "programId" : 228139,
      "name" : "Carl Example program SE"
    } ]
  }, {
    "feedId" : 20782,
    "name" : "Carl test",
    "active" : true,
    "sendToNewPF" : false,
    "visible" : true,
    "currencyISOCode" : "SEK",
    "languageISOCode" : "en",
    "secret" : false,
    "numberOfUnmappedCategories" : 7,
	"numberOfProducts" : 13727,
	"lastModifiedTime" : "2020-01-02T12:09:03.374+0200",
    "programs" : [ {
      "programId" : 50000,
      "name" : "Carl 50k party program"
    } ]
  } ]
}

Error management

When an error occurs in the API, we try to describe the problem in detail. Here are the available error messages.

Module Error code HTTP code HTTP status Description
Open API1 400 Bad Request Missing token
Open API 2 403 Forbidden Invalid token
Open API 3 404 Not Found Invalid API version
Open API 4 404 Not Found Invalid module version
Open API 5 500 Internal Server Error Service not responding
Open API 6 404 Not Found Missing version
Open API 7 404 Not Found Missing module
Products API PF_200 400 Bad Request Parameters is missing
Products API PF_210 400 Bad Request No parsable content received
Products API PF_230 400 Bad Request An error not expected and not known
Products API PF_240 400 Bad Request Value not set on a parameter, e.g. a Category of a Product
Products API PF_250 400 Bad Request Our system is experiencing internal problems and cannot serve the request passed at this moment in time
Products API PF_260 400 Bad Request Value expected to be numeric but was not
Products API PF_270 400 Bad Request Value expected to be comma separated
Products API PF_280 400 Bad Request Price could not be parsed from posted data
Products API PF_290 400 Bad Request The currency of the Price is not a valid ISO currency
Products API PF_300 400 Bad Request Token request is not valid
Products API PF_391 400 Bad Request A malformed URL was supplied
Products API PF_392 400 Bad Request Query against a feed not belonging to a program of caller
Products API PF_430 400 Bad Request Parameter has illegal value

Other than the above, you can get generic HTTP errors. These are described here by W3C

The most common HTTP errors are:

HTTP code HTTP status Description
400 Bad Request Invalid XML, Json or date format
404 Not Found The URL does not exist
405 Method Not Allowed Invalid HTTP method (e.g. GET instead of POST)
406 Not Acceptable Requesting invalid content type (e.g text/plain instead of application/xml)
415 Unsupported Media Type Sending invalid content type
500 Internal Server Error Service down