From 4b362ca9ad39a27e847ad9028ed15922d0a80487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Niemel=C3=A4?= Date: Tue, 18 Nov 2025 09:14:40 +0800 Subject: [PATCH 1/6] Optional team_id for submissions --- Contest_API.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Contest_API.md b/Contest_API.md index c54c5f2..5d38211 100644 --- a/Contest_API.md +++ b/Contest_API.md @@ -1586,7 +1586,8 @@ Properties of submission objects: | id | ID | Identifier of the submission. Usable as a label, typically a low incrementing number to make it easier to validate submissions or compare submissions with a Shadow CCS. | language\_id | ID | Identifier of the [language](#languages) submitted for. | problem\_id | ID | Identifier of the [problem](#problems) submitted for. -| team\_id | ID | Identifier of the [team](#teams) that made the submission. +| team\_id | ID ? | Identifier of the [team](#teams) that made the submission. +| account\_id | ID ? | Identifier of the [account](#account) that made the submission. | time | TIME | Timestamp of when the submission was made. | contest\_time | RELTIME | Contest relative time when the submission was made. | entry\_point | string ? | Code entry point for specific languages. From f929096bc255be3a738abc3e27931d2a84ca9544 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Niemel=C3=A4?= Date: Tue, 18 Nov 2025 09:23:31 +0800 Subject: [PATCH 2/6] Add deafault_scoreboard_group --- Contest_API.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Contest_API.md b/Contest_API.md index 5d38211..c2fc9b7 100644 --- a/Contest_API.md +++ b/Contest_API.md @@ -772,6 +772,7 @@ Properties of contest objects: | scoreboard\_freeze\_duration | RELTIME ? | How long the scoreboard is frozen before the end of the contest. Defaults to `0:00:00`. | scoreboard\_thaw\_time | TIME ? | The scheduled thaw time of the contest, may be `null` if the thaw time is unknown or not set. | scoreboard\_type | string | What type of scoreboard is used for the contest. Must be either `pass-fail` or `score`. +| deafault_scoreboard_group | ID ? | Identifier of the group that represents the default scoreboard. If `null`, the default scoreboard contains all teams (even if there is no group containing all teams). | penalty\_time | RELTIME | Penalty time for a wrong submission. Only relevant if scoreboard\_type is `pass-fail`. | banner | array of FILE ? | Banner for this contest, intended to be an image with a large aspect ratio around 8:1. Only allowed mime types are image/\*. | logo | array of FILE ? | Logo for this contest, intended to be an image with aspect ratio near 1:1. Only allowed mime types are image/\*. @@ -2262,6 +2263,8 @@ By passing `group_id` with a valid group ID a scoreboard can be requested for th `contests//scoreboard?group_id=site1` +If no `group_id` is given, the group specified by `deafault_scoreboard_group` in the contest endpoint is used, or all teams if it is `null`. + Each group scoreboard is ranked independently and contains only the teams that belong to the specified group. If a client wants to know 'local' vs 'global' rank it can query both the group and primary scoreboards. From 121c1e8e774383bbd6547821746faf7a5a94a556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Niemel=C3=A4?= Date: Tue, 18 Nov 2025 09:24:44 +0800 Subject: [PATCH 3/6] Remove hidden from teams --- Contest_API.md | 1 - 1 file changed, 1 deletion(-) diff --git a/Contest_API.md b/Contest_API.md index c2fc9b7..cda9a04 100644 --- a/Contest_API.md +++ b/Contest_API.md @@ -1375,7 +1375,6 @@ Properties of team objects: | display\_name | string ? | Display name of the team. If not set, a client should revert to using the name instead. | organization\_id | ID ? | Identifier of the [ organization](#organizations) (e.g. university or other entity) that this team is affiliated to. | group\_ids | array of ID ? | Identifiers of the [ group(s)](#groups) this team is part of (at ICPC WFs these are the super-regions). The array may be empty. Required iff groups endpoint is available. -| hidden | boolean ? | If the team is to be excluded from the [scoreboard](#scoreboard). Defaults to `false`. | location | team location object ? | Position of team on the contest floor. See below for the specification of this object. | photo | array of FILE ? | Registration photo of the team. Only allowed mime types are image/\*. | video | array of FILE ? | Registration video of the team. Only allowed mime types are video/\* or application/vnd.apple.mpegurl. From fec5ee480011e0ba9e5d708e8999db1f177ab7a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Niemel=C3=A4?= Date: Thu, 27 Nov 2025 11:32:20 -0600 Subject: [PATCH 4/6] Fix spelling error --- Contest_API.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Contest_API.md b/Contest_API.md index cda9a04..4c372b4 100644 --- a/Contest_API.md +++ b/Contest_API.md @@ -772,7 +772,7 @@ Properties of contest objects: | scoreboard\_freeze\_duration | RELTIME ? | How long the scoreboard is frozen before the end of the contest. Defaults to `0:00:00`. | scoreboard\_thaw\_time | TIME ? | The scheduled thaw time of the contest, may be `null` if the thaw time is unknown or not set. | scoreboard\_type | string | What type of scoreboard is used for the contest. Must be either `pass-fail` or `score`. -| deafault_scoreboard_group | ID ? | Identifier of the group that represents the default scoreboard. If `null`, the default scoreboard contains all teams (even if there is no group containing all teams). +| default_scoreboard_group | ID ? | Identifier of the group that represents the default scoreboard. If `null`, the default scoreboard contains all teams (even if there is no group containing all teams). | penalty\_time | RELTIME | Penalty time for a wrong submission. Only relevant if scoreboard\_type is `pass-fail`. | banner | array of FILE ? | Banner for this contest, intended to be an image with a large aspect ratio around 8:1. Only allowed mime types are image/\*. | logo | array of FILE ? | Logo for this contest, intended to be an image with aspect ratio near 1:1. Only allowed mime types are image/\*. From 1c4ed6f45abe4e2eae2a17a30c16d96ffeb442ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Niemel=C3=A4?= Date: Wed, 17 Dec 2025 13:34:27 -0600 Subject: [PATCH 5/6] Fix issues from discussion --- Contest_API.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Contest_API.md b/Contest_API.md index c90da6b..466d770 100644 --- a/Contest_API.md +++ b/Contest_API.md @@ -772,7 +772,7 @@ Properties of contest objects: | scoreboard\_freeze\_duration | RELTIME ? | How long the scoreboard is frozen before the end of the contest. Defaults to `0:00:00`. | scoreboard\_thaw\_time | TIME ? | The scheduled thaw time of the contest, may be `null` if the thaw time is unknown or not set. | scoreboard\_type | string | What type of scoreboard is used for the contest. Must be either `pass-fail` or `score`. -| default_scoreboard_group | ID ? | Identifier of the group that represents the default scoreboard. If `null`, the default scoreboard contains all teams (even if there is no group containing all teams). +| main\_scoreboard\_group\_id | ID ? | Identifier of the group that represents the main scoreboard. If `null`, the main scoreboard contains all teams (even if there is no group containing all teams). | penalty\_time | RELTIME | Penalty time for a wrong submission. Only relevant if scoreboard\_type is `pass-fail`. | banner | array of FILE ? | Banner for this contest, intended to be an image with a large aspect ratio around 8:1. Only allowed mime types are image/\*. | logo | array of FILE ? | Logo for this contest, intended to be an image with aspect ratio near 1:1. Only allowed mime types are image/\*. @@ -2262,7 +2262,7 @@ By passing `group_id` with a valid group ID a scoreboard can be requested for th `contests//scoreboard?group_id=site1` -If no `group_id` is given, the group specified by `deafault_scoreboard_group` in the contest endpoint is used, or all teams if it is `null`. +Note that, when not passing a `group_id`, the teams indicated by `main_scoreboard_group` in the contest endpoint are used. Each group scoreboard is ranked independently and contains only the teams that belong to the specified group. If a client wants to know 'local' vs 'global' rank it can query both the group and primary scoreboards. From 3da1a3c05090ec124d9ddc7c64c7b889ece25225 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Niemel=C3=A4?= Date: Wed, 17 Dec 2025 14:06:20 -0600 Subject: [PATCH 6/6] Describe default behaviour in the main section --- Contest_API.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Contest_API.md b/Contest_API.md index 466d770..8a7caa7 100644 --- a/Contest_API.md +++ b/Contest_API.md @@ -2252,6 +2252,8 @@ The following endpoint is associated with the scoreboard: | :------------------------- | :--------------- | :---------- | `contests//scoreboard` | application/json | JSON object with scoreboard data as defined in the table below. +The scoreboard includes all teams indicated by `main_scoreboard_group_id` in the `contest` endpoint. + #### Scoreboard request options The following options can be passed to the scoreboard endpoint. @@ -2262,8 +2264,6 @@ By passing `group_id` with a valid group ID a scoreboard can be requested for th `contests//scoreboard?group_id=site1` -Note that, when not passing a `group_id`, the teams indicated by `main_scoreboard_group` in the contest endpoint are used. - Each group scoreboard is ranked independently and contains only the teams that belong to the specified group. If a client wants to know 'local' vs 'global' rank it can query both the group and primary scoreboards.