Wingwork GraphQL API

Integrate with the modern maintenance tracking software, Wingwork to get and update details about the managed aircraft.

Contact

Karthik Srinivasan

[email protected]

https://www.wingwork.com

API Endpoints
https://app.wingwork.com/.netlify/functions/graphql
Headers
# Your API token from the dashboard. Must be included in all API calls.
Authorization: Bearer <YOUR_TOKEN_HERE>

Queries

aircraft

Response

Returns an Aircraft

Arguments
Name Description
id - String!

Example

Query
query aircraft($id: String!) {
  aircraft(id: $id) {
    id
    name
    model
    tailNumber
    serialNumber
    metadata
    orgSlug
    createdAt
    updatedAt
    nextDueAt
    AircraftUsageLog {
      ...AircraftUsageLogFragment
    }
  }
}
Variables
{"id": "abc123"}
Response
{
  "data": {
    "aircraft": {
      "id": "xyz789",
      "name": "abc123",
      "model": "abc123",
      "tailNumber": "xyz789",
      "serialNumber": "abc123",
      "metadata": {},
      "orgSlug": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "nextDueAt": "2007-12-03T10:15:30Z",
      "AircraftUsageLog": [AircraftUsageLog]
    }
  }
}

upcomingMaintenanceItems

Response

Returns [MaintenanceItem!]

Arguments
Name Description
limit - Int
orgSlug - String
aircraftId - String!

Example

Query
query upcomingMaintenanceItems(
  $limit: Int,
  $orgSlug: String,
  $aircraftId: String!
) {
  upcomingMaintenanceItems(
    limit: $limit,
    orgSlug: $orgSlug,
    aircraftId: $aircraftId
  ) {
    id
    createdAt
    orgSlug
    aircraftId
    aircraft {
      ...AircraftFragment
    }
    maintenanceType
    title
    description
    tags {
      ...TagFragment
    }
    ataCode
    manufactureCode
    ataManufactureCode
    notes
    disposition
    otherComponent
    status
    metadata
    trackedByComponentId
    componentID
    cadenceValue
    isOptional
    isRecurring
    nextDueStatus
    calculatedNextDueAt
    remainingValue
    isAdSb
    adSbType
    otherAdSbType
    lastComplianceDate
    lastComplianceStampId
    lastComplianceStamp {
      ...AircraftUsageLogFragment
    }
    importedDataCompliance
    isParent
    parentId
    groupKey
    upstreamId
    parentTask {
      ...MaintenanceItemFragment
    }
    upstreamTask {
      ...MaintenanceItemFragment
    }
    childItems {
      ...MaintenanceItemFragment
    }
    childCount
    downstreamItems {
      ...MaintenanceItemFragment
    }
    complianceInProgress
    maintenanceNextDue {
      ...MaintenanceNextDueFragment
    }
    discrepancyCompActivityId
    discrepancyWorkItemId
    discrepancyStatus
    createdById
    estWorkHours
    relatedMaintenanceItemIds
  }
}
Variables
{
  "limit": 123,
  "orgSlug": "abc123",
  "aircraftId": "xyz789"
}
Response
{
  "data": {
    "upcomingMaintenanceItems": [
      {
        "id": "abc123",
        "createdAt": "2007-12-03T10:15:30Z",
        "orgSlug": "abc123",
        "aircraftId": "xyz789",
        "aircraft": Aircraft,
        "maintenanceType": "INSPECTION",
        "title": "xyz789",
        "description": "abc123",
        "tags": [Tag],
        "ataCode": "abc123",
        "manufactureCode": "xyz789",
        "ataManufactureCode": "xyz789",
        "notes": "xyz789",
        "disposition": "abc123",
        "otherComponent": "abc123",
        "status": "ENABLED",
        "metadata": {},
        "trackedByComponentId": "xyz789",
        "componentID": "xyz789",
        "cadenceValue": {},
        "isOptional": true,
        "isRecurring": false,
        "nextDueStatus": "OVERDUE",
        "calculatedNextDueAt": "2007-12-03T10:15:30Z",
        "remainingValue": 987.65,
        "isAdSb": true,
        "adSbType": "DISCREPANCY",
        "otherAdSbType": "xyz789",
        "lastComplianceDate": "2007-12-03T10:15:30Z",
        "lastComplianceStampId": "xyz789",
        "lastComplianceStamp": AircraftUsageLog,
        "importedDataCompliance": {},
        "isParent": false,
        "parentId": "abc123",
        "groupKey": "abc123",
        "upstreamId": "abc123",
        "parentTask": MaintenanceItem,
        "upstreamTask": MaintenanceItem,
        "childItems": [MaintenanceItem],
        "childCount": 987,
        "downstreamItems": [MaintenanceItem],
        "complianceInProgress": false,
        "maintenanceNextDue": [MaintenanceNextDue],
        "discrepancyCompActivityId": "abc123",
        "discrepancyWorkItemId": "xyz789",
        "discrepancyStatus": "OPEN",
        "createdById": "abc123",
        "estWorkHours": 123.45,
        "relatedMaintenanceItemIds": [
          "xyz789"
        ]
      }
    ]
  }
}

