MTGJSON v5 Changelog
The following is the MTGJSON v5 Changelog. Some parts may be updated for clarity or corrections at any point.
If you have suggestions for improvements, bug reports, or would just like to help address existing issues, we are always looking for help. You can contribute to the project through the MTGJSON Repository or the Documentation Repository. If you would like to help in other ways please consider donating to the project via PayPal (one-time donation) or via Patreon (recurring donations).
5.2.2
Release Date: 2023-09-10
Announcements
Welcome to v5.2.2! With this update, we've put a large focus on Sealed Product, both from building it out and documentation. We have also added a few more new properties, new Data Models, new files (including AllPricesToday!) and fixed some bugs. As always, although this changelog does not reflect all the new sets and decks added, MTGJSON will continue to build frequently enough to capture all new products on a daily basis. We've also revamped our documentation a bit for more clarity. Abstract Data Models are now gone and all housed in the Data Models section with their own property definitions.
Card Model
Added
- Added missing
duelDeck
property to Card (Set) - Added missing
isTextless
property to Card (Token) - Added missing
originalText
property to Card (Token) - Added missing
originalType
property to Card (Token) - Added
mcm*
properties to theidentifiers
property for Card (Token). (Our documentation linked these as a possibility however they were not populating until now) - Added
artistIds
property to Card (Deck), Card (Set), and Card (Token) - Added
sourceProducts
property to Card (Deck), Card (Set), and Card (Token) - Added
starterdeck
topromoTypes
property for Card (Deck), Card (Set), and Card (Token) - Added Card (Set Deck) Data Model to describe cards within a Deck (Set)
Changed
- Changed
rulings
on Card Data Models to be optional
Deck Model
Added
- Added Deck (Set) Data Model to describe a Deck within a Set
Set Model
Added
- Added
decks
property
Changed
- Changed
languages
property to be sorted
Legalities Model
Added
- Added missing
oathbreaker
property - Added missing
paupercommander
property
Booster Model
Added
- Added
fixed
property - Added
allowDuplicates
property - Added Booster Config Data Model to describe configurations of a booster property
- Added Booster Pack Data Model to describe configurations of booster packs
- Added Booster Sheet Data Model to describe configurations of cards printed on a sheet for booster packs
Changed
- Changed top-level key of
draft
todefault
Sealed Product Model
Sealed Product is now more documented. More Data Models have been created to describe the contents
property of a top-level Sealed Product Data Model
Added
- Added
cardCount
property - Added missing
contents
property - Added Sealed Product Contents, Sealed Product (Card), Sealed Product (Deck), Sealed Product (Other), Sealed Product (Pack), Sealed Product (Sealed) Data Models to describe the different configurations of sealed products found in the Sealed Product Data Model
AllPrintingsParquetFiles
A series of new files formatted for Parquet.
AllPricesToday
A new file containing card prices for all cards only for the current day.
Misc
- Exported more Data Models as TypeScript types
- Handle error exceptions from Gatherer
- Handle error exceptions from Scryfall
- Handle crashes if fields are not found
- Allow building of empty sets
5.2.1
Release Date: 2023-02-12
Announcements
Welcome to v5.2.1! The MTGJSON team, our contributors, and the community have been working hard with this latest update with focuses on providing more properties, deprecating old properties, and bug fixes. Although this changelog does not reflect all the new sets and decks added, MTGJSON will continue to build frequently enough to capture all new products on a daily basis.
Card Model
Added
- Added
attractionLights
optional property to Card (Atomic), Card (Deck), and Card (Set) - Added
boosterTypes
optional property to Card (Deck) and Card (Set) - Added
edhrecSaltiness
optional property to Card (Atomic), Card (Deck), and Card (Set) - Added
firstPrinting
optional property to Card (Atomic) - Added
foreignData
optional property to Card (Atomic) - Added
isFunny
optional property to Card (Atomic) - Added
language
property to Card (Deck), Card (Set), and Card (Token) - Added
relatedCards
property to all Card Data Models - Added
subsets
optional property to all Card Data Models
Fixed
- Fixed some cards showing side
"b"
for both faces of the card - Fixed
"meld"
cards in The Brothers' War (BRO
) set
Changed
- Changed
isAlternative
property to be set only on card variants within the same set - Changed
legalities
property to use the most permissive legalities of the card
Deprecated
- Deprecated
isStarter
optional property on Card (Deck), and Card (Set) as it provides no useful data. Will be removed inv5.3.0
- Deprecated
reverseRelated
optional property on Card (Token) in favor of therelatedCards
property, described by the Related Cards Data Model. Will be removed inv5.3.0
Related Cards Model (New)
This new Data Model encapsulates data related to cards that are connected to other cards including the "spellbook"
mechanic, "meld"
cards, and token creation.
Added
- Added
reverseRelated
optional property to Related Cards - Added
spellbook
optional property to Related Cards
Legalities Model
Added
- Added
explorer
optional property to Legalities
Removed
- Removed
frontier
optional property
Identifiers Model
Added
- Added
mtgjsonFoilVersionId
optional property to Identifiers - Added
mtgjsonNonFoilVersionId
optional property to Identifiers
Fixed
- Fixed
scryfallOracleId
property not appearing on some cards
Set Model
Added
Fixed
- Fixed
translations
not having values
Sealed Product Model
Added
- Added
category
optional property to Sealed Product - Added
subtype
optional property to Sealed Product - Added
productSize
optional property to Sealed Product
Enum Values Model
Added
- Added
language
property tocard
property - Added
boosterTypes
property tocard
property - Added
condition
,finishes
,language
, andprinting
properties to a newtcgplayerSkus
property
Misc
- MTGJSON dropped support for Python 3.6
- MTGJSON added support for Python 3.11
- MTGJSON no longer requires a configuration file
- MTGJSON now queries Gatherer for Multiverse ID as a fallback
- Documentation now uses VitePress under the hood
5.2.0
Release Date: 2021-12-20
Announcements
Welcome to v5.2.0! With this update we've added a lot of new Card Data Model properties with a focus on Card identification. Some of these new properties are signatures, stamps, and finishes. Also, some properties were deprecated with various slates of removal.
We want to remind everyone that while this Changelog can show updates to new Sets that have dropped and our added support for them. MTGJSON will continue to build frequently enough to have this new data without major or minor updates to the application or Changelog. You can always see the current build date using the Meta JSON file and observing the date property or the date appended to the version number.
Card Model
Added
- Added
manaValue
property Card (Atomic), Card (Deck), and Card (Set) - Added
isFunny
optional property to Card (Deck), Card (Set), and Card (Token) - Added
finishes
property to Card (Deck), Card (Set), and Card (Token) - Added
cardParts
optional property to Card (Deck), Card (Set), and Card (Token) - Added
securityStamp
optional property to Card (Deck), Card (Set), and Card (Token) - Added
faceManaValue
optional property to Card (Atomic), Card (Deck), and Card (Set) - Added
faceFlavorName
optional property to Card (Deck), Card (Set), and Card (Token) - Added
signature
optional property to Card (Deck), Card (Set), and Card (Token) - Added
isRebalanced
optional property to Card (Deck) and Card (Set) - Added
rebalancedPrintings
optional property to Card (Deck) and Card (Set) - Added
originalPrintings
optional propertiy to Card (Deck) and Card (Set) - Added
otherFaceIds
property to Card (Token) - Added support for
"Dungeon"
cards in Card (Atomic)
Fixed
- Fixed dual-faced cards having the wrong mana value on its face
- Fixed
hasAlternativeDeckLimit
property forSeven Dwarves
being incorrect - Fixed
isAlternative
property for cards in theCMR
andJMP
sets - Fixed
Grist, the Hunger Tide
not being a valid commander - Fixed
releaseDate
property not getting set on"flip"
cards - Fixed an issue where duplicates of the
uuid
property were being set on Adventures in the Forgotten Realms Art Series (AAFR
) tokens - Fixed an issue where flavor names were not set correctly for certain foreign cards
- Fixed an issue caused by a source having its printed text not providing line breaks
Deprecated
- Deprecated
convertedManaCost
property in favor ofmanaValue
property. Will be removed inv6.0.0
- Deprecated
faceConvertedManaCost
optional property in favor offaceManaValue
optional property. Will be removed inv6.0.0
- Deprecated
hasFoil
andhasNonFoil
properties in favor offinishes
property. Will be removed inv5.3.0
Set Model
Added
- Added
sealedProduct
optional property to Set (This is still a WIP, but the foundation is now available)
Fixed
- Fixed an issue where the French name of
"Eldritch Moon"
was incorrect
Foreign Data Model
Fixed
- Fixed an issue where data was not getting set
Identifiers Model
Added
- Added
tcgplayerEtchedProductId
optional property to Identifiers - Added
cardKingdomEtechedId
optional property to Identifiers
Changed
- Changed
scryfallOracleId
property to be optional
Purchase Urls Model
Added
- Added
tcgplayerEtched
optional property to Purchase Urls - Added
cardKingdomEtched
optional property to Purchase Urls
Legalities Model
Added
- Added
gladiator
property to Legalities - Added
historicbrawl
property to Legalities - Added
oldschool
property to Legalities - Added
premodern
property to Legalities
Enum Values Model
Added
- Added
finishes
property tocard
model
Keywords Model
Fixed
- Fixed
abilityWords
property showing wrong values
Tcgplayer Skus Model
Added
- Added
finishes
property to Tcgplayer Skus
Misc
- MTGJSON now supports Python 3.6 - 3.10
- Better handle Gatherer downtime halting builds
- Merged some File Models and Abstract Data Models within the documentation to the Data Model category for more clarity and ease of use. This in no way changes how and where the data files are downloaded or how their models are formed.
5.1.0
Release Date: 2021-01-18
Announcements
Welcome to v5.1.0! With this release we are no longer supporting Version 4, so if you have not already, please update all your sources to the Version 5 endpoints to ensure your applications function correctly going forward.
Note: With this release, MTGJSONv4 has been fully deprecated. On February 28th, 2021 all v4 endpoints will be removed.
Card Model
Added
- Added
originalReleaseDate
optional property to Card (Deck) and Card (Set) - Added
keywords
property to Card (Atomic) - Added
asciiName
property to Card (Atomic) - Added
identifiers
property to Card (Atomic)
Changed
- Changed
layout
property to be set to"token"
if the set is only tokens
Fixed
- Fixed cards with
art_series
type - Fixed
isAlternative
property for cards within a single set (Thanks, kodabb!)
Set Model
Added
- Added
mcmIdExtras
optional property to Set (Thanks, mjainta!)
Set List Model
Deck Model
Added
- Added
commander
optional property to Deck
Deck List Model
Added
- Added
type
property to Deck List
Legalities Model
Added
- Added
historic
optional property to Legalities
Fixed
- Fixed broken link to Keyrune
Set Model
Fixed
- Fixed Salvat 2005 (
PSAL
) to be now correctly marked as foreign (Thanks, silasary!)
Files
Added
- Added
TcgplayerSkus.*
file which contains TCGplayer SKU information organized by a card'suuid
property - Added
currency
property toAllPrices
file (Thanks, tpblaster!)
Updated
- Updated the order of keys so that the
meta
key appears at the top
Misc
- MTGJSON has dropped TravisCI support in favor of GitHub Actions (Thanks, ebbit1q!)
- Fixed a documentation issue where Data Models without optional properties were able to be filtered
5.0.1
Release Date: 2020-08-24
Announcements
Welcome to v5.0.1! We've made some minor changes to Data Models with a big push to release a new file: AllIdentifiers!
Card Model
Added
- Added
setCode
property to Card (Deck), Card (Set), and Card (Token)
Foreign Data Model
Added
- Added
faceName
optional property to Foreign Data
Set Model
Fixed
- Fixed some
translation
property inaccuracies - Fixed some
keyruneCode
property inaccuracies
Files
Added
- Added
AllIdentifiers.*
file for download which contains all cards organized by a card'suuid
property
5.0.0
Release Date: 2020-07-03
Announcements
Welcome to v5.0.0! We are proud to announce the 5th major release of MTGJSON. The team has made big improvements including a new “API” endpoint to serve files. We have also given our documentation an overhaul - including upgrading our server to run on Nginx.
We are also pleased to announce the addition of booster
optional property defined with the help of the Booster Config Data Model on the Set Data Model.
The MTGJSON team we would like to thank the community for its continued support and we look forward to serving you well.
Card Model
Added
- Added
hasAlternativeDeckLimit
optional property to Card (Atomic), Card (Deck), and Card (Set) - Added
promoTypes
optional property to Card (Deck), Card (Set), and Card (Token) - Added and back-ported
hasContentWarning
property to Card (Deck) and Card (Set) (Cards that are marked by Wizards of the Coast for having sensitive content) - Added
variations
optional property to Card (Deck) and Card (Set) - Added
keywords
property to Card (Atomic), Card (Deck), Card (Set), and Card (Token) - Added
faceName
optional property to Card (Atomic), Card (Deck), Card (Set), and Card (Token)
Changed
- Changed
"Meld"
cardsname
andside
properties to be more clear. Example:"Gisela, the Broken Blade // Brisela, Voice of Nightmares"
(side a),"Bruna, the Fading Light // Brisela, Voice of Nightmares"
(side a), and"Brisela, Voice of Nightmares"
(side b) - Changed
mcmId
,mcmMetaId
,mtgoFoilId
,mtgoId
,multiverseId
,scryfallId
,scryallIllustrationId
,scryfallOracleId
, andtcgplayerProductId
properties to be nested in to a newidentifiers
property.mtgstocksId
was removed for redundancy - Changed
isArena
,isMtgo
, andisPaper
properties to be nested inside a newavailability
property. Values return a string of the available property. See the available examples for all the values - Changed
isBuyABox
,isBundle
,isPlaneswalkerStamped
, andisDateStamped
properties to be nested in to a newpromoTypes
property - Changed
name
property to show full split card names (name1 // name2) - Changed
name
property to be verbatim as printed on the card (see Unglued variants for example) - Changed
names
property tootherFaceIds
property - Changed
uuid
property for all tokens and split cards - Changed
hasNoDeckLimit
property tohasAlternativeDeckLimit
property
Removed
- Removed
prices
property in favor of a dedicatedAllPrices
file
Set Model
Added
- Added
booster
optional property to Set
Removed
- Removed
boosterV3
property
Identifiers Model
Added
- Added
mtgjsonV4Id
optional property to Identifiers to help transition developer code
Files
Changed
- Changed all file downloads to be available via the
/api/v5/*
web-based url - Changed
AllCards
file to renamedAtomicCards
to better clarify that these files only contain atomic card data - Changed
[Format]Printings
files to be renamed to just their format name:Modern
,Legacy
, etc - Changed the
version
file to renamedMeta
- Changed all files to use a top-level
data
andmeta
key. Any Data Models inside ofdata
will lose the nestedmeta
object
Added
- Added SHA-256 file validation for every file, downloadable at the file location and file name with an appended
.sha256
format - Added
AllPrices
file to collect card prices based on a card'suuid
property with a limited history of prices available. Contains paper prices from tcgplayer, cardmarket, and cardkingdom; mtgo prices from cardhoarder
Misc
- Added
Phyrexian
language where language data is available - The documentation application server was switched over to Nginx
- Documentation data "Structures" are now named "Data Models"
- Data Models now reference their parent keys and parent files more accurately
- Data Models now have the "optional" tag marked on properties for clarity
- More Data Models are more clearly defined now that the files deliver all the same top-level keys
- Atomic Cards are now documented outright as a Card (Atomic) Data Model for clarity
- Property value examples were added for properties with enumuerated values from
EnumValues.json
- You can now toggle optional properties on/off within documentation. If all properties are optional, then the UI is disabled
- You can now open a link to create a PR for a specific documentation page from the footer