Skip to content

Latest commit

 

History

History

schema

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Splits.io Exchange Format

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.

Examples

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.

Changelog

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