4.1 KiB
4.1 KiB
TWHelp API
Are you bored of parsing TribalWars world data? Then you should try this GraphQL API written in Go. You don't need to parse world data anymore on your own! Fetch data in JSON format from TWHelp API. All TribalWars versions are available.
API Limits
You can fetch in one HTTP request:
- 1000 daily player/tribe stats
- 100 ennoblements
- 100 lang versions
- 100 players/tribes
- 1000 villages
- 100 player/tribe history records
- 100 servers
- 60 server stats
- 100 tribe changes
Sample queries
You can check how to make requests from JavaScript here.
- All barbarian 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
}
}
}
Map service
You can generate a server map with this API. The current endpoint is https://api.tribalwarshelp.com/map/server (replace "server" with the world you're interested in, for example, pl151).
Available query params:
Param | Default |
---|---|
showBarbarians | false |
largerMarkers | false |
onlyMarkers | 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
Development
Required env variables to run this API (you can set them directly in your system or create .env.development file):
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
REDIS_HOST=your_redis_host
REDIS_PORT=your_redis_port
LIMIT_WHITELIST=127.0.0.1,::1
LOG_DB_QUERIES=[true|false]
Prerequisites
- Golang
- PostgreSQL database
- Configured cron
Installing
- Clone this repo.
- Navigate to the directory where you have cloned this repo.
- Set the required env variables directly in your system or create .env.development file.
- go run main.go