itemshop.gg

Marvel Rivals Shop API

FreeJSONAPI key

Today's Marvel Rivals item shop as JSON, and everything it has sold since we started reading it. Free with an API key, for bots, overlays, apps and sites.

What the Marvel Rivals API covers

It covers the in-game store's offers, grouped by the day they were added, with what each bundle holds.

The shop resets every day at 09:00 UTC; the API has the new shop within minutes.

Each item comes with its name, type, price in Units, rarity, pictures, how long it's on sale and a key that stays the same each time it's sold, so you can follow it across rotations.

Every rotation we've recorded is in the history endpoints, and each item's stays in the shop.

Quick start

Make a key (sign in with Discord, name your project, say what it does), set it as ITEMSHOP_API_KEY, then:

Today's Marvel Rivals shop:

curl -H "Authorization: Bearer $ITEMSHOP_API_KEY" \
  "https://itemshop.gg/api/v1/shop/marvel-rivals"

Every day it changed, then the shop on one of those days:

curl -H "Authorization: Bearer $ITEMSHOP_API_KEY" \
  "https://itemshop.gg/api/v1/history/marvel-rivals"

curl -H "Authorization: Bearer $ITEMSHOP_API_KEY" \
  "https://itemshop.gg/api/v1/history/marvel-rivals/YYYY-MM-DD"

One item and every time it has been in the shop, by the itemKey on it in a shop answer:

curl -H "Authorization: Bearer $ITEMSHOP_API_KEY" \
  "https://itemshop.gg/api/v1/items/marvel-rivals/mr:bundle:name:black-cat-fatal-weaver-bundle"

Poll /api/v1/rotations to know when the shop changes, send back ETags, and show a “Data from itemshop.gg” link wherever you show the data.

A live answer

What /api/v1/shop/marvel-rivals returns for today's shop, cut to 2 of its 78 items:

{
  "data": {
    "game": "marvel-rivals",
    "shopDate": "2026-10-27",
    "updatedAt": "2026-10-27T11:17:18.578Z",
    "expiresAt": "2026-10-30T02:00:00.000Z",
    "stale": false,
    "itemCount": 78,
    "sections": [
      {
        "title": "Added Oct 23",
        "upcoming": false,
        "endsAt": null,
        "items": [
          {
            "id": "0110721",
            "itemKey": "mr:bundle:name:black-cat-fatal-weaver-bundle",
            "name": "Black Cat - Fatal Weaver Bundle",
            "type": "5 items",
            "rarity": {
              "name": "Legendary",
              "color": "#e8a33c"
            },
            "price": {
              "amount": 2200,
              "label": null,
              "currency": "Units",
              "currencyIcon": "https://itemshop.gg/currency/units.png",
              "regular": 3300
            },
            "images": {
              "card": "https://cdn.source.gs/marvel-rivals/img/img-mall-10613030-skin-590795.webp",
              "render": null
            },
            "badge": "New",
            "availability": {
              "from": "2026-10-23T02:00:00.000Z",
              "until": "2026-11-20T02:00:00.000Z",
              "untilLabel": null
            },
            "bundle": null,
            "contents": [
              {
                "name": "Fatal Weaver",
                "type": "Costume · Black Cat",
                "rarity": {
                  "name": "Legendary",
                  "color": "#e8a33c"
                },
                "image": "https://cdn.source.gs/marvel-rivals/img/item-skin-1061303-e7c804.webp",
                "quantity": 1,
                "itemKey": "mr:item:1061303"
              },
              {
                "name": "Final Cut",
                "type": "MVP · Black Cat",
                "rarity": {
                  "name": "Legendary",
                  "color": "#e8a33c"
                },
                "image": "https://cdn.source.gs/marvel-rivals/img/item-mvp-1061303305-c5b2f9.webp",
                "quantity": 1,
                "itemKey": "mr:item:1061303305"
              }
            ],
            "soldOut": false,
            "sourceUrl": "https://rivals.gs/store/black-cat-fatal-weaver-bundle/"
          },
          {
            "id": "0110718",
            "itemKey": "mr:bundle:name:elsa-bloodstone-gothic-huntress-bundle",
            "name": "Elsa Bloodstone - Gothic Huntress Bundle",
            "type": "5 items",
            "rarity": {
              "name": "Epic",
              "color": "#b45cf0"
            },
            "price": {
              "amount": 1600,
              "label": null,
              "currency": "Units",
              "currencyIcon": "https://itemshop.gg/currency/units.png",
              "regular": 2200
            },
            "images": {
              "card": "https://cdn.source.gs/marvel-rivals/img/img-mall-10593040-skin-50816f.webp",
              "render": null
            },
            "badge": "New",
            "availability": {
              "from": "2026-10-23T02:00:00.000Z",
              "until": "2026-11-20T02:00:00.000Z",
              "untilLabel": null
            },
            "bundle": null,
            "contents": [
              {
                "name": "Gothic Huntress",
                "type": "Costume · Elsa Bloodstone",
                "rarity": {
                  "name": "Epic",
                  "color": "#b45cf0"
                },
                "image": "https://cdn.source.gs/marvel-rivals/img/item-skin-1059304-15444a.webp",
                "quantity": 1,
                "itemKey": "mr:item:1059304"
              },
              {
                "name": "Rose Requiem",
                "type": "MVP · Elsa Bloodstone",
                "rarity": {
                  "name": "Epic",
                  "color": "#b45cf0"
                },
                "image": "https://cdn.source.gs/marvel-rivals/img/item-mvp-1059304305-0d8734.webp",
                "quantity": 1,
                "itemKey": "mr:item:1059304305"
              }
            ],
            "soldOut": false,
            "sourceUrl": "https://rivals.gs/store/elsa-bloodstone-gothic-huntress-bundle/"
          }
        ]
      }
    ]
  }
}

