API Documentation
MTGstand provides a REST-like API. All requests are served over HTTPS and our API uses UTF-8 character encoding for all responses.Active MTGstand Pro users receive their personal API access token automatically.
How it works?
Every request is executed with the following url:https://www.mtgstand.com/api/YourAccessToken/category/value/currency
JSON Output
You have access to the following values depending on the category and the selected fields:| Card name | |
| Card set | |
| Specific scryfall set code | |
| The color identity of a card is specified by all mana symbols that appear in its casting cost, color indicator, and rules text. | |
| Card value / price in the selected / exchangeable currency | |
| Foil card value / price in the selected / exchangeable currency | |
| Monthly price trend / changes in % | |
| Monthly foil price trend / changes in % | |
| Specific scryfall ID | |
| MTGstand card url | |
| Seller / buyer username for seller and buylist calls | |
| Country of the seller / buyer | |
| Available or requested quantity | |
| Card condition | |
| Card language | |
| Seller price for a non-foil card | |
| Seller price for a foil card | |
| Buyer price for a non-foil card | |
| Buyer price for a foil card | |
| Unique countries found in summary responses | |
| Total amount of matching cards / requests in summary responses | |
| Lowest matching market price in summary responses | |
| Highest matching market price in summary responses | |
| Average matching market price in summary responses | |
| Recorded date for history responses | |
| Historical card value in the requested currency | |
| Historical foil card value in the requested currency |
Your Access Token
If you are an active MTGstand Pro user, you automatically receive your personal API access token. Use that token in your own API requests. Access is user-based and rate limited per day.Query parameters
In addition to category, value and currency, the API supports several optional query parameters:| Limits the number of returned entries in list-based endpoints. Values from 1 to 100 are supported. | |
| Skips the first matching entries before returning data. | |
| Alternative to offset for list-based endpoints. When page is used without limit, the API defaults to 20 entries per page. | |
| Comma-separated list of fields that should be returned. This is useful to reduce payload size when you only need selected values. | |
| Sort key for list-based responses. Useful examples: | |
| Sorting direction. Allowed values: | |
| Number of days for the history endpoint. Allowed values from 1 to 365. | |
| Set |
Category
The category determines the purpose of your call. You can insert the following categories:Search by card name
| |
| Search by full set name. This usually returns many cards from the selected set and is ideal for bulk set exports or price overviews. | |
Search by exact set code.
| |
| Search by exact Scryfall ID. | |
The category
| |
| The category | |
The category
| |
The category
| |
The category
| |
A compact market overview for a single card. This is useful when you want one combined response with card data, trends, seller counts and buyer counts.
| |
A summarized seller overview for a single card. Instead of returning every seller row, this endpoint returns counts, countries and aggregated price information.
| |
A summarized buyer overview for a single card. Instead of returning every buyer row, this endpoint returns counts, countries and aggregated price information.
| |
Historical value data for a single card. The history endpoint supports
|
Fields parameter
Use theExample call:
JSON result:
[
{
"name": "Garruk, Primal Hunter",
"set": "Magic 2013",
"setcode": "m13",
"color_identity": "G",
"PriceUSD": "1.45",
"PriceFoilUSD": "12.32",
"monthlyTrend": -25.99,
"monthlyFoilTrend": -5.76,
"scryfallID": "9945307b-d49d-4d21-bba0-2aebba68d57a",
"url": "https://www.mtgstand.com/Garruk-Primal-Hunter-Magic-2013-sid-9945307b-d49d-4d21-bba0-2aebba68d57a"
},
{
"name": "Garruk, Primal Hunter",
"set": "Magic 2012",
"setcode": "m12",
"color_identity": "G",
"PriceUSD": "1.91",
"PriceFoilUSD": "16.59",
"monthlyTrend": -6.01,
"monthlyFoilTrend": 15.07,
"scryfallID": "82d586bf-bed3-4390-b81d-d101c2ae524c",
"url": "https://www.mtgstand.com/Garruk-Primal-Hunter-Magic-2012-sid-82d586bf-bed3-4390-b81d-d101c2ae524c"
},
{
"name": "Garruk, Primal Hunter",
"set": "Commander 2019",
"setcode": "c19",
"color_identity": "G",
"PriceUSD": "1.85",
"PriceFoilUSD": "N/A",
"monthlyTrend": 26.52,
"monthlyFoilTrend": "N/A",
"scryfallID": "a6274dbf-f541-4b7b-a3dc-302197a4410e",
"url": "https://www.mtgstand.com/Garruk-Primal-Hunter-Commander-2019-sid-a6274dbf-f541-4b7b-a3dc-302197a4410e"
},
{
"name": "Garruk, Primal Hunter",
"set": "Commander 2021",
"setcode": "c21",
"color_identity": "G",
"PriceUSD": "1.85",
"PriceFoilUSD": "N/A",
"monthlyTrend": 9.87,
"monthlyFoilTrend": "N/A",
"scryfallID": "79cfc0d7-fccb-47fb-87b6-08dd32528be6",
"url": "https://www.mtgstand.com/Garruk-Primal-Hunter-Commander-2021-sid-79cfc0d7-fccb-47fb-87b6-08dd32528be6"
}
]
Pretty output
By default, the API returns pretty-printed JSON. You can request compact output withExample call:
JSON result:
{
"name": "Austere Command",
"set": "Double Masters",
"setcode": "2xm",
"color_identity": "W",
"PriceEUR": "0.95",
"PriceFoilEUR": "2.18",
"monthlyTrend": 3.23,
"monthlyFoilTrend": 4.33,
"scryfallID": "d36e87ca-71e1-43d2-841f-b01a58fe27f0",
"url": "https://www.mtgstand.com/Austere-Command-Double-Masters-sid-d36e87ca-71e1-43d2-841f-b01a58fe27f0",
"seller_count": 0,
"seller_listing_count": 0,
"available_quantity": 0,
"lowest_seller_price": "N/A",
"average_seller_price": "N/A",
"buyer_count": 0,
"buyer_listing_count": 0,
"requested_quantity": 0,
"highest_buy_price": "N/A",
"average_buy_price": "N/A"
}
Currency
You can switch between different currencies for non-foil and foil card prices. The default value is
|
|
|
|
|
|
JSON result:
[
{
"name": "Sliver Legion",
"set": "Judge Gift Cards 2019",
"setcode": "j19",
"color_identity": "B,G,R,U,W",
"PriceGBP": "N/A",
"PriceFoilGBP": "105.25",
"monthlyTrend": "N/A",
"monthlyFoilTrend": -0.39,
"scryfallID": "3511ae86-9c49-4628-b61b-f25466b1b1d2",
"url": "https://www.mtgstand.com/Sliver-Legion-Judge-Gift-Cards-2019-sid-3511ae86-9c49-4628-b61b-f25466b1b1d2"
},
{
"name": "Sliver Legion",
"set": "Future Sight",
"setcode": "fut",
"color_identity": "B,G,R,U,W",
"PriceGBP": "30.00",
"PriceFoilGBP": "120.55",
"monthlyTrend": 5.37,
"monthlyFoilTrend": 66.64,
"scryfallID": "8bd37a04-87b1-42ad-b3e2-f17cd8998f9d",
"url": "https://www.mtgstand.com/Sliver-Legion-Future-Sight-sid-8bd37a04-87b1-42ad-b3e2-f17cd8998f9d"
},
{
"name": "Sliver Legion",
"set": "Time Spiral Remastered",
"setcode": "tsr",
"color_identity": "B,G,R,U,W",
"PriceGBP": "23.43",
"PriceFoilGBP": "38.46",
"monthlyTrend": -11.27,
"monthlyFoilTrend": -3.62,
"scryfallID": "87545415-2e27-4841-a3af-7653af2ba6d3",
"url": "https://www.mtgstand.com/Sliver-Legion-Time-Spiral-Remastered-sid-87545415-2e27-4841-a3af-7653af2ba6d3"
},
{
"name": "Sliver Legion",
"set": "Secret Lair Drop",
"setcode": "sld",
"color_identity": "B,G,R,U,W",
"PriceGBP": "23.52",
"PriceFoilGBP": "28.51",
"monthlyTrend": -5.03,
"monthlyFoilTrend": -0.81,
"scryfallID": "98a229f0-3cca-4c2a-8cb5-064040eece72",
"url": "https://www.mtgstand.com/Sliver-Legion-Secret-Lair-Drop-sid-98a229f0-3cca-4c2a-8cb5-064040eece72"
},
{
"name": "Sliver Legion",
"set": "Secret Lair Drop",
"setcode": "sld",
"color_identity": "B,G,R,U,W",
"PriceGBP": "21.69",
"PriceFoilGBP": "24.19",
"monthlyTrend": -0.27,
"monthlyFoilTrend": -3.11,
"scryfallID": "feef6ea3-67f3-42d8-bf19-02ba9151c2a3",
"url": "https://www.mtgstand.com/Sliver-Legion-Secret-Lair-Drop-sid-feef6ea3-67f3-42d8-bf19-02ba9151c2a3"
}
]
/* Example output shortened in this guide. Showing the first 5 entries out of 6. The real API response returns the full result set. */
Error responses
The API returns structured JSON errors with anInvalid token example:
{
"success": false,
"error_code": "invalid_api_token",
"error": "Wrong Authentication Token - API access denied"
}
Daily limit reached example:
{
"success": false,
"error_code": "daily_limit_reached",
"error": "Daily API limit reached.",
"daily_limit": 500,
"used_today": 500
}
Please note
-
If you are missing any API functionality that you would need to connect your service or application to MTGstand, please contact us and tell us more about your project. We can develop an individual extension for your requirements.
-
List-based endpoints keep their original behaviour when no pagination parameters are used. As soon as you add ,
limit oroffset , the response is wrapped in an object withpage andmeta so you can paginate more easily.data - Submitting excessive requests to the server may result in reaching your daily request limit or in a temporary IP block. Continuing to overload the API after this point may result in a permanent ban of your IP address.
- The dynamic examples on this page may be shortened in the guide output for readability. The real API response still returns the full requested data set.






