The etsy_product source is designed to retrieve Etsy product result pages. We can return the HTML for any Etsy page you like. Additionally, we can deliver structured (parsed) output for Etsy product pages.
Request samples
The samples below illustrates how you can get a parsed Best Buy product result.
import requests
from pprint import pprint
# Structure payload.
payload = {
'source': 'etsy_product',
'product_id': '1858266469',
'parse': True
}
# Get response.
response = requests.request(
'POST',
'https://realtime.oxylabs.io/v1/queries',
auth=('USERNAME', 'PASSWORD'),
json=payload,
)
# Instead of response with job status and results url, this will return the
# JSON response with the result.
pprint(response.json())
# The whole string you submit has to be URL-encoded.
https://realtime.oxylabs.io/v1/queries?source=etsy_product&product_id=18582664691&parse=true&access_token=12345abcde
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Json;
using System.Threading.Tasks;
namespace OxyApi
{
class Program
{
static async Task Main()
{
const string Username = "USERNAME";
const string Password = "PASSWORD";
var parameters = new {
source = "etsy_product",
product_id = "1858266469",
parse = true
};
var client = new HttpClient();
Uri baseUri = new Uri("https://realtime.oxylabs.io");
client.BaseAddress = baseUri;
var requestMessage = new HttpRequestMessage(HttpMethod.Post, "/v1/queries");
requestMessage.Content = JsonContent.Create(parameters);
var authenticationString = $"{Username}:{Password}";
var base64EncodedAuthenticationString = Convert.ToBase64String(System.Text.ASCIIEncoding.UTF8.GetBytes(authenticationString));
requestMessage.Headers.Add("Authorization", "Basic " + base64EncodedAuthenticationString);
var response = await client.SendAsync(requestMessage);
var contents = await response.Content.ReadAsStringAsync();
Console.WriteLine(contents);
}
}
}
package org.example;
import okhttp3.*;
import org.json.JSONObject;
import java.util.concurrent.TimeUnit;
public class Main implements Runnable {
private static final String AUTHORIZATION_HEADER = "Authorization";
public static final String USERNAME = "USERNAME";
public static final String PASSWORD = "PASSWORD";
public void run() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("source", "etsy_product");
jsonObject.put("product_id", "1858266469");
jsonObject.put("parse", true);
Authenticator authenticator = (route, response) -> {
String credential = Credentials.basic(USERNAME, PASSWORD);
return response
.request()
.newBuilder()
.header(AUTHORIZATION_HEADER, credential)
.build();
};
var client = new OkHttpClient.Builder()
.authenticator(authenticator)
.readTimeout(180, TimeUnit.SECONDS)
.build();
var mediaType = MediaType.parse("application/json; charset=utf-8");
var body = RequestBody.create(jsonObject.toString(), mediaType);
var request = new Request.Builder()
.url("https://realtime.oxylabs.io/v1/queries")
.post(body)
.build();
try (var response = client.newCall(request).execute()) {
if (response.body() != null) {
try (var responseBody = response.body()) {
System.out.println(responseBody.string());
}
}
} catch (Exception exception) {
System.out.println("Error: " + exception.getMessage());
}
System.exit(0);
}
public static void main(String[] args) {
new Thread(new Main()).start();
}
}
The table below presents a detailed list of each product page element we parse, along with its description and data type. The table also includes some metadata.
Key
Description
Type
url
The URL of the Etsy product page.
string
price
The price of the product.
integer
title
The title of the product.
string
images
Array of URLs to product images.
array
seller
The seller object, containing seller details.
object
reviews
The reviews object, containing review details.
object
reviews.count
The number of reviews received for the product.
integer
currency
The currency in which the price is denominated.
string
shipping
The shipping object, containing shipping details.
object
shipping.from
The origin country of shipping.
string
old_price
The previous price of the product before discount.
integer
categories
Array of category objects to which the product belongs.
array
categories.title
The title of the category.
string
customized
Indicates whether the product can be customized.
boolean
product_id
The unique identifier for the product.
string
variation_count
The number of variations available for the product.
integer
parse_status_code
integer
created_at
The timestamp when the scraping job was created.
timestamp
updated_at
The timestamp when the scraping job was finished.
timestamp
page
The page number in the pagination of results.
integer
status_code
integer
parser_type
The type of parser used to extract the data.
integer
job_id
The ID of the job associated with the scraping job.
string
Sellers
The seller object, containing details of the seller.