Warning! Still beta.

What is this?

Name TBd is a RESTful API where you can find information about Pokémon and moves in the main game series.
It is focused on the core concept of pokémon: Building a strong and well-balanced team. That's why you won't find information about berries and locations here.

But there is already PokéAPI.

That's right. PokéAPI is great. It provides way more information about the pokémon games than this API and is maintained by a community for a few years. And due to static file hosting, it is rather quicker.
But I missed some features which I added to this API.

What are these features you are talking about?

Languages

First of all this API is available in different languages (japanese, korean, french, german, spanish, italian, english). If your language is missing or incomplete and you want to provide localization, contact me.

Versions

It is possible to get information for different pokémon versions (actually version groups).
Currently generations 1-7 are available. Maybe I will add information for 8th generation later.

Filter

You can fetch information about pokémon which meet certain criteria (apart from usual ones like name and type). See Docs for the full list.

Why did you make this API?

I was looking for a website where you can search for pokemon with more filters than type and generation. I found some pages (Pokefans, GraphQL-Pokémon), but none of these websites did meet my expectations.
My first plan was to build a website with a nice UI where you can select your criteria and get all the information you need. But I'm not a good web designer. So I limited myself to the backend.

Playground

Documentation

Query Language

It's a very simple query language which you can use in the query parameter.
Actually it is just a boolean expression. The simplest one contains an attribute name, an operator and a value (in that order).

index = 130

You can concatenate these expressions with and, or and xor.

weight > 1000 and move = surf

To change the precendence of boolean operators (and > xor > or) you can use brackets.

stats.speed > 100 and (type any(grass, bug) or legendary = true)

For some attributes it is possible to use subqueries.

move any("q: type=ground and power>=100")

Valid operators are

  • =
  • <>
  • !=
  • <
  • <=
  • >
  • >=
  • any
  • all
  • none

The last three ones require a list of values (at least one) within brackets. Not all operators are applicable for all attributes.

Query attributes

Contact

Ideas, issues and wishes...