SkyWinOne API
Use API calls to integrate with SkyWinOne. Intended for developers building integrations.
API conventions
The API follows standard REST conventions with a few exceptions described in the API resources section below.
application/json
application/json
API. Add role FINANCE for monetary transaction endpoints.
offset and max on list endpoints — e.g. /api/v1/members?offset=70&max=10
For a complete list of available resources and methods see the status page of SkyWinOne — filter by api/v1.
API resources
Endpoints that deviate from standard REST conventions or have notable special behaviours.
/api/v1/status
live example →
GET
Returns SkyWinOne settings including validatedDbVersion and validatedLicenseNumber — both should be true.
HEad
Use HEAD on this endpoint (no auth required) to check if the service is up.
/api/v1/members
live example →
GET
Optional query parameter selectionNo filters by Member selection: /api/v1/members?selectionNo=11
/api/v1/members/<id> looks up by InternalNo, falling back to Member No or External member No.
/api/v1/members/checkin
Response same as /members
POST/PUT
Simplifies registration of new jumpers and renewal of existing ones. Accepts POST for new members and PUT for existing members.
Covers: members, memberlicenses, memberinstructs, membercertificates, memberphones, trans.
When updating, firstName, lastName and nickName are ignored. All POST/PUT requests set verifiedLicense to false.
Extra attributes: phoneNo, amount (+ optional paymentType), year, club, licenseType, instructorText (space-separated), certificateText (space-separated).
POST — new member
{
"year": 2022,
"club": "ONE",
"licenseType": "D",
"instructorText": "T WARP",
"certificateText": "TRCK",
"video": true,
"postTown": "asas",
"postCode": "12345",
"countryCode": "US",
"firstName": "Jesper",
"externalMemberNo": "USA-123",
"nationalityCode": "US",
"lastName": "Examples",
"weight": 80,
"phoneNo": "+001 77 123456789",
"contactName": "My Mom",
"contactPhone": "Phone home"
}
PUT — update existing
{
"amount": 1200,
"paymentType": "Credit card",
"year": 2022,
"club": "ONE",
"licenseType": "C",
"instructorText": "T WARP",
"certificateText": "TD TRCK",
"verifiedLicense": true
}
/api/v1/passengers
live example →
GET
Filter by date range: /api/v1/passengers?fromDate=2021-03-01&toDate=2021-07-01
Sub-resource payment responds to GET and POST for passenger payments: /api/v1/passengers/4711/payment
POST — new passenger
{
"firstName": "Viktor",
"lastName": "Paxberg",
"jumpDate": "2026-12-24",
"jumpTime": "13:00",
"phoneNo": "+46 8 112480"
}
POST — payment for Passenger
{
"voucherTypeId": null,
"voucherId": null,
"voucherAmount": null,
"swishTxNo": "DC01FAB4",
"swishAmount": 40.00,
"cashAmount": 150.00,
"cardAmount": null
}
/api/v1/trans
live example →
GET
Optional lastUpdated (format yyyy-MM-dd hh:mm:ss.SSS) returns only transactions after the given timestamp:
/api/v1/trans/10504711?lastUpdated=2021-02-06 14:36:14.740
POST — new transaction (payment)
{
"accountNo": 100001234,
"transType": "ACCOUNT",
"regDate": "2026-04-13",
"amount": -12.34,
"paymentType": null,
"paymentReasonCode": null,
"comment": "Jesper was here"
}
/api/v1/reports
live example →
GET
jump-league — optional jumpYear: /api/v1/reports/jump-league?jumpYear=2021
jump-stats
pax-report — optional memberNo path + fromDate/toDate: /api/v1/reports/pax-report/770?fromDate=2022-01-01&toDate=2022-12-31
member-email-addresses — required infoViaEmail (true/false): /api/v1/reports/member-email-addresses?infoViaEmail=true
/api/v1/skyview
live example →
GET
Returns loads and jumpers for today with status PLANNED or BOOKED.
jumpDate — override the date: /api/v1/skyview?jumpDate=2021-03-01
tandem (true/false) — filter to tandem jumps only.
includeAllStatuses (true/false) — return all loads regardless of status.
/api/v1/jump-queue
live example →
GET
Returns all groups and jumpers currently waiting in the jump queue (formerly SkyWish).
POST — new jumper
{
"altitude": null,
"comment": null,
"computername": "demo_768de2e68dc8750d",
"internalNo": 100001234,
"jumptype": "O",
"studentJumpNo": null
}
POST — new group of jumpers
[
{
"computername": "demo_768de2e68dc8750d",
"internalNo": 100001234,
"jumptype": "O",
},
{
"computername": "demo_768de2e68dc8750d",
"internalNo": 100004321,
"jumptype": "O",
}
]
PUT — update jumper
{
"requestNo":19
"altitude":4000,
"jumpType":"WING",
"addToGroup"(or "removeFromGroup"):13
}
DELETE — remove jumpers/groups
[
{
"requestNo":19
},
{
"reqAsGroup":3
}
]