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.

Authorization Basic Auth — user and password from SkyWinOne
Content-Type application/json
Accept application/json
Permissions API user must have role API. Add role FINANCE for monetary transaction endpoints.
Pagination Use offset and max on list endpoints — e.g. /api/v1/members?offset=70&max=10

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
    }
]