Skip to main content

Work Orders

WorkOrder objects represent work orders from AppFolio®. Skywalk API allows you to obtain the following work order attributes from AppFolio®.

The WorkOrder Object​

Attributes


appfolioIdstring
Unique AppFolio ID for the work order.
Example:
"123"

workOrderNumberstring
Work Order Number for the work order.
Example:
"12345-1"

workOrderTypestring
Work Order Type for the work order.
Example:
"Internal"

occupancyIdstring
Occupancy for the work order; if set
Example:
"320"

unitTurnIdstring
Unit turn id for the work order; if set
Example:
null

vendorIdstring
Vendor ID for the work order.
Example:
null

prioritystring
Priority for the work order.
Example:
"Normal"

statusstring
Status for the work order.
Example:
"Ready to Bill"

jobDescriptionstring
Job description for the work order.
Example:
"Toilet is clogged!"

instructionsstring
Istructions for the work order.
Example:
null

createdAtstring
Date created at for the work order.
Example:
"01/01/2024"

createdBystring
Created by for the work order.
Example:
"Tenant"


More Attributes


➕
workOrderIssuestring

➕
recurringstring

➕
submittedByTenantstring

➕
requestingTenantstring

➕
unitTurnCategorystring

➕
surveyIdstring

➕
vendorstring

➕
primaryTenantstring

➕
primaryTenantEmailstring

➕
primaryTenantPhoneNumberstring

➕
statusNotesstring

➕
assignedUserstring

➕
estimatedOnstring

➕
scheduledStartstring

➕
scheduledStartSortstring

➕
scheduledEndstring

➕
workCompletedOnstring

➕
completedOnstring

➕
lastBilledOnstring

➕
cancelledOnstring

➕
followUpOnstring

➕
amountstring

➕
invoicestring

➕
tenantTotalChargeAmountstring

➕
tenantChargeIdsstring[]

➕
vendorBillIdstring

➕
vendorBillAmountstring

➕
vendorChargeIdstring

➕
vendorChargeAmountstring

➕
markupAmountstring

➕
markupBillIdstring

➕
discountAmountstring

➕
discountBillIdstring

➕
corporateChargeAmountstring

➕
corporateChargeIdstring

➕
estimate.amountstring

➕
estimate.approvalStatusstring

➕
estimate.approvedOnstring

➕
estimate.requestedOnstring

➕
estimate.approvalLastRequestedOnstring

➕
serviceRequest.appfolioIdstring

➕
serviceRequest.numberstring

➕
serviceRequest.descriptionstring

➕
property.fullstring

➕
property.citystring

➕
property.statestring

➕
property.streetstring

➕
property.street2string

➕
property.zipstring

➕
unit.addressstring

➕
unit.citystring

➕
unit.statestring

➕
unit.streetstring

➕
unit.street2string

➕
unit.zipstring

The WorkOrder Object
{
"appfolioId": "123",
"workOrderNumber": "12345-1",
"workOrderType": "Internal",
"workOrderIssue": null,
"recurring": "No",
"submittedByTenant": "Yes",
"requestingTenant": "Duffy, Brian",
"occupancyId": "320",
"unitTurnId": null,
"unitTurnCategory": null,
"surveyId": null,
"vendorId": null,
"vendor": null,
"primaryTenant": "Duffy, Brian",
"primaryTenantEmail": "duffy@dummy.com",
"primaryTenantPhoneNumber": "Phone: (111)111-1111",
"priority": "Normal",
"status": "Ready to Bill",
"statusNotes": null,
"jobDescription": "Toilet is clogged!",
"instructions": null,
"createdAt": "01/01/2024",
"createdBy": "Tenant",
"assignedUser": null,
"estimatedOn": null,
"scheduledStart": null,
"scheduledStartSort": null,
"scheduledEnd": null,
"workCompletedOn": null,
"completedOn": null,
"lastBilledOn": null,
"cancelledOn": null,
"followUpOn": null,
"amount": "0.00",
"invoice": null,
"tenantTotalChargeAmount": null,
"tenantChargeIds": null,
"vendorBillId": null,
"vendorBillAmount": null,
"vendorChargeId": null,
"vendorChargeAmount": null,
"markupAmount": null,
"markupBillId": null,
"discountAmount": null,
"discountBillId": null,
"corporateChargeAmount": null,
"corporateChargeId": null,
"estimate": {
"amount": null,
"approvalStatus": null,
"approvedOn": null,
"requestedOn": null,
"approvalLastRequestedOn": null
},
"serviceRequest": {
"appfolioId": "20012",
"number": "26952",
"description": "Toilet is clogged!"
},
"property": {
"appfolioId": "7",
"full": "1234 Warm Weather Rd., CA 90001",
"name": "Warm Weather Apartments",
"street": "1234 Warm Weather Rd.",
"street2": "",
"city": "Los Angeles",
"state": "CA",
"zip": "90001"
},
"unit": {
"appfolioId": "210",
"address": "1234 Warm Weather Rd., CA 90001",
"title": "101",
"street": "1234 Warm Weather Rd.",
"street2": "101",
"city": "Los Angeles",
"state": "CA",
"zip": "90001"
}
}

