curl --request POST \
--url https://api.anysite.io/api/isthereanydeal/games/history \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"game": "<string>",
"timeout": 300,
"country": "US",
"currency": "USD"
}
'import requests
url = "https://api.anysite.io/api/isthereanydeal/games/history"
payload = {
"game": "<string>",
"timeout": 300,
"country": "US",
"currency": "USD"
}
headers = {
"access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({game: '<string>', timeout: 300, country: 'US', currency: 'USD'})
};
fetch('https://api.anysite.io/api/isthereanydeal/games/history', 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.anysite.io/api/isthereanydeal/games/history",
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([
'game' => '<string>',
'timeout' => 300,
'country' => 'US',
'currency' => 'USD'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"access-token: <api-key>"
],
]);
$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.anysite.io/api/isthereanydeal/games/history"
payload := strings.NewReader("{\n \"game\": \"<string>\",\n \"timeout\": 300,\n \"country\": \"US\",\n \"currency\": \"USD\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("access-token", "<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.anysite.io/api/isthereanydeal/games/history")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"game\": \"<string>\",\n \"timeout\": 300,\n \"country\": \"US\",\n \"currency\": \"USD\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/isthereanydeal/games/history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"game\": \"<string>\",\n \"timeout\": 300,\n \"country\": \"US\",\n \"currency\": \"USD\"\n}"
response = http.request(request)
puts response.read_body[
{
"@type": "ItadPriceHistory",
"max_price": 123,
"history_low": 123,
"log": [],
"current_shops": [],
"history_shops": [],
"best_price_series": [],
"regular_price_high_series": [],
"regular_price_low_series": [],
"max_cut_series": [],
"history_low_series": [],
"shop_series": [],
"sale_buckets": [],
"sale_probability": []
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}/isthereanydeal/games/history
Get the full price history of an IsThereAnyDeal game (by slug, internal id, or URL): a time-ordered log of every store price change, the stores selling it now and the stores that ever listed it, per-store and aggregate price time-series (best price, regular-price band, max discount, running historical low), and sale analytics (how often, how deep and how long the game goes on sale, and the seasonal likelihood of a discount).
Price: 20 credits
⚠️ Common errors: 412: Game not found or has no price history
curl --request POST \
--url https://api.anysite.io/api/isthereanydeal/games/history \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"game": "<string>",
"timeout": 300,
"country": "US",
"currency": "USD"
}
'import requests
url = "https://api.anysite.io/api/isthereanydeal/games/history"
payload = {
"game": "<string>",
"timeout": 300,
"country": "US",
"currency": "USD"
}
headers = {
"access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({game: '<string>', timeout: 300, country: 'US', currency: 'USD'})
};
fetch('https://api.anysite.io/api/isthereanydeal/games/history', 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.anysite.io/api/isthereanydeal/games/history",
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([
'game' => '<string>',
'timeout' => 300,
'country' => 'US',
'currency' => 'USD'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"access-token: <api-key>"
],
]);
$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.anysite.io/api/isthereanydeal/games/history"
payload := strings.NewReader("{\n \"game\": \"<string>\",\n \"timeout\": 300,\n \"country\": \"US\",\n \"currency\": \"USD\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("access-token", "<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.anysite.io/api/isthereanydeal/games/history")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"game\": \"<string>\",\n \"timeout\": 300,\n \"country\": \"US\",\n \"currency\": \"USD\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/isthereanydeal/games/history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"game\": \"<string>\",\n \"timeout\": 300,\n \"country\": \"US\",\n \"currency\": \"USD\"\n}"
response = http.request(request)
puts response.read_body[
{
"@type": "ItadPriceHistory",
"max_price": 123,
"history_low": 123,
"log": [],
"current_shops": [],
"history_shops": [],
"best_price_series": [],
"regular_price_high_series": [],
"regular_price_low_series": [],
"max_cut_series": [],
"history_low_series": [],
"shop_series": [],
"sale_buckets": [],
"sale_probability": []
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
API token from the dashboard
Headers
Body
120 <= x <= 1500AD, AE, AF, AG, AI, AL, AM, AO, AR, AT, AU, AW, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BM, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CD, CG, CH, CI, CL, CM, CN, CO, CR, CV, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ER, ES, ET, FI, FJ, FR, GA, GB, GD, GE, GH, GM, GN, GR, GT, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KG, KH, KM, KN, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MK, ML, MM, MN, MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, NE, NG, NI, NL, NO, NP, NZ, OM, PA, PE, PG, PH, PK, PL, PT, PY, QA, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SI, SK, SL, SN, SR, ST, SV, SZ, TC, TD, TG, TH, TJ, TL, TM, TN, TO, TR, TT, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, YE, ZA, ZM, ZW AED, ARS, AUD, BGN, BRL, CAD, CHF, CLP, CNY, COP, CRC, CZK, DKK, EUR, GBP, HKD, HUF, IDR, ILS, INR, JPY, KRW, KWD, KZT, MXN, MYR, NOK, NZD, PEN, PHP, PLN, QAR, RON, RUB, SAR, SEK, SGD, THB, TRY, TWD, UAH, USD, UYU, VND, ZAR Response
Successful Response
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes