Open Meet Display

Version 1.0. A minor version only adds; only a major breaks. Comments to [email protected].

Open Meet Display examples

Version 1.0. Every message example is a complete message that validates against the message schema, and the probe reply validates against the probe reply schema. Download one and send it to your receiver with curl (see Testing). The specification explains each kind’s fields.

Start list

One heat of a track race, before it runs. Download start-list.json

{
	"omd": {
		"version": "1.0",
		"kind": "start_list",
		"generator": {
			"id": "2t",
			"name": "2Timer",
			"version": "1.0.62"
		},
		"sent_at": "2026-11-14T01:58:40.502Z"
	},
	"meet": {
		"id": "6f1c2a9e-4b7d-4e2a-9c51-0d8e3f7a12b4",
		"name": "District Schools Championship",
		"start_date": "2026-11-14",
		"end_date": "2026-11-15",
		"sport": "tf-outdoor"
	},
	"display": {
		"target": "main",
		"mode": "replace",
		"connection_id": "6f1c2a9e-4b7d-4e2a-9c51-0d8e3f7a12b4_3"
	},
	"event": {
		"id": "42",
		"number": "3",
		"name": "Girls 100 Meter Dash",
		"round": "1",
		"round_label": "Prelims",
		"section_name": "Heat 2",
		"gender": "F",
		"code": "100",
		"entry_type": "individual"
	},
	"start_list": {
		"rows": [
			{
				"entry_id": "884",
				"start_assignment": "2",
				"bib": "318",
				"participant_name": "Tan Mei Ling",
				"team": {
					"name": "Riverside High School",
					"short_name": "RHS"
				},
				"seed": "13.02"
			},
			{
				"entry_id": "885",
				"start_assignment": "3",
				"bib": "205",
				"participant_name": "Nur Aisyah Binti Rahman",
				"team": {
					"name": "Hillcrest Secondary",
					"short_name": "HCS"
				},
				"seed": "12.71"
			},
			{
				"entry_id": "886",
				"start_assignment": "4",
				"bib": "412",
				"participant_name": "Priya Devi Subramaniam",
				"team": {
					"name": "Lakeview Academy",
					"short_name": "LVA"
				},
				"seed": "12.48"
			},
			{
				"entry_id": "887",
				"start_assignment": "5",
				"bib": "127",
				"participant_name": "Siti Hajar Binti Osman",
				"team": {
					"name": "Eastgate College",
					"short_name": "EGC"
				},
				"seed": "12.39"
			},
			{
				"entry_id": "888",
				"start_assignment": "6",
				"bib": "331",
				"participant_name": "Wong Jia Xin",
				"team": {
					"name": "Riverside High School",
					"short_name": "RHS"
				},
				"seed": "12.55"
			},
			{
				"entry_id": "889",
				"start_assignment": "7",
				"bib": "219",
				"participant_name": "Kavitha Raj",
				"team": {
					"name": "Hillcrest Secondary",
					"short_name": "HCS"
				},
				"seed": "12.84"
			},
			{
				"entry_id": "890",
				"start_assignment": "8",
				"bib": "140",
				"participant_name": "Lim Hui Min",
				"team": {
					"name": "Eastgate College",
					"short_name": "EGC"
				}
			}
		]
	}
}

Results: track heat

The same heat with places, marks, and wind. Download results-track-heat.json