Mutations

createAircraftUsageLogWithComponents

Response

Returns an AircraftUsageLog

Example

Query
mutation createAircraftUsageLogWithComponents {
  createAircraftUsageLogWithComponents {
    id
    aircraftId
    aircraft {
      ...AircraftFragment
    }
    usageAsOf
    airframeTotalTime
    airframeCycle
    engine1TSN
    engine1TSO
    engine1CSN
    engine1CSO
    engine2TSN
    engine2TSO
    engine2CSN
    engine2CSO
    apuTSN
    apuTSO
    apuCSN
    apuCSO
    createdAt
    updatedAt
    maintenanceItem {
      ...MaintenanceItemFragment
    }
    ComponentUsageLog {
      ...ComponentUsageLogFragment
    }
  }
}
Response
{
  "data": {
    "createAircraftUsageLogWithComponents": {
      "id": "abc123",
      "aircraftId": "xyz789",
      "aircraft": Aircraft,
      "usageAsOf": "2007-12-03T10:15:30Z",
      "airframeTotalTime": 123.45,
      "airframeCycle": 987.65,
      "engine1TSN": 123.45,
      "engine1TSO": 987.65,
      "engine1CSN": 123.45,
      "engine1CSO": 987.65,
      "engine2TSN": 987.65,
      "engine2TSO": 123.45,
      "engine2CSN": 123.45,
      "engine2CSO": 987.65,
      "apuTSN": 123.45,
      "apuTSO": 987.65,
      "apuCSN": 123.45,
      "apuCSO": 987.65,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "maintenanceItem": [MaintenanceItem],
      "ComponentUsageLog": [ComponentUsageLog]
    }
  }
}

createMaintenanceItemTransaction

Response

Returns a MaintenanceItem!

Example

