curl --request POST \
--url https://api.anysite.io/api/isthereanydeal/games \
--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"
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', 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",
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"
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")
.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")
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[
{
"id": "<string>",
"@type": "ItadGame",
"slug": "<string>",
"game_title": "<string>",
"url": "<string>",
"type": "<string>",
"is_mature": false,
"is_early_access": false,
"appid": 123,
"image": "<string>",
"banner": "<string>",
"tags": [],
"has_achievements": false,
"has_trading_cards": false,
"release_date": 123,
"last_updated_at": 123,
"developers": [],
"publishers": [],
"description_source": "<string>",
"reviews": [],
"rank": 123,
"waitlist_count": 123,
"collection_count": 123,
"current_players": 123,
"peak_players": 123,
"hltb": {
"@type": "ItadHowLongToBeat",
"main_seconds": 123,
"extra_seconds": 123,
"complete_seconds": 123,
"all_seconds": 123,
"url": "<string>"
},
"best_deal": {
"@type": "ItadPriceLow",
"cut": 123,
"price": 123,
"currency": "<string>",
"shop": "<string>",
"shop_id": 123,
"flag": "<string>",
"voucher": "<string>",
"url": "<string>",
"time": 123
},
"historical_low": {
"@type": "ItadPriceLow",
"cut": 123,
"price": 123,
"currency": "<string>",
"shop": "<string>",
"shop_id": 123,
"flag": "<string>",
"voucher": "<string>",
"url": "<string>",
"time": 123
},
"year_low": {
"@type": "ItadPriceLow",
"cut": 123,
"price": 123,
"currency": "<string>",
"shop": "<string>",
"shop_id": 123,
"flag": "<string>",
"voucher": "<string>",
"url": "<string>",
"time": 123
},
"three_month_low": {
"@type": "ItadPriceLow",
"cut": 123,
"price": 123,
"currency": "<string>",
"shop": "<string>",
"shop_id": 123,
"flag": "<string>",
"voucher": "<string>",
"url": "<string>",
"time": 123
},
"active_bundle_count": 123,
"total_bundle_count": 123,
"deals": [],
"dlcs": [],
"editions": [],
"containing_bundles": [],
"subscriptions": []
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}/isthereanydeal/games
Get full IsThereAnyDeal details for a PC game by slug, internal game id, or URL: title, Steam appid, tags, release date, developers and publishers, review scores (Steam/OpenCritic/Metacritic), current and peak players, HowLongToBeat times, current price at every store with discount, voucher and DRM, the current best deal, all-time / 1-year / 3-month historical lows, DLCs and editions with prices, bundles that include the game, and which subscription services carry it.
Price: 5 credits
⚠️ Common errors: 412: Game not found (well-formed slug/id but no such game on IsThereAnyDeal)
curl --request POST \
--url https://api.anysite.io/api/isthereanydeal/games \
--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"
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', 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",
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"
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")
.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")
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[
{
"id": "<string>",
"@type": "ItadGame",
"slug": "<string>",
"game_title": "<string>",
"url": "<string>",
"type": "<string>",
"is_mature": false,
"is_early_access": false,
"appid": 123,
"image": "<string>",
"banner": "<string>",
"tags": [],
"has_achievements": false,
"has_trading_cards": false,
"release_date": 123,
"last_updated_at": 123,
"developers": [],
"publishers": [],
"description_source": "<string>",
"reviews": [],
"rank": 123,
"waitlist_count": 123,
"collection_count": 123,
"current_players": 123,
"peak_players": 123,
"hltb": {
"@type": "ItadHowLongToBeat",
"main_seconds": 123,
"extra_seconds": 123,
"complete_seconds": 123,
"all_seconds": 123,
"url": "<string>"
},
"best_deal": {
"@type": "ItadPriceLow",
"cut": 123,
"price": 123,
"currency": "<string>",
"shop": "<string>",
"shop_id": 123,
"flag": "<string>",
"voucher": "<string>",
"url": "<string>",
"time": 123
},
"historical_low": {
"@type": "ItadPriceLow",
"cut": 123,
"price": 123,
"currency": "<string>",
"shop": "<string>",
"shop_id": 123,
"flag": "<string>",
"voucher": "<string>",
"url": "<string>",
"time": 123
},
"year_low": {
"@type": "ItadPriceLow",
"cut": 123,
"price": 123,
"currency": "<string>",
"shop": "<string>",
"shop_id": 123,
"flag": "<string>",
"voucher": "<string>",
"url": "<string>",
"time": 123
},
"three_month_low": {
"@type": "ItadPriceLow",
"cut": 123,
"price": 123,
"currency": "<string>",
"shop": "<string>",
"shop_id": 123,
"flag": "<string>",
"voucher": "<string>",
"url": "<string>",
"time": 123
},
"active_bundle_count": 123,
"total_bundle_count": 123,
"deals": [],
"dlcs": [],
"editions": [],
"containing_bundles": [],
"subscriptions": []
}
]{
"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