{
	"omd": {
		"version": "1.0",
		"kind": "results",
		"generator": {
			"id": "2t",
			"name": "2Timer",
			"version": "1.0.62"
		},
		"sent_at": "2026-11-14T02:09:13.884Z"
	},
	"meet": {
		"id": "6f1c2a9e-4b7d-4e2a-9c51-0d8e3f7a12b4",
		"name": "District Schools Championship",
		"start_date": "2026-11-14",
		"end_date": "2026-11-15",
		"sport": "tf-outdoor"
	},
	"display": {
		"target": "main",
		"mode": "replace",
		"connection_id": "6f1c2a9e-4b7d-4e2a-9c51-0d8e3f7a12b4_3"
	},
	"event": {
		"id": "42",
		"number": "3",
		"name": "Girls 100 Meter Dash",
		"round": "1",
		"round_label": "Prelims",
		"section_name": "Heat 2",
		"gender": "F",
		"code": "100",
		"entry_type": "individual",
		"wind": "+1.4"
	},
	"results": {
		"rows": [
			{
				"entry_id": "887",
				"start_assignment": "5",
				"bib": "127",
				"participant_name": "Siti Hajar Binti Osman",
				"team": {
					"name": "Eastgate College",
					"short_name": "EGC"
				},
				"result": "12.31",
				"place": "1",
				"wind": "+1.4"
			},
			{
				"entry_id": "886",
				"start_assignment": "4",
				"bib": "412",
				"participant_name": "Priya Devi Subramaniam",
				"team": {
					"name": "Lakeview Academy",
					"short_name": "LVA"
				},
				"result": "12.44",
				"place": "2",
				"wind": "+1.4"
			},
			{
				"entry_id": "885",
				"start_assignment": "3",
				"bib": "205",
				"participant_name": "Nur Aisyah Binti Rahman",
				"team": {
					"name": "Hillcrest Secondary",
					"short_name": "HCS"
				},
				"result": "12.69",
				"place": "3",
				"wind": "+1.4"
			},
			{
				"entry_id": "888",
				"start_assignment": "6",
				"bib": "331",
				"participant_name": "Wong Jia Xin",
				"team": {
					"name": "Riverside High School",
					"short_name": "RHS"
				},
				"result": "12.69",
				"place": "3",
				"wind": "+1.4"
			},
			{
				"entry_id": "884",
				"start_assignment": "2",
				"bib": "318",
				"participant_name": "Tan Mei Ling",
				"team": {
					"name": "Riverside High School",
					"short_name": "RHS"
				},
				"result": "13.10",
				"place": "5",
				"wind": "+1.4"
			},
			{
				"entry_id": "889",
				"start_assignment": "7",
				"bib": "219",
				"participant_name": "Kavitha Raj",
				"team": {
					"name": "Hillcrest Secondary",
					"short_name": "HCS"
				},
				"status": "dnf",
				"place": "DNF",
				"wind": "+1.4"
			},
			{
				"entry_id": "890",
				"start_assignment": "8",
				"bib": "140",
				"participant_name": "Lim Hui Min",
				"team": {
					"name": "Eastgate College",
					"short_name": "EGC"
				},
				"status": "dq",
				"place": "DQ",
				"wind": "+1.4"
			}
		]
	}
}

Results: field event

A whole long jump final with team points. Download results-field.json

{
	"omd": {
		"version": "1.0",
		"kind": "results",
		"generator": {
			"id": "2t",
			"name": "2Timer",
			"version": "1.0.62"
		},
		"sent_at": "2026-11-14T05:31:47.020Z"
	},
	"meet": {
		"id": "6f1c2a9e-4b7d-4e2a-9c51-0d8e3f7a12b4",
		"name": "District Schools Championship",
		"start_date": "2026-11-14",
		"end_date": "2026-11-15",
		"sport": "tf-outdoor"
	},
	"display": {
		"target": "field",
		"mode": "replace",
		"connection_id": "6f1c2a9e-4b7d-4e2a-9c51-0d8e3f7a12b4_3"
	},
	"event": {
		"id": "57",
		"number": "18",
		"name": "Boys Long Jump",
		"round": "1",
		"round_label": "Finals",
		"gender": "M",
		"code": "LJ",
		"entry_type": "individual"
	},
	"results": {
		"rows": [
			{
				"entry_id": "1203",
				"start_assignment": "6",
				"bib": "512",
				"participant_name": "Muhammad Hafiz Bin Yusof",
				"team": {
					"name": "Lakeview Academy",
					"short_name": "LVA"
				},
				"result": "6.92",
				"place": "1",
				"wind": "+1.8",
				"points": "10"
			},
			{
				"entry_id": "1204",
				"start_assignment": "2",
				"bib": "236",
				"participant_name": "Daniel Chong",
				"team": {
					"name": "Hillcrest Secondary",
					"short_name": "HCS"
				},
				"result": "6.71",
				"place": "2",
				"wind": "+0.6",
				"points": "8"
			},
			{
				"entry_id": "1205",
				"start_assignment": "4",
				"bib": "355",
				"participant_name": "Arjun Nair",
				"team": {
					"name": "Riverside High School",
					"short_name": "RHS"
				},
				"result": "6.58",
				"place": "3",
				"wind": "-0.3",
				"points": "6"
			},
			{
				"entry_id": "1206",
				"start_assignment": "1",
				"bib": "149",
				"participant_name": "Haziq Bin Kamal",
				"team": {
					"name": "Eastgate College",
					"short_name": "EGC"
				},
				"status": "dns",
				"place": "DNS"
			}
		]
	}
}

