Teamfight Tactics

Overview

This document will provide you with a basic understanding of the Teamfight Tactics developer resources. It is designed to help you begin exploring and developing your own tools and products for Teamfight Tactics.

Getting Started

Before starting on a product for Teamfight Tactics, there are two requirements every developer must complete:

  1. Read the general policies
  2. Register your product

Only after developers have read the policies and registered their product on the Developer Portal, are they granted a limited license to use Riot Games’ intellectual property (IP) outlined in the Legal Jibber Jabber.

After you’ve read the policies and registered your product, it’s smooth sailing from there. We suggest following our Twitter and checking our blog to receive updates and joining the Developer Discord for help from the community. The Developer Discord is full of super talented and passionate developers that often run into the same issues you have. When you ask questions in the Discord you’ll likely get more people helping you and your question will help others that joined after you. We hold office hours every other Friday where members of the Discord can ask questions related to developer tools or their projects. Beyond that gl and hf. Send us an app note if you run into issues that the community couldn’t help you with.

Routing Values

The first step to executing a request to the Teamfight Tactics API is to select the correct host to execute your request to. The Teamfight Tactics (TFT) API uses what we call routing values in the domain to ensure your request is properly routed. We use both platform ids and regions as routing values (e.g., na1 and americas). These routing values are determined by the topology of the underlying services. Services are frequently clustered by platform resulting in platform ids being used as routing values. Occasionally services are clustered by region, which is when regional routing values are used. The best way to tell if an endpoint uses a platform or a region as a routing value is to execute a sample request through the reference page.

Platform Routing Values

Platform Host
BR1 br1.api.riotgames.com
EUN1 eun1.api.riotgames.com
EUW1 euw1.api.riotgames.com
JP1 jp1.api.riotgames.com
KR kr.api.riotgames.com
LA1 la1.api.riotgames.com
LA2 la2.api.riotgames.com
NA1 na1.api.riotgames.com
OC1 oc1.api.riotgames.com
TR1 tr1.api.riotgames.com
RU ru.api.riotgames.com

Regional Routing Values

Region Host
AMERICAS americas.api.riotgames.com
ASIA asia.api.riotgames.com
EUROPE europe.api.riotgames.com

Match History

Best Practices

To best utilize TFT match history there are two things to keep in mind; match history is still evolving and fresh data is cheaper.

Response Body Structure

A basic version of TFT match history was released in the client in patch 9.19. If you look up matches played during this patch they'll return data_version: "1" which is used through patch 9.20. In patch 9.19, the only fields for a participant that are guranteed to be accurate are last_round, level, placement, and puuid. In patch 9.20, items were added to the response body but were not guranteed to be accurate. As of patch 9.21 all the fields in the response should be accurate. As of patch 9.22, a new field called character_id was added to the UnitDto and the data version was bumped to data_version: "2".

Fresh Data

The match history service itself is optimized for fresh data. The newer the matches, the cheaper the cost to look them up. With Set 2 launching on November 4th, 2019 and the data inconsistencies prior to patch 9.20, we’re discouraging developers from backfilling data for Set 1.

Static Data

Although there currently is no official set of static assets available specifically for Teamfight Tactics, many of the assets from Teamfight Tactics can be gathered from League of Legends' Data Dragon. Additionally, if you'd like to provide input on what kind of static data you'd like to be made avaialble, please join the #tft-static-data channel on our Developer Discord.

In the interim, we've put together a manual package of static data and assets for champions, icons, traits, and hexes. All this data can be found in the zip archive below.

set2.zip

Champion Data

[
  {
    "champion": "Aatrox",
    "cost": 3,
    "traits": [
      "Light",
      "Blademaster"
    ]
  },
  ...
]

Item Data

[
  {
    "id": 1,
    "name": "B.F. Sword"
  },
  ...
]

Trait Data

[
  {
    "name": "Assassin",
    "innate": "Assassins sneak across the battlefield at the start of combat, placing themselves opposite from where they started.",
    "description": "Deploying multiple Assassins grant them critical strike chance and increased critical strike damage, increasing with more Assassins.",
    "sets": [3, 6]
  },
  ...
]

Hex Data

[
  {
    "name": "Inferno Hex",
    "description": "Gain attack speed for the duration of combat."
  },
  ...
]