Base: https://api.sajilosport.com/api

Tournaments

Base path: /api/tournaments

Players and teams can view ongoing tournaments, browse fixtures, see standings, and register their team.


Tournament Statuses

StatusDescription
registration_openAccepting team registrations
registration_closedRegistration period ended
ongoingTournament matches in progress
completedTournament finished
cancelledTournament cancelled

Tournament Formats

FormatDescription
leagueRound-robin group stage
knockoutSingle-elimination bracket
group_knockoutGroup stage + knockout rounds

Endpoints

GET /api/tournaments

List all tournaments.

Auth: Not required

Response 200:

{
  "data": [
    {
      "id": 1,
      "name": "Kathmandu Futsal Cup 2025",
      "description": "Annual city championship",
      "format": "knockout",
      "sport_type": "futsal",
      "max_teams": 16,
      "registered_teams": 12,
      "registration_fee": "500.00",
      "prize_pool": "50000.00",
      "starts_at": "2025-07-01",
      "ends_at": "2025-07-15",
      "status": "registration_open",
      "venue": { "id": 1, "name": "Champions Futsal", "slug": "champions-futsal" },
      "created_at": "2025-05-01 10:00:00"
    }
  ]
}

GET /api/tournaments/{tournament}

Get full details of a tournament including teams and standings.

Auth: Not required

Response 200:

{
  "data": {
    "id": 1,
    "name": "Kathmandu Futsal Cup 2025",
    "format": "knockout",
    "sport_type": "futsal",
    "max_teams": 16,
    "registered_teams": 12,
    "registration_fee": "500.00",
    "prize_pool": "50000.00",
    "starts_at": "2025-07-01",
    "ends_at": "2025-07-15",
    "status": "registration_open",
    "venue": { ... },
    "teams": [
      {
        "id": 1,
        "name": "FC Warriors",
        "captain_name": "Arjun Thapa",
        "contact_phone": "9801234567",
        "player_count": 7,
        "registered_at": "2025-05-15 10:00:00"
      }
    ],
    "standings": [],
    "created_at": "2025-05-01 10:00:00"
  }
}

GET /api/tournaments/{tournament}/fixtures

Get match fixtures (schedule) for the tournament.

Auth: Not required

Response 200:

{
  "data": [
    {
      "id": 1,
      "round": "Quarter Final",
      "match_number": 1,
      "team_a": { "id": 1, "name": "FC Warriors" },
      "team_b": { "id": 3, "name": "City Strikers" },
      "scheduled_at": "2025-07-05 10:00:00",
      "status": "scheduled",
      "result": null
    }
  ]
}

GET /api/tournaments/{tournament}/standings

Get current standings / points table.

Auth: Not required

Response 200:

{
  "data": [
    {
      "rank": 1,
      "team": { "id": 1, "name": "FC Warriors" },
      "played": 3,
      "won": 3,
      "drawn": 0,
      "lost": 0,
      "goals_for": 12,
      "goals_against": 4,
      "points": 9
    }
  ]
}

POST /api/tournaments/{tournament}/teams [Auth required]

Register a team in a tournament.

Request body:

{
  "name": "FC Warriors",
  "captain_name": "Arjun Thapa",
  "contact_phone": "9801234567",
  "players": [
    { "name": "Arjun Thapa", "position": "GK" },
    { "name": "Sujit Karki", "position": "FW" }
  ]
}
FieldTypeRequiredDescription
namestringYesTeam name
captain_namestringYesCaptain's name
contact_phonestringNoContact number
playersarrayNoList of player names and positions

Response 201:

{
  "data": {
    "id": 5,
    "name": "FC Warriors",
    "captain_name": "Arjun Thapa",
    "contact_phone": "9801234567",
    "player_count": 2,
    "registered_at": "2025-05-20 09:00:00"
  }
}

Response 422 — registration closed or team limit reached:

{ "message": "Tournament registration is closed." }

TournamentResource — Field Reference

FieldTypeNotes
idinteger
namestring
descriptionstring or null
formatstringleague, knockout, group_knockout
sport_typestringe.g. futsal, basketball
max_teamsintegerMaximum teams allowed
registered_teamsintegerCurrent registration count
registration_feedecimal stringNPR
prize_pooldecimal stringNPR
starts_atdate stringYYYY-MM-DD
ends_atdate stringYYYY-MM-DD
statusstringSee statuses table
venueobjectVenue hosting the tournament
teamsarrayWhen loaded
standingsarrayWhen loaded
created_atdatetime string