Results: cross country race

Places 17 to 24 of a finished race: scorers and displacers with their team points, an unattached runner, and a runner past his team’s displacers. Download results-xc-race.json

{
	"omd": {
		"version": "1.0",
		"kind": "results",
		"generator": {
			"id": "2t",
			"name": "2Timer",
			"version": "1.0.62"
		},
		"sent_at": "2026-10-24T03:52:07.615Z"
	},
	"meet": {
		"id": "b83e5d17-2c9a-4f60-8e14-7a5c0f9d3b62",
		"name": "District Cross Country Championship",
		"start_date": "2026-10-24",
		"end_date": "2026-10-24",
		"sport": "xc"
	},
	"display": {
		"target": "main",
		"mode": "replace",
		"connection_id": "b83e5d17-2c9a-4f60-8e14-7a5c0f9d3b62_1"
	},
	"event": {
		"id": "2",
		"number": "2",
		"name": "Varsity Boys 5K",
		"gender": "M",
		"code": "5000",
		"entry_type": "individual"
	},
	"results": {
		"rows": [
			{
				"entry_id": "231",
				"bib": "1067",
				"participant_name": "Faris Bin Hamdan",
				"team": {
					"name": "Riverside High School",
					"short_name": "RHS"
				},
				"result": "17:41.2",
				"place": "17",
				"points": "16",
				"scoring_role": "displacer"
			},
			{
				"entry_id": "268",
				"bib": "1270",
				"participant_name": "Vikram Pillai",
				"team": {
					"name": "Lakeview Academy",
					"short_name": "LVA"
				},
				"result": "17:44.9",
				"place": "18",
				"points": "17",
				"scoring_role": "scorer"
			},
			{
				"entry_id": "255",
				"bib": "1219",
				"participant_name": "Hakim Bin Rosli",
				"team": {
					"name": "Hillcrest Secondary",
					"short_name": "HCS"
				},
				"result": "17:47.5",
				"place": "19",
				"points": "18",
				"scoring_role": "scorer"
			},
			{
				"entry_id": "277",
				"bib": "1301",
				"participant_name": "Daniel Teo",
				"result": "17:52.0",
				"place": "20"
			},
			{
				"entry_id": "246",
				"bib": "1196",
				"participant_name": "Ong Kai Xuan",
				"team": {
					"name": "Eastgate College",
					"short_name": "EGC"
				},
				"result": "17:55.3",
				"place": "21",
				"points": "19",
				"scoring_role": "displacer"
			},
			{
				"entry_id": "233",
				"bib": "1072",
				"participant_name": "Lee Wei Jie",
				"team": {
					"name": "Riverside High School",
					"short_name": "RHS"
				},
				"result": "18:01.8",
				"place": "22",
				"points": "20",
				"scoring_role": "displacer"
			},
			{
				"entry_id": "236",
				"bib": "1078",
				"participant_name": "Arif Bin Salleh",
				"team": {
					"name": "Riverside High School",
					"short_name": "RHS"
				},
				"result": "18:06.4",
				"place": "23"
			},
			{
				"entry_id": "271",
				"bib": "1275",
				"participant_name": "Suresh Kumar",
				"team": {
					"name": "Lakeview Academy",
					"short_name": "LVA"
				},
				"result": "18:09.1",
				"place": "24",
				"points": "21",
				"scoring_role": "displacer"
			}
		]
	}
}

Team scores: meet

One division and gender’s standings, summed across its events. Download team-scores.json

{
	"omd": {
		"version": "1.0",
		"kind": "team_scores",
		"generator": {
			"id": "2t",
			"name": "2Timer",
			"version": "1.0.62"
		},
		"sent_at": "2026-11-15T09:12:30.415Z"
	},
	"meet": {
		"id": "6f1c2a9e-4b7d-4e2a-9c51-0d8e3f7a12b4",
		"name": "District Schools Championship",
		"start_date": "2026-11-14",
		"end_date": "2026-11-15",
		"sport": "tf-outdoor"
	},
	"display": {
		"target": "main",
		"mode": "replace",
		"connection_id": "6f1c2a9e-4b7d-4e2a-9c51-0d8e3f7a12b4_3"
	},
	"team_scores": {
		"scope": "meet",
		"division_name": "Under 18",
		"gender": "F",
		"rows": [
			{
				"place": "1",
				"team": {
					"name": "Riverside High School",
					"short_name": "RHS"
				},
				"points": "112"
			},
			{
				"place": "2",
				"team": {
					"name": "Eastgate College",
					"short_name": "EGC"
				},
				"points": "96.5"
			},
			{
				"place": "3",
				"team": {
					"name": "Hillcrest Secondary",
					"short_name": "HCS"
				},
				"points": "71"
			},
			{
				"place": "3",
				"team": {
					"name": "Lakeview Academy",
					"short_name": "LVA"
				},
				"points": "71"
			},
			{
				"place": "5",
				"team": {
					"name": "Northfield School"
				},
				"points": "18"
			}
		]
	}
}

