LootLens API
31 Currencies SupportedLootLens supports 31 different currencies from Steam's official currency list!
| Code | Currency | Symbol | Example Price |
|---|---|---|---|
| USD | US Dollar | $ | $50.68 |
| EUR | Euro | € | 140,--€ |
| GBP | British Pound | £ | £39.50 |
| CAD | Canadian Dollar | CDN$ | CDN$ 69.34 |
| AUD | Australian Dollar | A$ | A$ 75.61 |
| NZD | New Zealand Dollar | NZ$ | NZ$ 82.15 |
| JPY | Japanese Yen | ¥ | ¥7,500 |
Americas: USD, CAD, BRL, MXN, CLP, PEN, COP
Europe: EUR, GBP, CHF, NOK, PLN, TRY, UAH, RUB
Asia-Pacific: AUD, NZD, JPY, SGD, HKD, TWD, KRW, INR, IDR, MYR, PHP, THB
Middle East: SAR, AED
Africa: ZAR
# Default (USD) curl "https://lootlens-real-time-game-market-data.p.rapidapi.com/default/LootLens?item=AK-47%20%7C%20Redline%20(Field-Tested)" # Specify currency curl "https://lootlens-real-time-game-market-data.p.rapidapi.com/default/LootLens?item=AK-47%20%7C%20Redline%20(Field-Tested)¤cy=AUD"
const getPrice = async (item, currency = 'USD') => {
const response = await fetch(
`https://lootlens-real-time-game-market-data.p.rapidapi.com/default/LootLens?item=${encodeURIComponent(item)}¤cy=${currency}`
);
return response.json();
};
// Get price in Australian Dollars
await getPrice('AK-47 | Redline (Field-Tested)', 'AUD');
// { "currency": "AUD", "lowest_price": "A$ 75.61", ... }
def get_price(item, currency='USD'):
url = "https://lootlens-real-time-game-market-data.p.rapidapi.com/default/LootLens"
params = {'item': item, 'currency': currency}
return requests.get(url, params=params).json()
# Get price in Canadian Dollars
get_price('AK-47 | Redline (Field-Tested)', 'CAD')
# { "currency": "CAD", "lowest_price": "CDN$ 69.34", ... }
Prices are cached separately for each currency:
Cache Key Format: {game_id}_{item_name}_{currency}
Examples:
- 730_AK-47 | Redline (Field-Tested)_USD
- 730_AK-47 | Redline (Field-Tested)_AUD
- 730_AK-47 | Redline (Field-Tested)_CAD
const compareRegionalPrices = async (item) => {
const currencies = ['USD', 'EUR', 'GBP', 'AUD', 'CAD'];
const prices = {};
for (const currency of currencies) {
const data = await getPrice(item, currency);
prices[currency] = data.lowest_price;
}
return prices;
};
// Result:
// {
// USD: "$50.68",
// EUR: "140,--€",
// GBP: "£39.50",
// AUD: "A$ 75.61",
// CAD: "CDN$ 69.34"
// }
# Monitor arbitrage opportunities across currencies
items_to_track = ['AK-47 | Redline (FT)', 'AWP | Asiimov (FT)']
currencies = ['USD', 'EUR', 'GBP', 'AUD']
for item in items_to_track:
for currency in currencies:
price_data = get_price(item, currency)
store_price(item, currency, price_data)
// Automatically show prices in user's regional currency
const getUserCurrency = (guildId) => {
const regionMap = {
'US': 'USD',
'CA': 'CAD',
'AU': 'AUD',
'GB': 'GBP',
'EU': 'EUR',
};
return regionMap[getGuildRegion(guildId)] || 'USD';
};
client.on('messageCreate', async (message) => {
if (message.content.startsWith('!price')) {
const item = message.content.replace('!price ', '');
const currency = getUserCurrency(message.guild.id);
const data = await getPrice(item, currency);
message.reply(`${data.item}: ${data.lowest_price} (${currency})`);
}
});
Steam formats prices differently per currency:
| Currency | Format Example |
|---|---|
| USD | $50.68 |
| EUR | 140,--€ |
| GBP | £39.50 |
| AUD | A$ 75.61 |
| CAD | CDN$ 69.34 |
| JPY | ¥ 7,500 |
Before Multi-Currency:
After Multi-Currency:
Time 0:00 - Request AK-47 (USD) → Cache miss → Steam API → 1,500ms Time 0:01 - Request AK-47 (USD) → Cache hit → DynamoDB → 80ms ⚡ Time 0:02 - Request AK-47 (AUD) → Cache miss → Steam API → 1,400ms Time 0:03 - Request AK-47 (AUD) → Cache hit → DynamoDB → 75ms ⚡ Time 30:00 - Caches expire, repeat
// Before (USD only):
getPrice('AK-47 | Redline (Field-Tested)')
// Always returned USD
// After (Multi-currency):
// Still works - defaults to USD
getPrice('AK-47 | Redline (Field-Tested)')
// Now you can also specify currency
getPrice('AK-47 | Redline (Field-Tested)', 'AUD')
getPrice('AK-47 | Redline (Field-Tested)', 'EUR')