Get All Work Orders​

GET /v1/work-orders

Follows: Authentication • Caching • Polling • List Response Format • Scheduled Job

The work order endpoint returns a list of all work orders in your AppFolio® account. Pass occupancyId to limit the results to work orders for a single occupancy. This endpoint should respond immediately with your most recently cached data.

Parameters​


propertyIdselect
AppFolio ID of a Property to serve as a filter.

propertyGroupIdselect
AppFolio ID of a Property Group to serve as a filter.

ownerIdselect
AppFolio ID of an Owner to serve as a filter.

occupancyIdselect
AppFolio ID of an Occupancy. When provided, returns only work orders for that occupancy.

status_dateselect
Filter work orders by date of a specific status.
Default Value:  
All
Possible Values:  
All
Created On
Estimate Requested On
Estimated On
Scheduled Start
Work Done On
Completed On

dateRangeselect
Status Date Range Range for report.
Default Value:  
this_month_to_date
Possible Values:  
today
this_week
this_week_to_date
this_month
this_month_to_date
this_quarter
this_quarter_to_date
this_year_to_date
last_year
last_year_to_date
yesterday
last_week
last_week_to_date
last_month
last_month_to_date
last_quarter
last_quarter_to_date
last_7_days
last_30_days
last_60_days
last_90_days
trailing_12_months
next_7_days
next_30_days
next_60_days
next_90_days
next_week
next_month
next_quarter
until_1_week_ago
until_1_month_ago
all_time

dateFromdate
Status Date Range to given in MM/DD/YYYY (e.g. 01/31/2021)

dateTodate
Status Date Range to given in MM/DD/YYYY (e.g. 01/31/2021)

priorityselect
Filter work orders for a specific priority.
Default Value:  
All
Possible Values:  
Normal
Urgent
Low
All

typeselect
Filter work orders for a specific type.
Default Value:  
All
Possible Values:  
All
Internal
Resident
Unit Turn

statusselect
Filter work orders for a specific status.
Default Value:  
All
Possible Values:  
All
New
Estimate Requested
Estimated
Assigned
Scheduled
Waiting
Work Done
Ready To Bill
Completed
Canceled
Completed No Need To Bill

 

Returns​


The standard List Response Format with a data property containing an array of WorkOrder objects.

GET /v1/work-orders
curl -X GET 'https://api.skywalkapi.com/v1/work-orders' \
-H "X-API-Key: PUT_YOUR_API_KEY_HERE"
Response
{
"meta": {
"status": "ok",
"path": "/v1/work-orders",
"query": {},
"count": 1,
"lastUpdated": 1610992228
},
"links": {
"next": "/v1/work-orders?cursor=abcdefg"
},
"data": [
{
"appfolioId": "123",
"workOrderNumber": "12345-1",
"workOrderType": "Internal",
"workOrderIssue": null,
"recurring": "No",
"submittedByTenant": "Yes",
"requestingTenant": "Duffy, Brian",
"occupancyId": "320",
"unitTurnId": null,
"unitTurnCategory": null,
"surveyId": null,
"vendorId": null,
"vendor": null,
"primaryTenant": "Duffy, Brian",
"primaryTenantEmail": "duffy@dummy.com",
"primaryTenantPhoneNumber": "Phone: (111)111-1111",
"priority": "Normal",
"status": "Ready to Bill",
"statusNotes": null,
"jobDescription": "Toilet is clogged!",
"instructions": null,
"createdAt": "01/01/2024",
"createdBy": "Tenant",
"assignedUser": null,
"estimatedOn": null,
"scheduledStart": null,
"scheduledStartSort": null,
"scheduledEnd": null,
"workCompletedOn": null,
"completedOn": null,
"lastBilledOn": null,
"cancelledOn": null,
"followUpOn": null,
"amount": "0.00",
"invoice": null,
"tenantTotalChargeAmount": null,
"tenantChargeIds": null,
"vendorBillId": null,
"vendorBillAmount": null,
"vendorChargeId": null,
"vendorChargeAmount": null,
"markupAmount": null,
"markupBillId": null,
"discountAmount": null,
"discountBillId": null,
"corporateChargeAmount": null,
"corporateChargeId": null,
"estimate": {
"amount": null,
"approvalStatus": null,
"approvedOn": null,
"requestedOn": null,
"approvalLastRequestedOn": null
},
"serviceRequest": {
"appfolioId": "20012",
"number": "26952",
"description": "Toilet is clogged!"
},
"property": {
"appfolioId": "7",
"full": "1234 Warm Weather Rd., CA 90001",
"name": "Warm Weather Apartments",
"street": "1234 Warm Weather Rd.",
"street2": "",
"city": "Los Angeles",
"state": "CA",
"zip": "90001"
},
"unit": {
"appfolioId": "210",
"address": "1234 Warm Weather Rd., CA 90001",
"title": "101",
"street": "1234 Warm Weather Rd.",
"street2": "101",
"city": "Los Angeles",
"state": "CA",
"zip": "90001"
}
}
]
}