The Splits.io Exchange Format is a JSON schema denoting a standard way of arranging run information for passing between timers and other programs (like Splits.io).
The best way to digest the schema is the autogenerated documentation.
You can also use the raw JSON schema for easy implementation, validation, or testing of the runs you generate or consume.
The schema is large, but many fields are optional -- a run at its heart resembles the following:
{
"_schemaVersion": "v1.0.1",
"timer": {
"shortname": "livesplit",
"longname": "LiveSplit",
"version": "v1.6.0"
},
"game": {"longname": "Super Mario Odyssey"},
"category": {"longname": "Any%"},
"segments": [
{
"name": "Cap",
"endedAt": {"realtimeMS": 143123},
"bestDuration": {"realtimeMS": 141167}
}
]
}
However you likely want to add some additional fields to contain previous attempts, skipped splits, and runner information. For details around all possible fields, see the documentation. If you like, you can plug the raw schema itself into your program for validation -- it's written in json-schema, so any json-schema library will be able to handle it.
We try to change the schema as little as possible. When we do, we post why here.
Note: All schemas accept any patch of an equivalent major-minor version, and any lesser minor version of an equivalent
major version (e.g. v1.1.1
accepts v1.0.0
, v1.1.0
, and v1.1.2
, but not v1.2.0
or v2.0.0
). The exception is
schema v1.0.0
, which only accepts v1.0.0
runs.
- v1.0.1 (2019-07) Corrected a malformed
examples
key; updated some property names and descriptions; format now allows any future v1.0.x patch - v1.0.0 (2018-09) Schema released