Appearance
ILCA Worlds walkthrough
Follow a real API capture from the ILCA 6 Worlds final series, September 12: two races and ten tracked boats. Use your own token; your account’s access and current responses may differ.
| Resource | ID |
|---|---|
| Event | 15 |
| Day assignment | 119 |
| Session | 3455 |
| First race | comment_6918 |
| GPS track | 26082 |
Set up
Make SAILSYNC_API_TOKEN available through your secret manager:
sh
export SAILSYNC_API_BASE_URL=https://www.sailsync.io
sailsync_get() {
curl --fail-with-body \
--header "Authorization: Bearer ${SAILSYNC_API_TOKEN}" \
"${SAILSYNC_API_BASE_URL}$1"
}1. Find the event and check access
sh
sailsync_get '/api/integrations/v1/events?q=ILCA%206%20Worlds'
sailsync_get '/api/integrations/v1/events/15?limit=100'
sailsync_get '/api/integrations/v1/events/15/days/119/access'json
{
"event_id": 15,
"assignment_id": 119,
"session_id": 3455,
"allowed": true,
"state": "already_available",
"day": "2026-09-12",
"unit": null,
"allowance_debited": 0,
"flo_credits_debited": 0,
"data_path": "/api/integrations/v1/sessions/3455/data"
}already_available confirms access. Follow data_path for the session’s tracks and analysis links.
Event response · Session manifest
2. Read GPS
sh
sailsync_get '/api/integrations/v1/sessions/3455/data/tracks/26082/points?limit=3'json
{
"available": true,
"session_id": 3455,
"session_track_id": 26082,
"resolution": "committed_full_resolution_gps",
"source_ref": "0ef4be0ce0b1b9e0bcb8b72653f85d2728727287dfc7da5dd7878b18bad38154",
"time_basis": "session_epoch_seconds_with_track_offset",
"time_offset": 0,
"window": {
"start": 1789215781,
"end": 1789219800
},
"point_count": 3303,
"points": [
{
"time_epoch": 1789215781.1,
"lat": 53.3144298,
"lng": -6.1299651
},
{
"time_epoch": 1789215783.3,
"lat": 53.3144469,
"lng": -6.1299779999999995
},
{
"time_epoch": 1789215786.5,
"lat": 53.3144924,
"lng": -6.1300146
}
],
"next_cursor": "EXAMPLE_CURSOR_REPLACE_WITH_CURRENT_RESPONSE"
}This page has three of 3,303 points. The sample cursor is a placeholder. Use your own response’s next_cursor as the URL-encoded cursor parameter until it is null. For actual exports, use larger pages and cache downloads.
3. Read wind
sh
sailsync_get '/api/integrations/v1/sessions/3455/data/wind?series=direction&limit=3'json
{
"series": "direction",
"unit": "degrees",
"representation": "configured_session_step_series",
"snapshot_ref": "699e214a2028281ba73957ef2d3ddf8e91035bf88d6f01110f7b466456094817",
"total_count": 3,
"default_direction_deg": 263,
"default_speed_kt": null,
"points": [
{
"t": 1789216081,
"direction": 263
},
{
"t": 1789218181,
"direction": 262
},
{
"t": 1789218984.7654676,
"direction": 256
}
],
"next_offset": null
}Wind is the configured series. The null default speed means unavailable, not zero knots.
4. Read race results
sh
sailsync_get '/api/integrations/v1/sessions/3455/data/analysis'
sailsync_get '/api/integrations/v1/sessions/3455/data/races/comment_6918/results?limit=3'Full result response
json
{
"schema_version": "subscriber_saved_analysis_v1",
"session_id": 3455,
"scope_id": "comment_6918",
"snapshot": {
"ref": "dbf5c1f09a60d24f03f3a78c35c3c40012f5ccb202a22f7be8bf50f616ae1636",
"schema_version": "race_debrief_facts_v1",
"artifact_run_id": "20261023T223430Z-327193c0",
"computed_at": "2026-10-23T22:34:30.105Z",
"revision_completeness": "partial",
"missing_revision_components": [
"artifact_source_revision_binding"
],
"freshness": "no_newer_recorded_inputs",
"refresh_required": false,
"raw_gps_coverage_verified": false
},
"fleet_count": 10,
"next_before_boat_id": 26089,
"paging_order": "boat_id_descending",
"scope": "within_this_race_only",
"model_called": false,
"results": [
{
"boat_id": "26091",
"boat_name": "USA-222035 | Rose C.",
"boat_color": "#42D4F4",
"status": "finished",
"finish_time": 1789217476.8393393,
"elapsed_seconds": 1095.8393392562866,
"legs_completed": 5,
"legs_expected": 5,
"result_source": "completion.elapsed_seconds",
"overall_order": 2,
"position": 2,
"finish_time_local": {
"epoch": 1789217476.8393393,
"utc": "2026-09-12T12:51:16.839Z",
"local": "2026-09-12T05:51:16-07:00",
"label": "2026-09-12 05:51:16 PDT",
"time_zone": "America/Los_Angeles"
},
"last_recorded_leg_end_local": {
"epoch": 1789217477,
"utc": "2026-09-12T12:51:17.000Z",
"local": "2026-09-12T05:51:17-07:00",
"label": "2026-09-12 05:51:17 PDT",
"time_zone": "America/Los_Angeles"
}
},
{
"boat_id": "26089",
"boat_name": "HUN-211551 | Erdi M.",
"boat_color": "#E6194B",
"status": "finished",
"finish_time": 1789217485.7685676,
"elapsed_seconds": 1104.7685675621033,
"legs_completed": 5,
"legs_expected": 5,
"result_source": "completion.elapsed_seconds",
"overall_order": 3,
"position": 3,
"finish_time_local": {
"epoch": 1789217485.7685676,
"utc": "2026-09-12T12:51:25.768Z",
"local": "2026-09-12T05:51:25-07:00",
"label": "2026-09-12 05:51:25 PDT",
"time_zone": "America/Los_Angeles"
},
"last_recorded_leg_end_local": {
"epoch": 1789217486,
"utc": "2026-09-12T12:51:26.000Z",
"local": "2026-09-12T05:51:26-07:00",
"label": "2026-09-12 05:51:26 PDT",
"time_zone": "America/Los_Angeles"
}
},
{
"boat_id": "26090",
"boat_name": "FRA-212121 | Cervera L.",
"boat_color": "#BFEF45",
"status": "finished",
"finish_time": 1789217524.8534248,
"elapsed_seconds": 1143.8534247875214,
"legs_completed": 5,
"legs_expected": 5,
"result_source": "completion.elapsed_seconds",
"overall_order": 9,
"position": 9,
"finish_time_local": {
"epoch": 1789217524.8534248,
"utc": "2026-09-12T12:52:04.853Z",
"local": "2026-09-12T05:52:04-07:00",
"label": "2026-09-12 05:52:04 PDT",
"time_zone": "America/Los_Angeles"
},
"last_recorded_leg_end_local": {
"epoch": 1789217525,
"utc": "2026-09-12T12:52:05.000Z",
"local": "2026-09-12T05:52:05-07:00",
"label": "2026-09-12 05:52:05 PDT",
"time_zone": "America/Los_Angeles"
}
}
],
"summary": {
"boat_count": 10,
"finish_count": 10,
"partial_count": 0,
"not_started_count": 0,
"excluded_count": 0,
"other_count": 0
}
}Rows are ordered by boat ID; position is the fleet-relative result for this race. Continue with before_boat_id=next_before_boat_id and expected_snapshot=snapshot.ref.
Use UTC/epoch values for time comparisons; display-local times may differ from the venue timezone.
5. Read starts and compare a leg
sh
sailsync_get '/api/integrations/v1/sessions/3455/data/races/comment_6918/starts?limit=3'
sailsync_get '/api/integrations/v1/sessions/3455/data/races/comment_6918/facts?subject_id=26082&rival_id=26083&comparison_policy=named_rival&leg_index=1'Start statistics · First-leg comparison · Analysis catalog
The reference includes examples for every operation. Event/data samples use this capture; account and write samples use test fixtures. Queued 202 responses are separate from completed receipts.
