> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://helpdesk.ggcircuit.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Running a league in ggLeap

![](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_6zknz9.png)
## A league is a long-form competition built from seasons: you create the league and a season, register participants, generate a schedule, record results, and run playoffs. This article is for admins and organizers.

## Find the Leagues dashboard
1. Sign in to ggLeap.
2. Scroll down the left sidebar and click **Tournaments** (below Events, with a medal icon).
3. In the Tournaments dashboard, click **Leagues** in the top right corner.

![The “Leagues” button in the navigation bar on the Tournaments dashboard](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_6imsj8.png)
## League terminology
| Term | Meaning |
| ---- | ---- |
| League | Top-level container for any number of seasons. Organize by game title, sponsor, or whatever suits your operation |
| Season | Where the competition happens. Organize by time period (Fall 2027), game (Valorant), a combination (Valorant - Fall 2027), or any custom scheme |
| Participants | Register for the **season** |
| Matches | Occur within the **season** |

|| Remember: The season is where all the action happens.
## Create a league
1. On the leagues dashboard, click **Create league**.
2. Enter the **display name** (shorter, used in most places) and the **official name**.

| Creating a league only sets up the parent. Next, add a season.

![The leagues dashboard with a league and some seasons already created](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_1ajaq8k.png)
## Add a season
1. Click **New season** beneath the league.
2. Enter the display name (required) and official name if needed.
3. Set the start and end dates. The start date matters most if you plan to use automatic scheduling.
4. Set the season structure (below).

![Adding a new season](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_16cm11u.png)
### Season structure
| Setting | Details |
| ---- | ---- |
| Format | Only two are supported: **Round-robin** (every team plays each other once in the regular season) and **Double round-robin** (twice). You can change the format later |
| Groups and divisions | Keeps regular season matches within groups, such as by location or skill level. Manage group members later in the registration view |
| Games per match | Records scores for multiple games in a match series, like tournaments |

## Season registration
Add participants by importing them or by enabling a registration form.

![The registration section for a season](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_18ponoj.png)
### Option 1: Import participants
Go to **Registration** and click **Import CSV**.

| Column | Status |
| ---- | ---- |
| `display_name` | Required |
| `email` | Recommended |
| `account_url` | Optional; links a player or team account |
| Any other column | Added as a custom field |

### Option 2: Public registration form
1. In **Registration**, toggle **Public registration form** on.
2. Click **Form settings** to customize.

| Setting | Details |
| ---- | ---- |
| Entry type | **Individual Players** or **Teams**. Teams requires a team or team name at signup |
| Entry Limit | Caps the number of form responses |
| Registration period | Allows responses only during a set time window |
| Custom fields | Click **Add Field** in the data collection section for text fields, dropdowns, or yes/no questions. Use the trash can to remove one. Full name and email are collected by default |

||| **Warning: Adding or removing custom fields does not affect data already collected. You can still view a registrant's answer to a removed field.**

![Configuring registration form settings](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_1b0ai4h.png)
#### Advanced registration settings
| Setting | What it does |
| ---- | ---- |
| Require Sign-in | Blocks guest registration; players must sign in to their player accounts |
| Sign-in methods (after Require Sign-in) | Email magic link (default), ggCircuit OAuth (account tied to your center), Discord OAuth, FACEIT OAuth. To limit registration to existing center accounts, select only ggCircuit OAuth |
| Email domains | Limits registration to listed domains, comma separated (example: `example.edu`` example.org`). Empty means any email can register |

||| Warning: Restricting sign-in methods or email domains adds friction and can lower registration conversion. Use these only for non-public events or when operations require it.

### Add participants from form responses
1. Open the **Form Responses** tab to see responses, including profile links, contact info, and custom field answers.
2. Responses not yet added appear in the **Pending** tab.
3. Press **Add** to make a response an official participant, or the **X** icon to discard spam.

## Schedule matches
Once all participants are added:
1. Open the **Schedule** tab and click **Generate Schedule**.
2. Confirm or update the base format (it defaults to your season format).
3. To set dates and times automatically, set **Scheduling Method** to **Weekly** and select the date and time ranges for matches.
4. After generation, change the date or time of individual matches manually if needed.

||| Warning: Regenerate schedule wipes all manual date and time changes. Use it with caution.

![A season with no schedule matches yet](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_4iyfci.png)

![Generating a weekly schedule](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_p8awis.png)
## Run the season
When the schedule is final, click **Start Season** to move the season to **Active**.

||| Warning: Starting the season may notify participants of match dates and times, and you cannot regenerate the schedule afterward. Confirm you are ready first.

![Scheduled matches before the season is started](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_1o78qua.png)
### Record match results
1. Click the vertical three-dot icon on the match and select **Manage**. The view shows as many games as your **Games per match** setting.
2. Use the **Game Results** container to set scores and winners per game.
3. Select a winner in **Match results** and click **Finalize Match**.

![Managing a match](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_18jr8f2.png)
### View standings
Open the **Results** section for regular season standings, including streaks and longest streaks.

![Example regular season standings](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_89k8b3.png)
### Finalize the regular season
Set every match to **Final** before moving to playoffs or any later phase.
## Playoffs
1. After the regular season is finalized, open the playoffs section.
2. Select the format, the seeding algorithm (for elimination formats), and games per match.
3. Click **Start Playoffs**.
4. Click **Manage Bracket** to run the bracket. See [**Running a tournament in ggLeap, section Run the tournament**](https://helpdesk.ggcircuit.com/en/article/running-a-tournament-in-ggleap-dcu8eo/#2-run-the-tournament), for how to run it.
5. View results by clicking **View details** within the playoffs tournament, or in the league **Results** section once playoffs finish.

![Playoffs that have not been configured yet](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_q7ud5u.png)
### Change the playoff format after starting
Click **Edit Configuration**, then **Revert to Regular Season**, and update the format.

||| Warning: Revert to Regular Season clears all playoff match results.

![The “Revert to Regular Season” tooltip](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_523if9.png)
![Active playoffs with the “Manage Bracket” button](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_r4n2ip.png)
![Example playoffs standings](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_1g8wiuh.png)
## Leagues API
A dedicated API is available for integrating leagues with other platforms. Contact  tournament@ggcircuit.com or api@tourneybit.com.

## Related articles
* [**What is the Tournament Feature in ggLeap?**](https://helpdesk.ggcircuit.com/en/article/what-is-the-tournament-feature-in-ggleap-7w69eu/)
* [**Running a tournament in ggLeap**](https://helpdesk.ggcircuit.com/en/article/running-a-tournament-in-ggleap-dcu8eo/)
* [**Managing player profiles and teams for tournaments in ggLeap**](https://helpdesk.ggcircuit.com/en/article/managing-player-profiles-for-tournaments-in-ggleap-ju9nko/)