Team scores: cross country race

Standings for one race, with the race it belongs to. Download team-scores-xc-race.json

{
	"omd": {
		"version": "1.0",
		"kind": "team_scores",
		"generator": {
			"id": "2t",
			"name": "2Timer",
			"version": "1.0.62"
		},
		"sent_at": "2026-10-24T03:41:18.206Z"
	},
	"meet": {
		"id": "b83e5d17-2c9a-4f60-8e14-7a5c0f9d3b62",
		"name": "District Cross Country Championship",
		"start_date": "2026-10-24",
		"end_date": "2026-10-24",
		"sport": "xc"
	},
	"display": {
		"target": "main",
		"mode": "replace",
		"connection_id": "b83e5d17-2c9a-4f60-8e14-7a5c0f9d3b62_1"
	},
	"event": {
		"id": "2",
		"number": "2",
		"name": "Varsity Boys 5K",
		"gender": "M",
		"code": "5000",
		"entry_type": "individual"
	},
	"team_scores": {
		"scope": "event",
		"division_name": "Varsity",
		"gender": "M",
		"rows": [
			{
				"place": "1",
				"team": {
					"name": "Riverside High School",
					"short_name": "RHS"
				},
				"points": "42"
			},
			{
				"place": "2",
				"team": {
					"name": "Eastgate College",
					"short_name": "EGC"
				},
				"points": "57"
			},
			{
				"place": "3",
				"team": {
					"name": "Hillcrest Secondary",
					"short_name": "HCS"
				},
				"points": "81"
			},
			{
				"place": "4",
				"team": {
					"name": "Lakeview Academy",
					"short_name": "LVA"
				},
				"points": "96"
			}
		]
	}
}

Announcement

A message the operator types. Download announcement.json

{
	"omd": {
		"version": "1.0",
		"kind": "announcement",
		"generator": {
			"id": "2t",
			"name": "2Timer",
			"version": "1.0.62"
		},
		"sent_at": "2026-11-14T07:20:02.733Z"
	},
	"meet": {
		"id": "6f1c2a9e-4b7d-4e2a-9c51-0d8e3f7a12b4",
		"name": "District Schools Championship",
		"start_date": "2026-11-14",
		"end_date": "2026-11-15",
		"sport": "tf-outdoor"
	},
	"display": {
		"target": "main",
		"mode": "replace",
		"connection_id": "6f1c2a9e-4b7d-4e2a-9c51-0d8e3f7a12b4_3"
	},
	"announcement": {
		"title": "Weather delay",
		"message": "Competition is paused for lightning. Next update at 3:30 PM.",
		"priority": "normal"
	}
}

Clear

Blank the board. Download clear.json

{
	"omd": {
		"version": "1.0",
		"kind": "clear",
		"generator": {
			"id": "2t",
			"name": "2Timer",
			"version": "1.0.62"
		},
		"sent_at": "2026-11-14T07:45:00.000Z"
	},
	"meet": {
		"id": "6f1c2a9e-4b7d-4e2a-9c51-0d8e3f7a12b4",
		"name": "District Schools Championship",
		"start_date": "2026-11-14",
		"end_date": "2026-11-15",
		"sport": "tf-outdoor"
	},
	"display": {
		"target": "main",
		"mode": "replace",
		"connection_id": "6f1c2a9e-4b7d-4e2a-9c51-0d8e3f7a12b4_3"
	}
}

Probe reply

What a receiver answers to a GET on its URL: the versions it reads and who it is. It validates against the probe reply schema, not the message schema. Download probe-reply.json

{
	"accepts": ["1.0"],
	"generator": {
		"id": "exampleboard",
		"name": "ExampleBoard",
		"version": "2.4"
	},
	"targets": ["main", "field", "stream"]
}