← Developers hub
REST API v1 reference
Base URL: https://tournify.pk/api/v1
· Authentication: Bearer token — send Authorization: Bearer <token> header
Health:
https://tournify.pk/api/healthz
· Discovery:
https://tournify.pk/api/v1/docs
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /api/v1/auth/register | No |
Register new account
Params: username, email, password, password_confirmation, country?
|
| POST | /api/v1/auth/login | No |
Login and receive Bearer token
Params: email, password
|
| POST | /api/v1/auth/logout | Yes |
Revoke current token
|
| GET | /api/v1/me | Yes |
Authenticated user profile + game profiles + stats
|
| PATCH | /api/v1/me | Yes |
Update profile
Params: username?, bio?, country?, discord_tag?, twitch_url?, youtube_url?
|
| GET | /api/v1/games | No |
All active games with counts
|
| GET | /api/v1/games/{slug} | No |
Game detail with active tournaments
|
| GET | /api/v1/tournaments | No |
Tournament list
Params: game?, status?, region?, search?, featured?, per_page?
|
| GET | /api/v1/tournaments/{slug} | No |
Tournament detail + registered teams
|
| POST | /api/v1/tournaments/{slug}/register | Yes |
Register team
Params: team_id, in_game_id?
|
| POST | /api/v1/tournaments/{slug}/withdraw | Yes |
Withdraw registration
|
| POST | /api/v1/tournaments/{slug}/check-in | Yes |
Check in (window defined by tournament rules)
|
| GET | /api/v1/tournaments/{slug}/bracket | No |
Bracket data
|
| GET | /api/v1/my-tournaments | Yes |
My registrations
|
| GET | /api/v1/matches | No |
Match list
Params: status?=all|live|upcoming|completed, tournament?, per_page?
|
| GET | /api/v1/matches/live | No |
All live matches
|
| GET | /api/v1/matches/upcoming | No |
Upcoming matches
|
| GET | /api/v1/matches/completed | No |
Completed matches
|
| GET | /api/v1/matches/{id} | No |
Match detail + maps + events
|
| GET | /api/v1/matches/{id}/events | No |
Match events (poll with after=id)
|
| GET | /api/v1/leaderboard | No |
Leaderboard
Params: game?, country?, period?=all|month|week, per_page?
|
| GET | /api/v1/leaderboard/{game} | No |
Leaderboard for game
|
| GET | /api/v1/news | No |
News list
Params: category?, game?, featured?, search?, per_page?
|
| GET | /api/v1/news/{slug} | No |
Article detail + related
|
| GET | /api/v1/teams | No |
Browse teams
Params: game?, region?, search?, per_page?
|
| GET | /api/v1/teams/{id} | No |
Team detail + members + match history
|
| POST | /api/v1/teams | Yes |
Create team
Params: name, tag, game_id, region?, description?
|
| POST | /api/v1/teams/{id}/join | Yes |
Join team
|
| POST | /api/v1/teams/{id}/leave | Yes |
Leave team
|
| GET | /api/v1/my-teams | Yes |
Teams I belong to
|
| GET | /api/v1/players | No |
Browse players
Params: game?, search?, per_page?
|
| GET | /api/v1/players/{id} | No |
Player profile + ELO history + recent matches
|
| GET | /api/v1/players/by-user/{userId} | No |
All game profiles for a user
|
| GET | /api/v1/notifications | Yes |
Notifications
Params: unread_only?, per_page?
|
| GET | /api/v1/notifications/count | Yes |
Unread count
|
| POST | /api/v1/notifications/{id}/read | Yes |
Mark as read
|
| POST | /api/v1/notifications/mark-all-read | Yes |
Mark all read
|
| GET | /api/v1/payments/registration/{id} | Yes |
Payment status for registration
|
| GET | /api/v1/payments/my | Yes |
My payment history
|
| POST | /api/v1/email/otp/send | Yes |
Resend 6-digit email verification code (same code also sent via WhatsApp or SMS webhook when configured and phone on profile)
|
| POST | /api/v1/email/otp/verify | Yes |
Verify email with OTP
Params: code
|
Responses follow data,
meta, and
message conventions as described in the JSON catalog.
Rate limits apply; prefer caching public reads.