SAP Sailing Analytics Webservices API Version 1.0 - Overview

A number of web services are available to query the state of a SAP Sailing Analytics server instance. Note that different server instances exist, and not all servers hold the same data. Usually, events get their own URL which is then made sure to point to a server instance holding the data for that event. We use an Apache reverse proxy to map URLs (and in particular the sub-domain) to a particular server instance. So, www.sapsailing.com may end up on a different server instance than tw2013.sapsailing.com or ess40-2013.sapsailing.com. Usually, we hand out a per-event or per-series URL, such as the ones above (except www.sapsailing.com which is the general landing page), and you would only fetch the content for the event you're interested in, even if the server instance has more. In all subsequent explanations, you may replace the "www.sapsailing.com" hostname by an according per-event host name to make sure you get to the event you're interested in.

ATTRIBUTION / BRANDING: If you make use of this API, SAP requires you to include SAP branding in any end-user facing interface or document that is based on the data, information and insights you obtain through the use of this API. A good place to get started regarding SAP branding tips is www.sapbrandtools.com. Please also note that those APIs granting access to the original position and weather data requires the accessing user account to have special permissions.

For questions and support please get in touch through support@sapsailing.com.

Webservice URL Description
/sailingserver/api/v1/events/createEvent Creates a new event
/sailingserver/api/v1/events/{event-id}/ Deletes and Event
/sailingserver/api/v1/events/{event-id}/update Updates an existing event
/sailingserver/api/v1/events/{event-id}/migrate Migrates an existing event
/sailingserver/api/v1/events Gets all events
/sailingserver/api/v1/events/{id} Gets the details of an event
/sailingserver/api/v1/events/{id}/racestates Gets the race states of all races of an event
/sailingserver/api/v1/regattas Gets all regattas
/sailingserver/api/v1/regattas/{name} Gets the details of a regatta
/sailingserver/api/v1/regattas/{name} Delete the regatta and all regatta leaderboards
/sailingserver/api/v1/regattas/{name} Updates the details of a regatta
/sailingserver/api/v1/regattas/{name}/races Gets the list of races in a regatta
/sailingserver/api/v1/regattas/{name}/entries Gets the entries of a regatta
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/entries Gets the entries of a race
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/firstlegbearing Gets the bearing of the first leg
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/markpassings Gets all mark passings of a race, by competitor and by waypoint
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/competitors/positions Gets the GPS positions of the competitors of a race
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/competitors/live Gets some competitor information (e.g current rank, current leg) for a live race
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/competitordata Gets values on one or more detail parameters for one or more competitors and a time range within the race, with configurable step width
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/competitors/legs Gets some leg information (e.g. rank, distance traveled) for all competitors of a race
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/marks/positions Gets all GPS positions of the course marks of a race
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/course Gets the course of a race
/sailingserver/api/v1/regattas/{regattaname}/structure/{raceColumn}/{fleet}/course Gets the course of a race by using the regatta structure
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/startanalysis Obtains start analysis parameters for the competitors, such as start delay, distance to line at gun, etc.
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/times Gets the timing data for a race, including the start/end times, the tracking start/end times as well as the "split times" or "mark passing times" of the first competitor rounding each mark.
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/targettime Gets the estimated target time of a race
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/wind Gets all GPS positions and data values for the wind of a race
/sailingserver/api/v1/regattas/datamining Gets all query identifiers for regattas
/sailingserver/api/v1/regattas/{regattaname}/datamining/{queryidentifier} Executes the query for the regatta and gets the result
/sailingserver/api/v1/regattas/{regattaname}/addracecolumns Adds one or more race columns to a regatta
/sailingserver/api/v1/regattas/{regattaname}/removeracecolumn Removes a race column from a regatta
/sailingserver/api/v1/regattas/{regattaname}/competitors Obtains the competitors participating in a regatta
/sailingserver/api/v1/regattas/{regattaname}/windsummary Obtains a summary of the wind conditions for one or more races in the regatta
/sailingserver/api/v1/regattas/updateOrCreateSeries Creates a Series in an regatta, and configures the Series it contains
/sailingserver/api/v1/regattas/{regattaname}/competitors/createandaddwithboat Creates a competitor using an already exising boat and adds it to the regatta
/sailingserver/api/v1/regattas/{regattaname}/competitors/createandadd Creates a competitor and adds it to the regatta
/sailingserver/api/v1/regattas/{regattaname}/competitors/{competitorId}/add Registers a competitor with a regatta (POST)
/sailingserver/api/v1/regattas/{regattaname}/competitors/{competitorId}/remove Removes a competitor from a regatta (POST)
/sailingserver/api/v1/regattas/{regattaname}/competitors/{competitorId}/updateToDHandicap Updates a competitor's time on distance allowance per nautical mile handicap value. (POST)
/sailingserver/api/v1/regattas/{regattaname}/competitors/{competitorId}/updateToTHandicap Updates a competitor's time on time handicap value. (POST)
/sailingserver/api/v1/regattas/{regattaName}/tracking_devices Gets the status for one or all tracking devices associated to a regatta (POST)
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/datamining/{queryidentifier} Executes the query for the race and gets the result
/sailingserver/api/v1/leaderboardgroups Gets all leaderboard groups
/sailingserver/api/v1/leaderboardgroups/{name} Gets the details of a group of leaderboards
/sailingserver/api/v1/leaderboardgroups/{name}/migrate Migrates an existing leaderboardGroup
/sailingserver/api/v1/leaderboards Gets all leaderboards
/sailingserver/api/v1/leaderboards/{name} Gets the details of a leaderboard
/sailingserver/api/v1/leaderboards/{name}/update Modifies attributes of a leaderboard
/sailingserver/api/v1/leaderboards/{name}/updateCompetitorDisplayName Modifies the display name of a competitor in the scope of a leaderboard
/sailingserver/api/v1/leaderboards/{name}/device_mappings/start Tracking App Device Checkin on leaderboard
/sailingserver/api/v1/leaderboards/{name}/device_mappings/end Tracking App Device Checkout on leaderboard
/sailingserver/api/v1/leaderboards/{name}/competitors/{id} Gets the details of a competitor in the context of a leaderboard
/sailingserver/api/v1/leaderboards/{name}/autocourse Automatically infers a trivial course for a race to have something to start with.
/sailingserver/api/v1/leaderboards/{name}/marks Gets the marks of a race (from the RaceLog and if possible the TrackedRace)
/sailingserver/api/v1/leaderboards/{name}/marks/{markId} Gets a defined mark
/sailingserver/api/v1/leaderboards/{name}/startorder Gets the order in which competitors have started or are expected to start for a race
/sailingserver/api/v1/leaderboards/{name}/starttime Sets the race start time and racing procedure in the race log (PUT)
/sailingserver/api/v1/leaderboards/{name}/starttime Fetches a race's start time and racing procedure, as well as the current pass in the race log (GET).
/sailingserver/api/v1/leaderboards/{name}/settrackingtimes Modifies the race's tracking interval
/sailingserver/api/v1/leaderboards/{name}/starttracking Starts tracking for a race log / smart phone-tracked race
/sailingserver/api/v1/leaderboards/{name}/stoptracking Stops tracking for a race
/sailingserver/api/v1/leaderboards/{name}/removeTrackedRace Removes a tracked race
/sailingserver/api/v1/leaderboards/{name}/denoteForTracking Denotes a race for tracking
/sailingserver/api/v1/leaderboards/{name}/leaderboardRaceEnableRaceLogForCompetitorRegistration Enables racelog useage for competitor registration
/sailingserver/api/v1/leaderboards/{name}/migrate Migrates an existing leaderboard
/sailingserver/api/v1/leaderboards/{name}/marks/{id}/gps_fixes Pings the location of a mark via the RegattaLog
/sailingserver/api/v1/gps_fixes Adds GPS-fixes that originated from a device with a unique identifier
/sailingserver/api/v1/competitors/{id} Gets the details of a competitor
/sailingserver/api/v1/competitors/{id} Updates the details of a competitor
/sailingserver/api/v1/competitors/{id}/team Gets the details of a competitor's team
/sailingserver/api/v1/competitors/{id}/team/image Sets the team image
/sailingserver/api/v1/regattas/{regattaname}/races/{racename}/maneuvers Gets all maneuvers performed by all competitors of a race
/sailingserver/api/v1/statistics/years?[years={year}[&years={year}]] Gets statistics regarding regattas and races grouped by years
/sailingserver/api/v1/trackedRaces/allRaces Gets all TrackedRaces found on the local instance as well as the collected TrackedRaces from all remote instances and provides them in a list sorted by race start time, together with a sequence number for each one. This is a simple way to check how many races have been tracked altogether and which one may be an "anniversary race."
/sailingserver/api/v1/trackedRaces/getRaces Gets all TrackedRaces found on the local instance with a valid start time.
/sailingserver/api/v1/trackedRaces/raceDetails Gets more information about a specified RegattaAndRace identifier
/sailingserver/api/v1/boatclasses Obtains information about all or a single boat class
/sailingserver/api/v1/boats/{id} Obtains information about a single boat
/sailingserver/api/v1/countrycodes Obtains information about all country codes known by the system
/sailingserver/api/v1/wind/putWind Allows to add wind values to 1-x races, similar to AdminConsole
/sailingserver/api/v1/mark/addCompetitorToRace Updates the competitor registrations
/sailingserver/api/v1/mark/addCourseDefinitionToRaceLog Allows to create a Coursedefinition that is then inserted into the racelog
/sailingserver/api/v1/mark/addMarkFix Adds a fix to a specified Mark, the Marks uuid must be known
/sailingserver/api/v1/mark/addMarkToRegatta Adds a Mark to a specified Regatta
/sailingserver/api/v1/mark/revokeMarkOnRegatta Revokes a Mark from a specified Regatta
/sailingserver/api/v1/mark/searchMarksByMarkPropertiesObject Searches for Marks, that originated from a specified MarkProperties object.
/sailingserver/api/v1/{leaderboard}/{racecolumn}/{fleet}/tags Gets, creates, updates and deletes tags.
/sailingserver/api/v1/status Returns a status description for the "RacingEventService" core service
/sailingserver/api/v1/trackedevents Gets all tracked events with the associated device-to-competitor/boat/mark elements for the current user.
/sailingserver/api/v1/trackedevents Create or update a tracked event for the current user.
/sailingserver/api/v1/trackedevents Update the archived status of a tracked event for the current user.
/sailingserver/api/v1/trackedevents Delete a tracked event for the current user.
/sailingserver/api/v1/tracking_devices/{deviceUUID} Gets the status of an app based tracking device (POST)
/sailingserver/api/v1/tracking_devices Gets the status of multiple app based tracking devices (POST)
/sailingserver/api/v1/courseconfiguration/createCourse/{regattaName}/{raceColumn}/{fleet} Creates a course based on a course configuration.
/sailingserver/api/v1/courseconfiguration/createCourseTemplate Creates a course template based on a course configuration.
/sailingserver/api/v1/courseconfiguration/getFromCourse/{regattaName}/{raceColumn}/{fleet} Gets the course from a race defined by regattaName, raceColumn and fleet and returns it as course configuration.
/sailingserver/api/v1/masterdataimport Triggers a master data import from a remote server.
/sailingserver/api/v1/remoteserverreference Lists the remote server references pointing to other servers
/sailingserver/api/v1/remoteserverreference/add Adds a remote server reference to a server.
/sailingserver/api/v1/remoteserverreference/remove Removes a remote server reference from a server.
/sailingserver/api/v1/remoteserverreference/update Updates / modifies a remote server reference on a server.
/sailingserver/api/v1/compareservers Compares the content of two servers.
Back to Web Services Home