Step 3: Download a finished job's results.
Follow redirects
For performance reasons, we sometimes pre-render your results. If we do so, we will respond with a redirect. Please make sure, your client follows redirects when you request results.
Result formats
We currently can give you the job results in four different formats:
- JSON (recommended for integration)
- XML
- CSV row-based (recommended for Pivot Tables)
- CSV columns
{
"job_id": "1234567890abcdef12345678",
"status": "finished",
// used test credits for this request
"free_credits": 0,
// used paid credits for this requests
"paid_credits": 2,
// array including multiple entries
"products": [
{
"source": "google-shopping",
"country": "de",
"key": "gtin",
// the value in the same format as you requested it
"value": "00885909666966",
// true or false
"success": true,
// if success "false", see section about errors
"reason": null,
"id": "15858468867886681869",
"name": "Apple iPad mini Wi-Fi 16 GB - Schwarz & Graphit",
// ... other product attributes
// array of offers found for this product
"offers": [
{
"shop_name": "Some Shop",
// As a string to avoid floating point rounding errors
"price": "284.99",
"price_with_shipping": "286.89",
"shipping_costs": "1.90",
// ISO 4217 currency code
"currency": "EUR",
// maybe more attributes, depending on the source
},
{
"shop_name": "Another shop",
"price": "289.82",
// Not always shown
"price_with_shipping": null,
// Same here
"shipping_costs": null,
"currency": "EUR",
// ...
}
// Several more offers...
]
},
{
// More products
}
]
}
<?xml version="1.0" encoding="UTF-8"?>
<hash>
<job-id>1234567890abcdef12345678</job-id>
<status type="symbol">finished</status>
<free-credits type="integer">0</free-credits>
<paid-credits type="integer">2</paid-credits>
<products type="array">
<product>
<source>google-shopping</source>
<country>de</country>
<key>gtin</key>
<value>00885909666966</value>
<success type="boolean">true</success>
<id>15858468867886681869</id>
<name>Apple iPad mini Wi-Fi 16 GB - Schwarz & Graphit</name>
<brand-name>Apple</brand-name>
<category-name>Tablet<category-name/>
<review-count>37<review-count/>
<review-rating>100<review-rating/>
<gtins type="array">
<gtin>00047165900004</gtin>
<gtin>00885909575329</gtin>
<gtin>00885909666881</gtin>
<gtin>00885909666898</gtin>
<gtin>00885909666966</gtin>
</gtins>
<url>https://www.google.de/shopping/product/15858468867886681869</url>
<offers type="array">
<offer>
<shop-name>Some Shop</shop-name>
<price>284.99</price>
<price-with-shipping>284.99</price-with-shipping>
<shipping-costs>0.00</shipping-costs>
<currency>EUR</currency>
<!-- maybe more attributes, depending on the source -->
</offer>
<offer>
<shop-name>Another shop</shop-name>
<price>289.82</price>
<price-with-shipping nil="true"/>
<shipping-costs nil="true"/>
<currency>EUR</currency>
<!-- maybe more attributes, depending on the source -->
</offer>
<!-- ... -->
</offers>
</product>
<product>
<!-- second product --->
</product>
</products>
</hash>
"source","country","key","value","success","reason","source_id","source_url","updated_at","gtins","eans","name","brand_name","category_name","review_count","review_rating","relevance","offer.url","offer.name","offer.price","offer.price_with_shipping","offer.shipping_costs","offer.position","offer.position_with_shipping","offer.availability_code","offer.availability_text","offer.shop_name"
"source","country","key","value","success","reason","source_id","source_url","updated_at","gtins","eans","name","brand_name","category_name","review_count","review_rating","relevance","offers[0].url","offers[0].name","offers[0].price","offers[0].price_with_shipping","offers[0].shipping_costs","offers[0].availability_code","offers[0].availability_text","offers[0].shop_name","offers[1].url","offers[1].name","offers[1].price","offers[1].price_with_shipping","offers[1].shipping_costs","offers[1].availability_code","offers[1].availability_text","offers[1].shop_name","offers[2].url",...
72 hour retention period
Job results are only available for 72 hours after the job was requested. After that we permanently delete the results. So please make sure to download the results shortly after the job finishes.
List of error codes
Error code | Meaning |
---|---|
unauthorized | No token given or token is not valid. |
job not found | No job could found for given job_id . |
job forbidden | User with given token is not allowed access to the given job. |
job not finished | Job processing is still in progress. Wait until its status it is finished . |
Further error codes may be added.
Product-level errors
Even when a job is accepted, there may be errors while collecting data on individual products. This is indicated with the success
attribute being false
and with a given reason
attribute.
When an error occurs, we don't deduct any credits. The only exception is for reason not found
(see below) as this is a valid response and it takes us the same amount of effort to find this out.
List of reasons
Reason codes | Meaning |
---|---|
not found | We have successfully searched for the given product, but it is not currently present on the source . |
invalid value | We have checked the value and found that it is invalid. We did not try to request this. For example, if you search with key=gtin we will check the provided GTIN's checksum. |
validation error | We failed to collect valid data for you. |
source temporary not reachable | We cannot collect data from this source at the moment. |
offer not found | A product was found, but it does not currently have any offers. |
failed to access source | We cannot collect data from this source at the moment. |
cluster not found | Data for the product could not be collected at this time. We expect to be able to collect the data next time you request it. |
cluster_gone | Data for the product could not be collected at this time. We have to search for it, which may take a while. We may be able to collect the data next time you request it (generally within the next days). |
not_searchable | Data for the product could not be collected and we estimated that we cannot do so in the near future. |
to_be_searched | Data for the product could not be collected at this time. We have to search for it, which may take a while. We may be able to collect the data next time you request it (generally within the next days). |
error | General error in our processing. |
Further reasons may exist or be added later.