Query
mutation createMaintenanceItemTransaction {
  createMaintenanceItemTransaction {
    id
    createdAt
    orgSlug
    aircraftId
    aircraft {
      ...AircraftFragment
    }
    maintenanceType
    title
    description
    tags {
      ...TagFragment
    }
    ataCode
    manufactureCode
    ataManufactureCode
    notes
    disposition
    otherComponent
    status
    metadata
    trackedByComponentId
    componentID
    cadenceValue
    isOptional
    isRecurring
    nextDueStatus
    calculatedNextDueAt
    remainingValue
    isAdSb
    adSbType
    otherAdSbType
    lastComplianceDate
    lastComplianceStampId
    lastComplianceStamp {
      ...AircraftUsageLogFragment
    }
    importedDataCompliance
    isParent
    parentId
    groupKey
    upstreamId
    parentTask {
      ...MaintenanceItemFragment
    }
    upstreamTask {
      ...MaintenanceItemFragment
    }
    childItems {
      ...MaintenanceItemFragment
    }
    childCount
    downstreamItems {
      ...MaintenanceItemFragment
    }
    complianceInProgress
    maintenanceNextDue {
      ...MaintenanceNextDueFragment
    }
    discrepancyCompActivityId
    discrepancyWorkItemId
    discrepancyStatus
    createdById
    estWorkHours
    relatedMaintenanceItemIds
  }
}
Response
{
  "data": {
    "createMaintenanceItemTransaction": {
      "id": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "orgSlug": "xyz789",
      "aircraftId": "abc123",
      "aircraft": Aircraft,
      "maintenanceType": "INSPECTION",
      "title": "abc123",
      "description": "xyz789",
      "tags": [Tag],
      "ataCode": "xyz789",
      "manufactureCode": "abc123",
      "ataManufactureCode": "xyz789",
      "notes": "abc123",
      "disposition": "xyz789",
      "otherComponent": "abc123",
      "status": "ENABLED",
      "metadata": {},
      "trackedByComponentId": "xyz789",
      "componentID": "abc123",
      "cadenceValue": {},
      "isOptional": false,
      "isRecurring": false,
      "nextDueStatus": "OVERDUE",
      "calculatedNextDueAt": "2007-12-03T10:15:30Z",
      "remainingValue": 987.65,
      "isAdSb": false,
      "adSbType": "DISCREPANCY",
      "otherAdSbType": "xyz789",
      "lastComplianceDate": "2007-12-03T10:15:30Z",
      "lastComplianceStampId": "abc123",
      "lastComplianceStamp": AircraftUsageLog,
      "importedDataCompliance": {},
      "isParent": false,
      "parentId": "abc123",
      "groupKey": "abc123",
      "upstreamId": "abc123",
      "parentTask": MaintenanceItem,
      "upstreamTask": MaintenanceItem,
      "childItems": [MaintenanceItem],
      "childCount": 123,
      "downstreamItems": [MaintenanceItem],
      "complianceInProgress": false,
      "maintenanceNextDue": [MaintenanceNextDue],
      "discrepancyCompActivityId": "xyz789",
      "discrepancyWorkItemId": "abc123",
      "discrepancyStatus": "OPEN",
      "createdById": "abc123",
      "estWorkHours": 123.45,
      "relatedMaintenanceItemIds": [
        "xyz789"
      ]
    }
  }
}

Types

Aircraft

Fields
Field Name Description
id - String!
name - String!
model - String!
tailNumber - String!
serialNumber - String!
metadata - JSON
orgSlug - String!
createdAt - DateTime!
updatedAt - DateTime!
nextDueAt - DateTime
AircraftUsageLog - [AircraftUsageLog]!
Arguments
limit - Int
orderBy - String
Example
{
  "id": "xyz789",
  "name": "abc123",
  "model": "xyz789",
  "tailNumber": "abc123",
  "serialNumber": "xyz789",
  "metadata": {},
  "orgSlug": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "nextDueAt": "2007-12-03T10:15:30Z",
  "AircraftUsageLog": [AircraftUsageLog]
}

AircraftUsageLog

Fields
Field Name Description
id - String!
aircraftId - String
aircraft - Aircraft!
usageAsOf - DateTime!
airframeTotalTime - Float!
airframeCycle - Float!
engine1TSN - Float!
engine1TSO - Float!
engine1CSN - Float!
engine1CSO - Float!
engine2TSN - Float!
engine2TSO - Float!
engine2CSN - Float!
engine2CSO - Float!
apuTSN - Float!
apuTSO - Float!
apuCSN - Float!
apuCSO - Float!
createdAt - DateTime!
updatedAt - DateTime!
maintenanceItem - [MaintenanceItem]!
ComponentUsageLog - [ComponentUsageLog]!
Example
{
  "id": "xyz789",
  "aircraftId": "abc123",
  "aircraft": Aircraft,
  "usageAsOf": "2007-12-03T10:15:30Z",
  "airframeTotalTime": 987.65,
  "airframeCycle": 987.65,
  "engine1TSN": 123.45,
  "engine1TSO": 123.45,
  "engine1CSN": 987.65,
  "engine1CSO": 987.65,
  "engine2TSN": 123.45,
  "engine2TSO": 987.65,
  "engine2CSN": 987.65,
  "engine2CSO": 123.45,
  "apuTSN": 123.45,
  "apuTSO": 123.45,
  "apuCSN": 987.65,
  "apuCSO": 123.45,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "maintenanceItem": [MaintenanceItem],
  "ComponentUsageLog": [ComponentUsageLog]
}