Every field is explained in the API docs.

Build it with an AI agent

Paste this into Claude Code, Cursor, Copilot or any coding agent in your project. It explains the API, keeps your key server-side and adds the link back.

Show the prompt
Add itemshop.gg's Item Shop API to this project. Full reference: https://itemshop.gg/developers (read it if you can fetch pages).

The game I'm building for is Marvel Rivals (slug "marvel-rivals"): its shop is https://itemshop.gg/api/v1/shop/marvel-rivals.


Authentication
- Every request needs an API key, sent as the header "Authorization: Bearer <key>".
- Read the key from an environment variable named ITEMSHOP_API_KEY. Never hard-code it, commit it, or send it to a browser: call the API from server-side code only. If this project has an example env file, add ITEMSHOP_API_KEY to it with a placeholder.
- I make keys at https://itemshop.gg/account#api. If the variable isn't set, fail with a clear message saying so.

Endpoints (all GET, all JSON shaped { data, meta })
- https://itemshop.gg/api/v1/games: every game covered, with slug, name, page url, currency, reset time (UTC) and whether item history is available (itemHistory).
- https://itemshop.gg/api/v1/shop/{game}: the shop on sale now, as sections of items.
- https://itemshop.gg/api/v1/rotations: a fingerprint per game that changes when its shop changes. Poll this, and fetch a shop only when its fingerprint moves.
- https://itemshop.gg/api/v1/history/{game}: the days that game's shop changed, newest first.
- https://itemshop.gg/api/v1/history/{game}/{YYYY-MM-DD}: the shop on that day (UTC), same shape as /shop, plus shopDate and exact.
- https://itemshop.gg/api/v1/items/{game}/{itemKey}: one item and its stays in the shop. itemKey comes from items in shop or history answers.
Game slugs: valorant, marvel-rivals, overwatch, diablo-4, call-of-duty, rainbow-six-siege, aniimo, apex-legends, arc-raiders, battlefield-6, dead-by-daylight, war-thunder, pubg, once-human, league-of-legends, teamfight-tactics, path-of-exile-2, sea-of-thieves, wardogs, discord, rust.

The shop answer
- data: { game, shopDate, updatedAt, expiresAt, stale, itemCount, sections: [{ title, upcoming, endsAt, items }] }.
- Each item: { id, itemKey, name, type, rarity: { name, color } | null, price: { amount, label, currency, currencyIcon, regular }, images: { card, render }, badge, availability: { from, until, untilLabel }, bundle, contents: [...], soldOut, sourceUrl }.
- Many fields can be null; handle that. price.amount is null when the store shows no number, and price.label then holds a word such as "Included". price.currency is the game currency's name, or an ISO code like "USD" for real money. Sections with upcoming: true can't be bought yet. An empty sections list with stale: false is a genuinely empty shop.
- Write types for these shapes in this project's language.

Being a good client
- Cache answers: shops change every few minutes at most, and an answer is good for about two minutes. Send back the ETag as If-None-Match and treat 304 as "unchanged".
- The limit is 600 requests a minute per key. On 429, wait for the Retry-After header's seconds before trying again.
- Errors are { error: { code, message } }. Handle 401 (key_required or invalid_key: the key is missing, wrong or revoked), 404 (unknown_game, not_recorded, unknown_item, no_items), 429 and 503 (try again later).
- Set a User-Agent header that names this project.

Required by the terms
- Wherever the data is shown, show a visible link: "Data from itemshop.gg", linking to meta.attribution.url from the answer. Add it to the UI you build.

Start by asking me what I want built with it (for example a Discord bot command, a site widget or a daily post), unless I've already said, then implement it following the existing patterns in this codebase.

Questions

Is there a Marvel Rivals shop API?

Yes. itemshop.gg has a free JSON API for the Marvel Rivals item shop: GET https://itemshop.gg/api/v1/shop/marvel-rivals with an API key gives today's shop, and the history endpoints give past rotations and each item's history.

Is the Marvel Rivals shop API free?

Yes. Make a key in your itemshop.gg settings after signing in with Discord, and you can make up to 600 requests a minute. The one condition is a visible "Data from itemshop.gg" link wherever you show the data.

How often is the Marvel Rivals shop data updated?

The shop resets every day at 09:00 UTC, and the API has the new shop within minutes. Between resets it changes when the store does.

How far back does the Marvel Rivals shop history go?

As far as our own record of the Marvel Rivals shop goes. GET /api/v1/history/marvel-rivals lists every day it changed.

The same API covers 21 games. See them all →