Andrew Backes

Elder Scrolls: Legends API

A convenient way to access all card data and images programmatically.

https://elderscrollslegends.io

Overview

The Elder Scrolls: Legends API is a free, simple to use API that delivers ESL card and set data in JSON.

The API is written in Ruby on Rails, while the data is all stored in PostgreSQL.

This project was created while I was playing a lot of ESL and was thinking about making my own web app for managing your decks. I noticed there was no site that offered the card data in an easily consumable format, so I decided to add on to my list of TCG APIs, and create one for ESL.

Compared to my other two APIs (MTG and Pokémon TCG), this one is a bit more clean and provides a JSON format that I will most likely use in V2 of my other APIs. Standardizing on a set object makes the JSON more clean and provides predictable keys and query strings as compared to my other two APIs. I’d say third time is the charm, and this API is a good template for what I’ll continue to do in the future.

Here is a sample requests/response:

GET https://api.elderscrollslegends.io/v1/cards?name=alduin

{
   "cards":[
      {
         "name":"Alduin",
         "rarity":"Legendary",
         "type":"Creature",
         "subtypes":[
            "Dragon"
         ],
         "cost":20,
         "power":12,
         "health":12,
         "set":{
            "id":"hos",
            "name":"Heroes of Skyrim",
            "_self":"https://api.elderscrollslegends.io/v1/sets/hos"
         },
         "collectible":true,
         "soulSummon":1200,
         "soulTrap":400,
         "text":"Costs 2 less for each Dragon in your discard pile. Summon: Destroy all other creatures. At the start of your turn, summon a random Dragon from your discard pile.",
         "attributes":[
            "Neutral"
         ],
         "unique":true,
         "imageUrl":"https://images.elderscrollslegends.io/hos/alduin.png",
         "id":"1fd81123ab3eca0b29c4c19757045db9757b4f1a"
      }
   ],
   "_pageSize":100,
   "_totalCount":1
}

Future Plans

I will most likely follow suit with my other APIs, and port this API over to a new stack (while remaining V1).

The future stack includes:

  • .NET Core
  • Azure Search
  • Azure Functions

Check It Out