CSGORoll APIcsgoroll.com ↗
Access CS2 skin marketplace listings, case data, case battles, leaderboards, exchange rates, and game modes from CSGORoll via a single REST API.
What is the CSGORoll API?
The CSGORoll API exposes 9 endpoints covering the full surface of the CSGORoll platform — from paginated P2P skin marketplace listings via get_marketplace_listings to live case battle states, leaderboard campaigns, and TKN coin exchange rates. Each marketplace listing returns fields including markupPercent, totalValue, sticker data, and seller status, giving developers structured access to CS2 skin pricing and trading activity without manual data collection.
curl -X GET 'https://api.parse.bot/scraper/377ef654-2cc6-43de-9b9f-43654127175e/get_marketplace_listings?after=WzM5ODUsNDld&limit=10' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace csgoroll-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""
CSGORoll API - Usage Example
Get your API key from: https://parse.bot/settings
"""
from parse_apis.csgoroll_api import CSGORoll, TradeListing, Case, CurrencyRate, ExchangeRate
csgoroll = CSGORoll(api_key="YOUR_API_KEY")
# Browse marketplace listings
for listing in csgoroll.tradelistings.list():
print(listing.id, listing.total_value, listing.markup_percent, listing.status)
break
# Search for cases by name
for case in csgoroll.cases.search(slug="fortune"):
print(case.slug, case.name, case.cost, case.risk_factor)
# Get today's best drop
drop = csgoroll.bestdrops.today()
print(drop.item_name, drop.item_value, drop.item_rarity, drop.user_name)
# Get current exchange rates
rates = csgoroll.currencyrates.get()
print(rates.source_currency, rates.updated_at)
for rate in rates.rates:
print(rate.currency, rate.rate)
break
# List active campaigns
for campaign in csgoroll.campaigns.list():
print(campaign.name, campaign.prize_balance, campaign.end_date)
Fetch paginated skin listings from the P2P marketplace. Each listing includes skin name, weapon type, price in coins, markup percentage, paint wear range, stickers, and seller activity status. Paginates via cursor; use the returned end_cursor as the after param for the next page.
| Param | Type | Description |
|---|---|---|
| after | string | Cursor for pagination (from end_cursor in a previous response) |
| limit | integer | Number of results per page (1-50) |
{
"type": "object",
"fields": {
"items": "array of trade listing objects with id, markupPercent, totalValue, tradeItems, status",
"end_cursor": "pagination cursor for the next page",
"has_next_page": "boolean indicating if more results are available"
},
"sample": {
"data": {
"items": [
{
"id": "VHJhZGU6NzM1OTQ1OTc",
"status": "LISTED",
"totalValue": 8.35,
"tradeItems": [
{
"id": "VHJhZGVJdGVtOjczOTY1MDYx",
"marketName": "StatTrak™ MP7 | Abyssal Apparition (Battle-Scarred)",
"itemVariant": {
"name": "Abyssal Apparition",
"brand": "StatTrak™ MP7",
"color": "Battle-Scarred",
"value": 7.49,
"rarity": "classified"
}
}
],
"hasStickers": false,
"avgPaintWear": null,
"markupPercent": 11.48
}
],
"end_cursor": "WzczNTk3OTM0LDQ5XQ==",
"has_next_page": true
},
"status": "success"
}
}About the CSGORoll API
Marketplace & Pricing Data
The get_marketplace_listings endpoint returns paginated trade listings from the CSGORoll P2P skin market. Each item in the tradeItems array includes the skin name, weapon type, paint wear range, applied stickers, price in coins, and markup percentage. Pagination is cursor-based: pass the end_cursor value from one response as the after parameter in the next request. Page size is configurable via the limit parameter (1–50). To get a high-level view of market activity, get_marketplace_stats returns a single volume_coins float representing the rolling 24-hour trading volume.
Cases, Drops & Battles
get_cases_list returns all available cases ordered by site display order, with fields for cost, riskFactor, iconUrl, and tags. To look up a specific case, get_case_detail accepts a slug string and supports partial matching — querying fortune will return both an official Fortune case and any community cases containing that substring. get_best_drops surfaces the single highest-value case opening for the current UTC day, returning the item's name, item_rarity, item_value in coins, and the opening user's display name and avatar URL. get_case_battles_list returns active and recent PvP battles with full round detail including boxes, strategy, totalBet, team composition, and status.
Leaderboards, Games & Exchange Rates
get_leaderboard returns active campaign objects with name, endDate, prizeBalance in coins, and distributionStrategy — useful for tracking competitive events. get_games_list returns all game modes from the CSGORoll CMS, including their label, link, availability flags (comingSoon, isBeta, isNew), and associated images. get_exchange_rates provides current conversion rates from CSGORoll's TKN coin to fiat and crypto currencies, with an updated_at ISO 8601 timestamp indicating when rates were last refreshed and a source_currency field always set to TKN.
The CSGORoll API is a managed, monitored endpoint for csgoroll.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when csgoroll.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official csgoroll.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track real-time CS2 skin prices and markup trends using markupPercent and totalValue from marketplace listings
- Monitor 24-hour P2P trading volume on CSGORoll via the volume_coins field in marketplace stats
- Compare case costs and risk factors across official and community cases to evaluate opening value
- Alert users when today's best case drop exceeds a coin value threshold using item_value from get_best_drops
- Display active case battle rooms with team composition, bet amounts, and current status for a live game tracker
- Convert TKN coin balances to fiat or crypto equivalents using get_exchange_rates for portfolio tools
- Surface leaderboard prize pools and end dates to notify users of active competitive campaigns
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.