API Documentation
Integrate SquadHub.GG into your applications with our REST API
Getting Started
1. Get an API Key
API access requires contacting our team. Create an API key in your account settings.
2. Authentication
Include your API key in the Authorization header of every request:
Authorization: Bearer sk_live_your_api_key_here3. Base URL
https://squadhub.gg/api/v14. Rate Limits
100 requests per minute per API key
API Endpoints
GET
/api/v1/tournamentsList all your tournaments
read:tournaments
Query Parameters
page(number)Page number (default: 1)limit(number)Results per page (default: 20, max: 100)status(string)Filter by status (registration, ongoing, completed)game_id(string)Filter by game IDResponse
{
"success": true,
"data": [
{
"id": "uuid",
"name": "Tournament Name",
"slug": "tournament-slug",
"status": "registration",
"format": "single_elimination",
"team_size": 5,
"max_teams": 32,
...
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 45
},
"meta": {
"timestamp": "2025-12-11T...",
"api_version": "1.0"
}
}POST
/api/v1/tournamentsCreate a new tournament
write:tournaments
Request Body
{
"name": "Summer Championship 2025",
"description": "Annual summer tournament",
"game_id": "uuid",
"format": "single_elimination",
"team_size": 5,
"max_teams": 32,
"entry_fee": 0,
"prize_pool": 1000,
"starts_at": "2025-07-01T18:00:00Z",
"registration_closes": "2025-06-25T18:00:00Z",
"rules": "Standard tournament rules apply"
}Response
{
"success": true,
"data": {
"id": "uuid",
"name": "Summer Championship 2025",
"slug": "summer-championship-2025-abc123",
"status": "registration",
...
},
"meta": { ... }
}GET
/api/v1/tournaments/{id}Get tournament details
read:tournaments
Response
{
"success": true,
"data": {
"id": "uuid",
"name": "Tournament Name",
...
},
"meta": { ... }
}PATCH
/api/v1/tournaments/{id}Update tournament
write:tournaments
Request Body
{
"name": "Updated Name",
"max_teams": 64,
"status": "ongoing"
}Response
{
"success": true,
"data": { ... },
"meta": { ... }
}DELETE
/api/v1/tournaments/{id}Delete tournament
write:tournaments
Response
{
"success": true,
"data": {
"message": "Tournament deleted successfully"
},
"meta": { ... }
}GET
/api/v1/tournaments/{id}/registrationsList tournament registrations
read:registrations
Query Parameters
status(string)Filter by payment statusResponse
{
"success": true,
"data": [
{
"id": "uuid",
"tournament_id": "uuid",
"team_id": "uuid",
"payment_status": "complete",
"registered_at": "2025-06-20T...",
"teams": {
"id": "uuid",
"name": "Team Name",
"tag": "TAG",
"logo_url": "..."
}
}
],
"meta": { ... }
}POST
/api/v1/tournaments/{id}/registrationsRegister a team to tournament
write:registrations
Request Body
{
"team_id": "uuid"
}Response
{
"success": true,
"data": {
"id": "uuid",
"tournament_id": "uuid",
"team_id": "uuid",
...
},
"meta": { ... }
}GET
/api/v1/tournaments/{id}/resultsGet tournament results and standings
read:results
Response
{
"success": true,
"data": {
"tournament": {
"id": "uuid",
"format": "single_elimination",
"status": "completed"
},
"matches": [ ... ],
"standings": [
{
"position": 1,
"team_id": "uuid",
"team_name": "Champions",
"team_tag": "CHM"
}
]
},
"meta": { ... }
}Error Codes
400Bad Request
Invalid request parameters or body
401Unauthorized
Missing or invalid API key
403Forbidden
Missing required permission
404Not Found
Resource not found
429Too Many Requests
Rate limit exceeded
500Internal Server Error
Server error occurred