Boolean

Description

The Boolean scalar type represents true or false.

ComponentUsageLog

Fields
Field Name Description
id - String!
orgSlug - String!
aircraftId - String!
aircraft - Aircraft!
usageLogId - String
aircraftUsageLog - AircraftUsageLog
componentId - String!
usageAsOf - DateTime!
totalTimeSinceNew - Float!
timeSinceOverhaul - Float!
timesSinceRepair - Float!
cycleSinceNew - Float!
cycleSinceOverhaul - Float!
cyclesSinceRepair - Float!
createdAt - DateTime!
updatedAt - DateTime!
usageLoggedById - String!
MaintenanceNextDue - [MaintenanceNextDue]!
Example
{
  "id": "xyz789",
  "orgSlug": "xyz789",
  "aircraftId": "abc123",
  "aircraft": Aircraft,
  "usageLogId": "abc123",
  "aircraftUsageLog": AircraftUsageLog,
  "componentId": "abc123",
  "usageAsOf": "2007-12-03T10:15:30Z",
  "totalTimeSinceNew": 987.65,
  "timeSinceOverhaul": 987.65,
  "timesSinceRepair": 987.65,
  "cycleSinceNew": 987.65,
  "cycleSinceOverhaul": 987.65,
  "cyclesSinceRepair": 123.45,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "usageLoggedById": "abc123",
  "MaintenanceNextDue": [MaintenanceNextDue]
}

DateTime

Description

A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the date-time format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.

Example
"2007-12-03T10:15:30Z"

DiscrepancyStatus

Values
Enum Value Description

OPEN

CLOSED

DEFERRED

Example
"OPEN"

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

JSON

Description

The JSON scalar type represents JSON values as specified by ECMA-404.

Example
{}

MaintenanceItem

