Skip to content

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

Changed

  • Changed rulings on Card Data Models to be optional

Deck Model

Added

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 to default

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

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

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 in v5.3.0
  • Deprecated reverseRelated optional property on Card (Token) in favor of the relatedCards property, described by the Related Cards Data Model. Will be removed in v5.3.0

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

Legalities Model

Added

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

  • Added languages property to Set
  • Added tokenSetCode optional property to Set

Fixed

  • Fixed translations not having values

Sealed Product Model

Added

Enum Values Model

Added

  • Added language property to card property
  • Added boosterTypes property to card property
  • Added condition, finishes, language, and printing properties to a new tcgplayerSkus 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

Fixed

  • Fixed dual-faced cards having the wrong mana value on its face
  • Fixed hasAlternativeDeckLimit property for Seven Dwarves being incorrect
  • Fixed isAlternative property for cards in the CMR and JMP 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 of manaValue property. Will be removed in v6.0.0
  • Deprecated faceConvertedManaCost optional property in favor of faceManaValue optional property. Will be removed in v6.0.0
  • Deprecated hasFoil and hasNonFoil properties in favor of finishes property. Will be removed in v5.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

Legalities Model

Added

Enum Values Model

Added

  • Added finishes property to card model

Keywords Model

Fixed

  • Fixed abilityWords property showing wrong values

Tcgplayer Skus Model

Added

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

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

  • Added sealedProduct optional property to Set List
  • Added mcmIdExtras optional property to Set List

Deck Model

Added

  • Added commander optional property to Deck

Deck List Model

Added

Legalities Model

Added

Fixed

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's uuid property
  • Added currency property to AllPrices 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

Foreign Data Model

Added

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's uuid 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

Changed

  • Changed "Meld" cards name and side 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, and tcgplayerProductId properties to be nested in to a new identifiers property. mtgstocksId was removed for redundancy
  • Changed isArena, isMtgo, and isPaper properties to be nested inside a new availability property. Values return a string of the available property. See the available examples for all the values
  • Changed isBuyABox, isBundle, isPlaneswalkerStamped, and isDateStamped properties to be nested in to a new promoTypes 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 to otherFaceIds property
  • Changed uuid property for all tokens and split cards
  • Changed hasNoDeckLimit property to hasAlternativeDeckLimit property

Removed

  • Removed prices property in favor of a dedicated AllPrices 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 renamed AtomicCards 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 renamed Meta
  • Changed all files to use a top-level data and meta key. Any Data Models inside of data will lose the nested meta 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's uuid 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