Barter.vg API
Free games trading API with no key: per-title bundle history, giveaway counts, owner and player estimates, wishlist demand and multi-currency price highs and lows. Live example.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Barter.vg API?
Barter.vg's API is a free, key-free source of Steam game metadata oriented around trading. Each title returns its bundle and giveaway history, community wishlist, library and blacklist counts, owner and player estimates, and current, highest and lowest prices in four currencies.
This is not a store API dressed up differently. The fields that dominate a Barter.vg record — `bundles_all`, `giveaway_count`, `steamgifts_cv`, `wishlist`, `library`, `blacklist`, `tradable` — describe a game's standing in the trading and bundling economy rather than its store page. If you are building anything around key trading, bundle tracking or 'has this ever been in a bundle', this is the data you actually need, and it is not available from Valve at all.
Type discipline is required. Prices are integers in minor units, so `999` is $9.99 and `price_euro: 799` is €7.99 — four currencies, each with current, high and low. Most booleans are 0/1 integers except `adultonly`, which is a real boolean. `release_date` is a Unix timestamp while `year`, `month` and `day` sit beside it as zero-padded strings. And `source_profile` contains a literal `<SKU>` token you are expected to substitute with the `sku` value to build a store link. None of this is difficult; all of it will bite a client that assumes consistency.
Quick facts
- Base URL
https://barter.vg- Authentication
- No key or account for the public item endpoints. Anything tied to a user's own trades or collection requires being logged in, which we did not do.
- Rate limit
- No rate-limit headers are returned. Barter.vg is a small community site — request sparingly, cache aggressively, and do not crawl the id space.
- Pricing
- Free, community-run.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Barter.vg API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Fetch a game's bundle, giveaway and pricing history
GET https://barter.vg/i/3/json/
curl 'https://barter.vg/i/3/json/'const res = await fetch("https://barter.vg/i/3/json/");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://barter.vg/i/3/json/", timeout=20)
res.raise_for_status()
print(res.json()){
"id": 3,
"redirect": null,
"source_id": 1,
"source_name": "Steam",
"source_profile": "https://store.steampowered.com/app/<SKU>/",
"sku": 18500,
"title": "Defense Grid: The Awakening",
"title_locked": 0,
"title_formatted": "Defense Grid The Awakening",
"title_alt": "Defense Grid: The Awakening",
"title_alt_locked": 0,
"title_extra": null,
"item_type": "Game",
"item_type_locked": 0,
"is_tradable": 1,
"sync_with_store": 1,
"bundles_available": 0,
"bundles_packages": 3,
"bundles_rebundled": 0,
"bundles_notcounted": 0,
"bundles_all": 2,
"giveaway_count": 1,
"steamgifts_cv": 15,
"tradable": 1,
"wishlist": 24,
"library": 177,
"blacklist": 16,
"revoked": 0,
"adultonly": false,
"updated": 1785687301,
"base_item_id": 0,
"release_date": 1228694400,
"year": "2008",
"month": "12",
"day": "08",
"is_free": 0,
"price": 999,
"price_high": 999,
"price_low": 249,
"price_euro": 799,
"price_euro_high": 799,
"price_euro_low": 199,
"price_ruble": 25900,
"price_ruble_high": 25900,
"price_ruble_low": 6200,
"price_yuan": 3700,
"price_yuan_high": 3700,
"price_yuan_low": 900,
"price_updated": 1787248741,
"owners": 546490,
"owners_min": 500000,
"owners_max": 1000000,
"owners_variance": 26062,
"players": 435373,
"players_variance": 23265,
"recent_players": 2545,
"recent_players_variance": 1882,
"score_rank": 0,
"player_count": 559177,
"player_count_daily": 217,
"player_count_weekly": 1063,
"player_count_monthly": 2352,
"player_count_hidden": 0,
"user_reviews_positive": 96,Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
item id | path segment | Required | Barter.vg's own internal item id, between `/i/` and `/json/`. Not the Steam appid — the Steam id is in the `sku` field. 3 |
format | path segment | Required | The trailing `json/` segment. Without it the same path returns the HTML page. json |
Response fields
idinteger- Barter.vg's internal item id — the one in the URL. Distinct from `sku`, which is the Steam appid.
skuinteger- The store's own product id. Combine it with `source_profile` to build a store link.
source_profilestring- A store URL template containing a literal `<SKU>` placeholder. Substitute `sku` into it; it is not a usable link as returned.
bundles_all / bundles_packages / bundles_availableinteger- Bundle appearance counts sliced different ways. `bundles_available` is how many are currently purchasable.
giveaway_count / steamgifts_cvinteger- Giveaway history and the SteamGifts contributor value — the two numbers trading communities actually price on.
wishlist / library / blacklistinteger- How many Barter.vg users want, own or have blacklisted the title. A demand signal you cannot get from Valve.
price / price_high / price_lowinteger- Prices in minor units — 999 means 9.99. Repeated as `price_euro`, `price_ruble` and `price_yuan` with the same convention.
release_dateinteger- Unix timestamp in seconds, while `year`, `month` and `day` sit alongside as zero-padded STRINGS. Do not cross the two.
adultonlyboolean- A genuine boolean, unlike the surrounding 0/1 integer flags such as `is_tradable` and `is_free`.
owners / players / player_count_dailyinteger- Estimated ownership and activity figures, each with a `_variance` sibling giving the confidence band.
What you can build with the Barter.vg API
- Check whether a game has ever appeared in a bundle before buying keys
- Build a trade-value estimator from giveaway and contributor data
- Track wishlist-to-library ratios as a demand signal
- Compare regional pricing across four currencies for one title
- Show historical price lows next to a current store price
Common errors and how to fix them
An HTML page instead of JSON
The trailing `json/` path segment is missing.
Fix: The URL shape is `/i/{id}/json/` with the trailing slash. Without it you get the human-readable page.
404
That internal item id does not exist.
Fix: Ids are Barter.vg's own, not Steam appids. Resolve through the site's search rather than guessing, and never crawl the id range.
Prices a hundred times too large
Values are integers in minor units.
Fix: Divide by 100 before formatting. Every currency field follows the same convention.
A store link that 404s
`source_profile` still contains the literal `<SKU>` placeholder.
Fix: Replace `<SKU>` with the `sku` value before using the URL.
Barter.vg API — frequently asked questions
Does the Barter.vg API need an API key?
No. Public item lookups work with no key or account. Endpoints tied to a specific user's trades or collection require being logged in, but the game metadata described here does not.
Is the id in the URL a Steam appid?
No. It is Barter.vg's own internal item id. The Steam appid appears in the response as `sku`, and you combine that with the `source_profile` template to build a store link.
Why are the prices such large numbers?
They are integers in minor units, so 999 means 9.99 in that currency. It avoids floating-point rounding on money, but you have to divide by 100 yourself — and the same applies to the euro, ruble and yuan fields.
What does steamgifts_cv mean?
It is the SteamGifts contributor value for the title, a figure trading and giveaway communities use to weigh what a game is worth. It sits alongside `giveaway_count` and the bundle counters, which is the combination that makes this API useful for trading tools.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
JSON Flattener
Flatten nested JSON into single-level dot-notation keys online. Choose the separator, bracket or dotted array indexes, and copy or download the result.
Timestamp Converter
Convert timestamps to human-readable dates and dates back to timestamps. Auto-detects seconds vs milliseconds, shows local, UTC and ISO 8601 formats.
Barter.vg is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.