Fields
Field Name Description
id - String!
createdAt - DateTime!
orgSlug - String!
aircraftId - String!
aircraft - Aircraft!
maintenanceType - MaintenanceType!
title - String!
description - String!
tags - [Tag]!
ataCode - String!
manufactureCode - String!
ataManufactureCode - String!
notes - String
disposition - String!
otherComponent - String
status - MaintenanceStatus!
metadata - JSON!
trackedByComponentId - String!
componentID - String
cadenceValue - JSON!
isOptional - Boolean!
isRecurring - Boolean!
nextDueStatus - MaintenanceNextDueStatus!
calculatedNextDueAt - DateTime
remainingValue - Float!
isAdSb - Boolean!
adSbType - UnscheduledTaskTypes
otherAdSbType - String
lastComplianceDate - DateTime
lastComplianceStampId - String
lastComplianceStamp - AircraftUsageLog
importedDataCompliance - JSON!
isParent - Boolean!
parentId - String
groupKey - String
upstreamId - String
parentTask - MaintenanceItem
upstreamTask - MaintenanceItem
childItems - [MaintenanceItem]!
childCount - Int!
downstreamItems - [MaintenanceItem]!
complianceInProgress - Boolean!
maintenanceNextDue - [MaintenanceNextDue]!
Arguments
isCompleted - Boolean
discrepancyCompActivityId - String
discrepancyWorkItemId - String
discrepancyStatus - DiscrepancyStatus
createdById - String
estWorkHours - Float
relatedMaintenanceItemIds - [String!]!
Example
{
  "id": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "orgSlug": "xyz789",
  "aircraftId": "abc123",
  "aircraft": Aircraft,
  "maintenanceType": "INSPECTION",
  "title": "abc123",
  "description": "xyz789",
  "tags": [Tag],
  "ataCode": "xyz789",
  "manufactureCode": "xyz789",
  "ataManufactureCode": "xyz789",
  "notes": "abc123",
  "disposition": "xyz789",
  "otherComponent": "xyz789",
  "status": "ENABLED",
  "metadata": {},
  "trackedByComponentId": "abc123",
  "componentID": "xyz789",
  "cadenceValue": {},
  "isOptional": false,
  "isRecurring": false,
  "nextDueStatus": "OVERDUE",
  "calculatedNextDueAt": "2007-12-03T10:15:30Z",
  "remainingValue": 987.65,
  "isAdSb": false,
  "adSbType": "DISCREPANCY",
  "otherAdSbType": "abc123",
  "lastComplianceDate": "2007-12-03T10:15:30Z",
  "lastComplianceStampId": "xyz789",
  "lastComplianceStamp": AircraftUsageLog,
  "importedDataCompliance": {},
  "isParent": true,
  "parentId": "xyz789",
  "groupKey": "xyz789",
  "upstreamId": "abc123",
  "parentTask": MaintenanceItem,
  "upstreamTask": MaintenanceItem,
  "childItems": [MaintenanceItem],
  "childCount": 987,
  "downstreamItems": [MaintenanceItem],
  "complianceInProgress": true,
  "maintenanceNextDue": [MaintenanceNextDue],
  "discrepancyCompActivityId": "abc123",
  "discrepancyWorkItemId": "abc123",
  "discrepancyStatus": "OPEN",
  "createdById": "abc123",
  "estWorkHours": 123.45,
  "relatedMaintenanceItemIds": ["abc123"]
}

MaintenanceItemTag

Fields
Field Name Description
id - String!
maintenanceItemId - String!
maintenanceItem - MaintenanceItem!
tagId - String!
tag - Tag!
Example
{
  "id": "xyz789",
  "maintenanceItemId": "abc123",
  "maintenanceItem": MaintenanceItem,
  "tagId": "abc123",
  "tag": Tag
}

MaintenanceNextDue

Fields
Field Name Description
id - String!
orgSlug - String
maintenanceItemId - String
maintenanceItem - MaintenanceItem
isCompleted - Boolean!
nextDueValue - JSON!
nextDueOverride - JSON
nextDueOverrideBy - String
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "id": "abc123",
  "orgSlug": "xyz789",
  "maintenanceItemId": "abc123",
  "maintenanceItem": MaintenanceItem,
  "isCompleted": false,
  "nextDueValue": {},
  "nextDueOverride": {},
  "nextDueOverrideBy": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

MaintenanceNextDueStatus

Values
Enum Value Description

OVERDUE

IN_TOLERANCE

APPROACHING_DUE

GOOD

NOT_DUE

Example
"OVERDUE"

MaintenanceStatus

Values
Enum Value Description

ENABLED

DISABLED

Example
"ENABLED"

MaintenanceType

Values
Enum Value Description

INSPECTION

PART

UNSCHEDULED

Example
"INSPECTION"

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"

Tag

Fields
Field Name Description
id - String!
name - String!
description - String
maintenanceItems - [MaintenanceItemTag]!
Example
{
  "id": "xyz789",
  "name": "abc123",
  "description": "abc123",
  "maintenanceItems": [MaintenanceItemTag]
}

UnscheduledTaskTypes

Values
Enum Value Description

DISCREPANCY

SQUAK

MEL

NEF

WATCH_LIST

AIRWORTHINESS_DIRECTIVE

SERVICE_BULLETIN

SERVICE_LETTER

AD_SB

SPECIAL_AD

EMERGENCY_AD

RECURRING_AD

ALERT_SB

MANDATORY_SB

OTHER

Example
"DISCREPANCY"