Skip to content

Import Tournaments

The procedure of importing tournaments from the past is as follows:

  • 1) Club or federation exports all of their tournaments in a json format using the conventions below
  • 2) Coral development team will import them one-by-one to ensure consistency
  • 3) Rankings can be generated as well for previous seasons if necessary

Full example

Below you can find the structure required for 1 tournament:

[
    {
        "id": 1234,
        "name": "Paris Masters",
        "category": "Masters",
        "organization": "ITSF",
        "start_date": "2000-01-01",
        "end_date": "2000-01-01",
        "season": ["2000-01-01", "2000-12-31"],
        "address": "Paris, France",
        "timezone": "Europe/Paris",
        "table": "BONZINI",
        "competitions": [
            {
                "id": 1234,
                "name": "Open Doubles",
                "category": "OD",
                "rule": "Official",
                "type": "individual",
                "ranking": true,
                "dyp": false,
                "standings": [
                    {
                        "players": ["64200120", "24200120"],
                        "rank": 1,
                    }
                ],
                "phases": [
                    {
                        "id": 1234,
                        "name": "Qualifications",
                        "system": "swiss",
                        "match_format": "{coral-name-convention-or-null}",
                        "point_system": "{coral-name-convention-or-null}",
                        "full_score": true,
                        "stage": 1,
                        "standings": [
                            {
                                "players": ["64200120", "24200120"],
                                "rank": 1,
                                "seed": 1
                            }
                        ],
                        "matches": [
                            {
                                "round": 1,
                                "home": [
                                  "64200120",
                                  "24200120"
                                ],
                                "away": [
                                  "44200120",
                                  "34200120"
                                ],
                                "start_at": "2000-01-01 12:00:00",
                                "end_at": "2000-01-01 13:00:00",
                                "pg": 1,
                                "score": [2, 1]
                            }
                        ]
                    },
                    {
                        "id": 1234,
                        "name": "Main Phase",
                        "system": "sko",
                        "match_format": "{coral-name-convention-or-null}",
                        "point_system": null,
                        "full_score": true,
                        "stage": 2,
                        "standings": [
                            {
                                "players": ["64200120", "24200120"],
                                "rank": 1
                            }
                        ],
                        "matches": [
                            {
                                "round": 1,
                                "home": [
                                  "64200120",
                                  "24200120"
                                ],
                                "away": [
                                  "44200120",
                                  "34200120"
                                ],
                                "start_at": "2000-01-01 12:00:00",
                                "end_at": "2000-01-01 13:00:00",
                                "pg": 1,
                                "score": [[2 ,5, 5], [5, 1, 2]]
                            }
                        ]
                    }
                ]
            }
        ]
    }
]

Tournament

Mandatory fields are shown below:

{
    "name": "Paris Masters",
    "category": "Masters",
    "start_date": "2000-01-01",
    "end_date": "2000-01-01",
    "address": "Paris, France",
    "timezone": "Europe/Paris",
    "table": "Bonzini"
}

Optional fields are shown below:

{
    "id": 1234,
    "season": ["2000-01-01", "2000-12-31"]
}

Note

For address you can use locality name and country.

Competition

  • All fields are mandatory except id
  • If phases is an empty array, it will create a default phase
  • For a list of category check team categories in Coral - you can use either the short notation or full name
  • For a list of rules check sport playing rules in Coral - you can use either the short notation or full name (Official, Classic etc.)

Note

team competitions are not supported.

{
    "name": "Open Doubles",
    "category": "OD",
    "rule": "Official",
    "type": "individual",
    "ranking": true,
    "dyp": false,
    "table": "BONZINI"
}

Phase

  • All fields are mandatory except rounds
  • For system you can use: swiss, round_robin, half_robin, sko, dko
  • For match format you can use any names already created in Coral
  • For phase standings use a list of players
  • stage 1 is for qualifications and 2+ are usually for eliminations
{
    "name": "Qualifications",
    "system": "swiss",
    "match_format": "{coral-name-convention-or-null}",
    "rounds": 3,
    "point_system": "{coral-name-convention-or-null}",
    "full_score": true,
    "stage": 1,
    "standings": []
}

Matches

If you require to import matches as well, please follow the convention below:

  • round is always required
  • sko - order of matches is important to ensure the matches are linked properly
    • matches with byes must also be provided
  • dko - order of matches is important to ensure the matches are linked properly
    • matches with byes must also be provided
    • winner bracket rounds start from 1, 2,...
    • loser bracket rounds start with -1, -2,...

Mandatory fields:

{
    "round": 1,
    "home": [
        "64200120",
        "24200120"
    ],
    "away": [
        "44200120",
        "34200120"
    ],
    "score": [[2 ,5, 5], [5, 1, 2]]
}

Optional fields:

{
    "start_at": "2000-01-01 12:00:00",
    "end_at": "2000-01-01 13:00:00",
    "pg": 1,
}

Note

For swiss, round_robin and half_robin make sure the number of matches per round is the same.

Standings

  • players field is required
  • if rank is not provided, the import will use the first item as rank #1 etc.
  • seed is optional - it is only needed in the main phase (stage=1)

To uniquely identify a player you can use the following values:

  • international license number
  • national license number
  • player's code from Coral

If none of above options are available, you can create a virtual license number at the national level which can be imported into Coral prior to importing tournaments.

{
    "rank": 1,
    "players": ["64200120", "24200120"]
}

Taxonomies

Team Category

name code
Open Singles OS
Open Doubles OD
Men Singles MS
Men Doubles MD
Women Singles WS
Women Doubles WD
Junior Under 19 Singles U19S
Junior Under 19 Doubles U19D
Junior Under 16 Singles U16S
Junior Under 16 Doubles U16D
Junior Under 13 Singles U13S
Junior Under 13 Doubles U13D
Girls Under 19 Singles G19S
Girls Under 19 Doubles G19D
Senior Over 50 Singles O50S
Senior Over 50 Doubles O50D
Senior Over 63 Singles O63S
Senior Over 63 Doubles O63D
Women Over 50 Singles W50S
Women Over 50 Doubles W50D
Disabled Singles DS
Disabled Doubles DD
Open Mixed OM
Junior Under 19 Mixed U19M
Senior Over 50 Mixed O50M

Rules

name code
Official O
Classic C
Rollerball R
2 Legs F4-S 2S
2 Legs F4-M 2M
2 Legs F5 25
Goalie War GW
Forward Shootout FS