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.
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.
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.