api.tribalwarshelp.com
A GraphQL API designed for developers who want to create something meaningful for the game Tribal Wars.
Limits
It is possible to fetch in one GraphQL query:
- 1000 daily player/tribe stats records
- 200 ennoblements
- 30 versions
- 200 players/tribes
- 1000 villages
- 100 player/tribe history records
- 100 servers
- 60 server stats records
- 100 tribe changes
Sample queries
- Fetch all bonus villages with 10% more population
query {
villages(server: "en115", filter: { playerID: [0], bonus: 4 }) {
total
items {
id
name
x
y
points
}
}
}
- Top 30 players without a tribe, ordered by points.
query {
players(
server: "pl148"
filter: { tribeID: [0] }
sort: ["points DESC"]
limit: 30
) {
total
items {
id
name
rank
points
totalVillages
rankAtt
rankDef
rankTotal
rankSup
}
}
}
- Search a player by a nickname fragment.
query {
players(server: "pl148", filter: { nameIEQ: "%pablo%" }) {
total
items {
id
name
}
}
}
More examples here.
Map generator
You can generate a server map with this API. The current endpoint is http(s)://youraddress/map/server (replace "server"
with the server you're interested in, for example, pl151).
Available query params:
Param |
Default |
showBarbarians |
false |
largerMarkers |
false |
markersOnly |
false |
centerX |
500 |
centerY |
500 |
scale |
1 (max 5) |
showGrid |
false |
showContinentNumbers |
false |
backgroundColor |
#000 |
gridLineColor |
#fff |
continentNumberColor |
#fff |
tribe(this param you can define multiple times) |
format: tribeid,hexcolor (for example, tribe=631,#0000ff) |
player(this param you can define multiple times) |
format: playerid,hexcolor (for example, player=631,#0000ff) |
Example
pl151
https://api.tribalwarshelp.com/map/pl151?showBarbarian=true&tribe=124,%230000ff&tribe=631,%230000ff&tribe=1675,%230000ff&onlyMarkers=false&scale=1&showGrid=true&showContinentNumbers=true
![Map](https://api.tribalwarshelp.com/map/pl151?showBarbarian=true&tribe=124,%230000ff&tribe=631,%230000ff&tribe=1675,%230000ff&onlyMarkers=false&scale=1&showGrid=true&showContinentNumbers=true)
Development
Prerequisites
- Golang
- PostgreSQL database
- Configured cron
Installation
Required ENV variables:
DB_USER=your_pgdb_user
DB_NAME=your_pgdb_name
DB_PORT=your_pgdb_port
DB_HOST=your_pgdb_host
DB_PASSWORD=your_pgdb_password
LIMIT_WHITELIST=127.0.0.1,::1
LOG_DB_QUERIES=true
DISABLE_ACCESS_LOG=false
- Clone this repo -
git clone git@github.com:tribalwarshelp/api.git
- Open the folder with this project in a terminal.
- Set the required env variables directly in your system or create .env.local file.
- Run the app -
go run ./cmd/api/main.go
License
Distributed under the MIT License. See LICENSE
for more information.
Dawid Wysokiński - contact@dwysokinski.me