I have downloaded the Bricklink catalog four or five times in the past, but the interval was very irregular. I would like to look at the evolution of the LEGO part list over the years. However, I didn't find an option on Bricklink, or elsewhere on the Internet, to download past versions.

Are you aware of any archive of Bricklink catalogs? I haven't looked at other platforms with LEGO catalogs. Any other idea to get systematic information on the evolution of the part list is also welcome, of course.

  • Since bricklink was recently purchased by Lego Corp., that database may be evolving further soon. Commented May 21, 2020 at 17:22
  • Are you specifically interested in only the Bricklink catalog, or are you interested in the evolution of produced LEGO elements generally?
    – jncraton
    Commented May 21, 2020 at 18:11
  • @jncraton It is general interest. I tried the Bricklink catalog because it comes in a format that can be analysed by scripts quite easily. Questions I have are e.g. "Did the number of Technic elements increase by more than the average over the past 20 years?". And other statistics that may have evolved over time.
    – Metalbeard
    Commented May 21, 2020 at 20:25
  • @user3794648 Yes, the catalog is constantly updated by the community. That is why an annual (or otherwise regular) snapshot would be interesting to have. Plus, the BL catalog comes in text format which is easy to reformat and to analyse.
    – Metalbeard
    Commented May 21, 2020 at 20:31

1 Answer 1


You might be able to get the information that you are after from the Rebrickable database dumps. This includes set inventories for many sets, along with the year that the sets were released. Here's the full schema diagram:

A query something like this should provide a count of the number of sets every element has appeared in by year:

SELECT year,
FROM   sets
       JOIN inventories
         ON inventories.set_num = sets.set_num
            AND inventories.version = 1
       LEFT JOIN inventory_parts
              ON inventory_parts.inventory_id = inventories.id
       JOIN parts
         ON parts.part_num = inventory_parts.part_num
       JOIN colors
         ON colors.id = inventory_parts.color_id
GROUP  BY year,
          colors.name ASC 

Here's that dataset:


Note that this query includes part variations (mold updates, prints, etc) as unique elements, so you may need to filter it down quite a bit for your use case. If you'd like to run your own queries directly against the full Rebrickable dataset, I maintain some scripts that make this fairly easy to do.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.