Other Domains
This data type is universal and can be applied to any domain. It accepts URLs along with additional parameters. You can find the list of all the available parameters in the URL section.
Below is a quick overview of all the available data
source
values we support with other domains.Source | Description | Structured data |
---|---|---|
universal_ecommerce | Submit any URL you like. | Depends on the URL. |
You can always write your own parsing instructions with Custom Parser feature and get structured data.
Parameter | Description | Default Value |
---|---|---|
source | universal_ecommerce | |
url | Direct URL (link) to Universal page | - |
user_agent_type | desktop | |
geo_location | Geo location of proxy used to retrieve the data. The complete list of the supported locations can be found here. | |
locale | Locale, as expected in Accept-Language header. | |
render | | |
content_encoding | base64 | |
context :
content | Base64-encoded POST request body. It is only useful if http_method is set to post . | - |
context :
cookies | Pass your own cookies. | - |
context :
follow_redirects | Indicate whether you would like the scraper to follow redirects (3xx responses with a destination URL) to get the contents of the URL at the end of the redirect chain. | - |
context :
headers | Pass your own headers. | - |
context :
http_method | Set it to post if you would like to make a POST request to your target URL via E-commerce Universal Scraper. | get |
context :
session_id | If you want to use the same proxy with multiple requests, you can do so by using this parameter. Just set your session to any string you like, and we will assign a proxy to this ID, and keep it for up to 10 minutes. After that, if you make another request with the same session ID, a new proxy will be assigned to that particular session ID. | - |
context :
successful_status_codes | Define a custom HTTP response code (or a few of them), upon which we should consider the scrape successful and return the content to you. May be useful if you want us to return the 503 error page or in some other non-standard cases. | - |
callback_url | - | |
parse | true will return structured data, as long as the URL submitted directs to an e-commerce product page. Use this parameter in combination with parser_type parameter to use our AI-powered Adaptive Parser. | false |
parser_type | Set the value to ecommerce_product to access our AI-powered Adaptive Parser. | - |
- required parameter
If you are observing low success rates or retrieve empty content, please try using additional
"render": "html"
parameter in your request. More info about using render parameter can be found here.Simple request
In this example, the API will retrieve an e-commerce product page.
JSON
cURL
Python
PHP
HTTP
{
"source": "universal_ecommerce",
"url": "https://sandbox.oxylabs.io/products/1"
}
curl --user "user:pass" \
'https://realtime.oxylabs.io/v1/queries' \
-H "Content-Type: application/json" \
-d '{"source": "universal_ecommerce", "url": "https://sandbox.oxylabs.io/products/1"}'
import requests
from pprint import pprint
# Structure payload.
payload = {
"source": "universal_ecommerce",
"url": "https://sandbox.oxylabs.io/products/1"
}
# Get response.
response = requests.request(
"POST",
"https://realtime.oxylabs.io/v1/queries",
auth=("user", "pass"),
json=payload,
)
# Instead of response with job status and results url, this will return the
# JSON response with the result.
pprint(response.json())
<?php
$params = [
'source' => 'universal_ecommerce',
'url' => 'https://sandbox.oxylabs.io/products/1'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://realtime.oxylabs.io/v1/queries");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'user:pass');
$headers = [];
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
echo $result;
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
# The whole string you submit has to be URL-encoded.
https://realtime.oxylabs.io/v1/queries?source=universal_ecommerce&url=https%3A%2F%2Fsandbox.oxylabs.io%2Fproducts%2F1&access_token=12345abcde
The example above uses the Realtime integration method. If you would like to use some other integration method in your query (e.g. Push-Pull or Proxy Endpoint), refer to the integration methods section.
All parameters
In this example, all available parameters are included (though not always necessary or compatible within the same request), to give you an idea on how to format your requests.
{
"source": "universal_ecommerce",
"url": "https://example.com",
"user_agent_type": "desktop",
"geo_location": "United States",
"parse": true,
"parser_type": "ecommerce_product",
"context": [
{
"key": "headers",
"value": {
"Content-Type": "application/octet-stream",
"Custom-Header-Name": "custom header content"
}
},
{
"key": "cookies",
"value": [
{
"key": "NID",
"value": "1234567890"
},
{
"key": "1P JAR",
"value": "0987654321"
}]
},
{
"key": "follow_redirects",
"value": true
},
{
"key": "http_method", "value": "get"
},
{
"key": "content",
"value": "YmFzZTY0RW5jb2RlZFBPU1RCb2R5"
},
{
"key": "successful_status_codes",
"value": [808, 909]
}]
}
The full list of the supported geo locations can be found in CSV format below.
universal-supported-geo_location-values (4).csv
3KB
Text
Here is an example:
"United Arab Emirates",
"Albania",
"Armenia",
"Angola",
"Argentina",
"Australia",
...
"Uruguay",
"Uzbekistan",
"Venezuela Bolivarian Republic of",
"Viet Nam",
"South Africa",
"Zimbabwe"
E-commerce Universal Scraper API supports two HTTP(S) methods:
GET
(default) and POST
."GET",
"POST"
Last modified 27d ago