curl --request POST \
--url https://api.valuechecker.net/search/offers \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"image_urls": [
"<string>"
],
"images": [
"<string>"
],
"claimed_amount": 123,
"price_min": 123,
"price_max": 123
}
'import requests
url = "https://api.valuechecker.net/search/offers"
payload = {
"query": "<string>",
"image_urls": ["<string>"],
"images": ["<string>"],
"claimed_amount": 123,
"price_min": 123,
"price_max": 123
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: '<string>',
image_urls: ['<string>'],
images: ['<string>'],
claimed_amount: 123,
price_min: 123,
price_max: 123
})
};
fetch('https://api.valuechecker.net/search/offers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.valuechecker.net/search/offers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => '<string>',
'image_urls' => [
'<string>'
],
'images' => [
'<string>'
],
'claimed_amount' => 123,
'price_min' => 123,
'price_max' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.valuechecker.net/search/offers"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"image_urls\": [\n \"<string>\"\n ],\n \"images\": [\n \"<string>\"\n ],\n \"claimed_amount\": 123,\n \"price_min\": 123,\n \"price_max\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.valuechecker.net/search/offers")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"image_urls\": [\n \"<string>\"\n ],\n \"images\": [\n \"<string>\"\n ],\n \"claimed_amount\": 123,\n \"price_min\": 123,\n \"price_max\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valuechecker.net/search/offers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"<string>\",\n \"image_urls\": [\n \"<string>\"\n ],\n \"images\": [\n \"<string>\"\n ],\n \"claimed_amount\": 123,\n \"price_min\": 123,\n \"price_max\": 123\n}"
response = http.request(request)
puts response.read_body{
"claimed_product": {
"pid": 123,
"product_name": "<string>",
"brand": "<string>",
"pic_url": "<string>",
"specs": [
{
"spec_id": 123,
"spec_name": "<string>",
"spec_value_display": "<string>",
"spec_value_numeric": 123
}
],
"client_category_id": 123,
"client_category": "<string>",
"in_stock": true
},
"recommended_offer": {
"pid": 123,
"product_name": "<string>",
"brand": "<string>",
"pic_url": "<string>",
"specs": [
{
"spec_id": 123,
"spec_name": "<string>",
"spec_value_display": "<string>",
"spec_value_numeric": 123
}
],
"client_category_id": 123,
"client_category": "<string>",
"offer_id": 123,
"offer_url": "<string>",
"master_name": "<string>",
"unmatched_specs": [
{
"spec_id": 123,
"spec_name": "<string>",
"spec_value_display": "<string>",
"spec_value_numeric": 123
}
],
"price": {
"currency": "<string>",
"price": 123,
"price_date": "<string>",
"is_refurbished": true,
"in_stock": true,
"blocked": true,
"shop": {
"shop_name": "<string>",
"shop_status": 123,
"shop_score": 123
},
"item_quantity": 123,
"country_code": "<string>",
"filtered_price": true
}
},
"indexed_products": {
"products": [
{
"product_name": "<string>",
"pid": 123,
"pic_url": "<string>",
"price_clusters": {
"low": {
"price": 123
},
"medium": {
"price": 123
},
"high": {
"price": 123
}
}
}
]
},
"clustered_products": {
"products": [
{
"pid": 123,
"product_name": "<string>",
"brand": "<string>",
"pic_url": "<string>",
"specs": [
{
"spec_id": 123,
"spec_name": "<string>",
"spec_value_display": "<string>",
"spec_value_numeric": 123
}
],
"client_category_id": 123,
"client_category": "<string>",
"price_clusters": {
"low": {
"price": 123,
"count": 123,
"percentage": 123,
"price_min": 123,
"price_max": 123
},
"medium": {
"price": 123,
"count": 123,
"percentage": 123,
"price_min": 123,
"price_max": 123
},
"high": {
"price": 123,
"count": 123,
"percentage": 123,
"price_min": 123,
"price_max": 123
}
}
}
]
},
"replacement_offers": {
"offer_groups": [
{
"metadata": {
"offer_count": 123
},
"offers": [
{
"pid": 123,
"product_name": "<string>",
"brand": "<string>",
"pic_url": "<string>",
"specs": [
{
"spec_id": 123,
"spec_name": "<string>",
"spec_value_display": "<string>",
"spec_value_numeric": 123
}
],
"client_category_id": 123,
"client_category": "<string>",
"offer_id": 123,
"offer_url": "<string>",
"master_name": "<string>",
"unmatched_specs": [
{
"spec_id": 123,
"spec_name": "<string>",
"spec_value_display": "<string>",
"spec_value_numeric": 123
}
],
"price": {
"currency": "<string>",
"price": 123,
"price_date": "<string>",
"is_refurbished": true,
"in_stock": true,
"blocked": true,
"shop": {
"shop_name": "<string>",
"shop_status": 123,
"shop_score": 123
},
"item_quantity": 123,
"country_code": "<string>",
"filtered_price": true
}
}
]
}
]
},
"metadata": {
"category": {
"predicted_client_category_id": 123,
"predicted_client_category": "<string>",
"prediction_certainty": 123
},
"query": {
"used_query": "<string>",
"original_query": "<string>",
"predicted_query": "<string>"
},
"price_filters": {
"price_min": 123,
"price_max": 123
}
}
}{
"error": "Invalid JSON",
"description": "Could not parse an empty JSON body"
}{
"error": "Invalid Authorization header",
"event_code": "ERIT00",
"event_dict": {
"event_severity": "ERROR",
"title": "Invalid Authorization header",
"description": "Please provide the right authorization token"
}
}{
"error": "User <user> does not have access to client_id <client_id>.",
"event_code": "ERIP00",
"event_dict": {
"event_severity": "ERROR",
"title": "Invalid parameter",
"description": "The \"client_id\" parameter is invalid."
}
}Offer Search
curl --request POST \
--url https://api.valuechecker.net/search/offers \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"image_urls": [
"<string>"
],
"images": [
"<string>"
],
"claimed_amount": 123,
"price_min": 123,
"price_max": 123
}
'import requests
url = "https://api.valuechecker.net/search/offers"
payload = {
"query": "<string>",
"image_urls": ["<string>"],
"images": ["<string>"],
"claimed_amount": 123,
"price_min": 123,
"price_max": 123
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: '<string>',
image_urls: ['<string>'],
images: ['<string>'],
claimed_amount: 123,
price_min: 123,
price_max: 123
})
};
fetch('https://api.valuechecker.net/search/offers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.valuechecker.net/search/offers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => '<string>',
'image_urls' => [
'<string>'
],
'images' => [
'<string>'
],
'claimed_amount' => 123,
'price_min' => 123,
'price_max' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.valuechecker.net/search/offers"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"image_urls\": [\n \"<string>\"\n ],\n \"images\": [\n \"<string>\"\n ],\n \"claimed_amount\": 123,\n \"price_min\": 123,\n \"price_max\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.valuechecker.net/search/offers")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"image_urls\": [\n \"<string>\"\n ],\n \"images\": [\n \"<string>\"\n ],\n \"claimed_amount\": 123,\n \"price_min\": 123,\n \"price_max\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.valuechecker.net/search/offers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"<string>\",\n \"image_urls\": [\n \"<string>\"\n ],\n \"images\": [\n \"<string>\"\n ],\n \"claimed_amount\": 123,\n \"price_min\": 123,\n \"price_max\": 123\n}"
response = http.request(request)
puts response.read_body{
"claimed_product": {
"pid": 123,
"product_name": "<string>",
"brand": "<string>",
"pic_url": "<string>",
"specs": [
{
"spec_id": 123,
"spec_name": "<string>",
"spec_value_display": "<string>",
"spec_value_numeric": 123
}
],
"client_category_id": 123,
"client_category": "<string>",
"in_stock": true
},
"recommended_offer": {
"pid": 123,
"product_name": "<string>",
"brand": "<string>",
"pic_url": "<string>",
"specs": [
{
"spec_id": 123,
"spec_name": "<string>",
"spec_value_display": "<string>",
"spec_value_numeric": 123
}
],
"client_category_id": 123,
"client_category": "<string>",
"offer_id": 123,
"offer_url": "<string>",
"master_name": "<string>",
"unmatched_specs": [
{
"spec_id": 123,
"spec_name": "<string>",
"spec_value_display": "<string>",
"spec_value_numeric": 123
}
],
"price": {
"currency": "<string>",
"price": 123,
"price_date": "<string>",
"is_refurbished": true,
"in_stock": true,
"blocked": true,
"shop": {
"shop_name": "<string>",
"shop_status": 123,
"shop_score": 123
},
"item_quantity": 123,
"country_code": "<string>",
"filtered_price": true
}
},
"indexed_products": {
"products": [
{
"product_name": "<string>",
"pid": 123,
"pic_url": "<string>",
"price_clusters": {
"low": {
"price": 123
},
"medium": {
"price": 123
},
"high": {
"price": 123
}
}
}
]
},
"clustered_products": {
"products": [
{
"pid": 123,
"product_name": "<string>",
"brand": "<string>",
"pic_url": "<string>",
"specs": [
{
"spec_id": 123,
"spec_name": "<string>",
"spec_value_display": "<string>",
"spec_value_numeric": 123
}
],
"client_category_id": 123,
"client_category": "<string>",
"price_clusters": {
"low": {
"price": 123,
"count": 123,
"percentage": 123,
"price_min": 123,
"price_max": 123
},
"medium": {
"price": 123,
"count": 123,
"percentage": 123,
"price_min": 123,
"price_max": 123
},
"high": {
"price": 123,
"count": 123,
"percentage": 123,
"price_min": 123,
"price_max": 123
}
}
}
]
},
"replacement_offers": {
"offer_groups": [
{
"metadata": {
"offer_count": 123
},
"offers": [
{
"pid": 123,
"product_name": "<string>",
"brand": "<string>",
"pic_url": "<string>",
"specs": [
{
"spec_id": 123,
"spec_name": "<string>",
"spec_value_display": "<string>",
"spec_value_numeric": 123
}
],
"client_category_id": 123,
"client_category": "<string>",
"offer_id": 123,
"offer_url": "<string>",
"master_name": "<string>",
"unmatched_specs": [
{
"spec_id": 123,
"spec_name": "<string>",
"spec_value_display": "<string>",
"spec_value_numeric": 123
}
],
"price": {
"currency": "<string>",
"price": 123,
"price_date": "<string>",
"is_refurbished": true,
"in_stock": true,
"blocked": true,
"shop": {
"shop_name": "<string>",
"shop_status": 123,
"shop_score": 123
},
"item_quantity": 123,
"country_code": "<string>",
"filtered_price": true
}
}
]
}
]
},
"metadata": {
"category": {
"predicted_client_category_id": 123,
"predicted_client_category": "<string>",
"prediction_certainty": 123
},
"query": {
"used_query": "<string>",
"original_query": "<string>",
"predicted_query": "<string>"
},
"price_filters": {
"price_min": 123,
"price_max": 123
}
}
}{
"error": "Invalid JSON",
"description": "Could not parse an empty JSON body"
}{
"error": "Invalid Authorization header",
"event_code": "ERIT00",
"event_dict": {
"event_severity": "ERROR",
"title": "Invalid Authorization header",
"description": "Please provide the right authorization token"
}
}{
"error": "User <user> does not have access to client_id <client_id>.",
"event_code": "ERIP00",
"event_dict": {
"event_severity": "ERROR",
"title": "Invalid parameter",
"description": "The \"client_id\" parameter is invalid."
}
}Authorizations
Note! Prefix your with apiKey. Note the space after "apiKey ".
Query Parameters
The client ID for the request. It's required if you have access to multiple clients with your API key. Otherwise, it's optional.
Optional session identifier of the user.
Body
The product name, model number, or other identifier the customer is claiming.
One or more publicly reachable URLs that point to images supporting the claim.
One or more base‑64‑encoded image strings (use when direct URLs aren't available).
The monetary amount (in the currency of record) that the customer is requesting to be reimbursed.
0.01Lower price threshold: offers priced below this value are filtered out and not returned.
0.01Upper price threshold: offers priced above this value are filtered out and not returned.
0.01Response
OK - Returns offer search results with claimed product, recommended offer, and replacement options
The claimed product built from the search query/image. An empty object when no claimed product could be determined.
- Option 1
- Option 2
Show child attributes
Show child attributes
The single ValueChecker-recommended offer/price for the search. An empty object when no recommendation could be made.
- Option 1
- Option 2
Show child attributes
Show child attributes
- Option 1
- Option 2
Show child attributes
Show child attributes
- Option 1
- Option 2
Show child attributes
Show child attributes
- Option 1
- Option 2
Show child attributes
Show child attributes
Show child attributes
Show child attributes