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. |