FieldRoutes API docs logoFieldRoutes API

Scheduling

appointment

7 endpoints. Start at search to collect IDs, then resolve them through get.

Destructive · 1

Read operations

get/appointment/getTry it

get appointment

Get Bulk data for appointment. Accepts an array of appointmentIDs. Returns a max of 1000 records.

Parameters

appointmentIDsarray

No description in the upstream reference.

includeCancellationReasoninteger

Send as 1 to retrieve an additional field cancellationReason.

includeTargetPestsinteger

Send as 1 to retrieve an additional field targetPests as an array of integers.

includeCustomFieldsinteger

Send as 1 to retrieve an additional field customFields as an array of Custom Fields names and values.

Returns

appointmentIDinteger

Unique Identifier

officeIDinteger

The ID of the office this appointment belongs to.

customerIDinteger

The ID of the customer this appointment belongs to.

subscriptionIDinteger

The ID of the subscription if this appointment belongs to a subscription. If an appointment is attached to a subscription it inherits its pricing as well as other defaults. It also resets the next due date upon completion. Stand alone services or reservices will be a -1.

subscriptionRegionIDinteger

RegionID of the subscription if this appointment belongs to a one. For stand alone services or reservices it will be -1.

routeIDinteger

The ID of the route that this appointment is assigned to.

spotIDinteger

The ID of the spot that this appointment is assigned to. Null indicates an appointment that is flexible on route.

datestring

The date this appointment is scheduled for.

Request

/appointment/get
curl -X POST 'https://{subdomain}.pestroutes.com/api/appointment/get' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'appointmentIDs=value' \
  --data-urlencode 'includeCancellationReason=1' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
]
count:2
}
by id/appointment/{id}Try it

Fetch by id appointment

Get appointment data for single ID -- please provide a specific record ID in the URL structure.

Parameters

includeCancellationReasoninteger

Send as 1 to retrieve an additional field cancellationReason.

includeTargetPestsinteger

Send as 1 to retrieve an additional field targetPests as an array of integers.

includeCustomFieldsinteger

Send as 1 to retrieve an additional field customFields as an array of Custom Fields names and values.

Returns

appointmentIDinteger

Unique Identifier

officeIDinteger

The ID of the office this appointment belongs to.

customerIDinteger

The ID of the customer this appointment belongs to.

subscriptionIDinteger

The ID of the subscription if this appointment belongs to a subscription. If an appointment is attached to a subscription it inherits its pricing as well as other defaults. It also resets the next due date upon completion. Stand alone services or reservices will be a -1.

subscriptionRegionIDinteger

RegionID of the subscription if this appointment belongs to a one. For stand alone services or reservices it will be -1.

routeIDinteger

The ID of the route that this appointment is assigned to.

spotIDinteger

The ID of the spot that this appointment is assigned to. Null indicates an appointment that is flexible on route.

datestring

The date this appointment is scheduled for.

Request

/appointment/{id}
curl -X POST 'https://{subdomain}.pestroutes.com/api/appointment/{id}' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'includeCancellationReason=1' \
  --data-urlencode 'includeTargetPests=1' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
appointmentID:7501
officeID:2602
customerID:2124
subscriptionID:5259
subscriptionRegionID:5471
routeID:7511
spotID:8336
date:"2026-05-06 00:00:00"
start:"sample-start"
end:"sample-end"
duration:1
type:0
dateAdded:"2026-08-10 00:00:00"
employeeID:5916
status:2
statusText:"Active"
callAhead:2
isInitial:1
subscriptionPreferredTech:2
completedBy:1
servicedBy:2
dateCompleted:"2026-06-30 00:00:00"
notes:"Sample value returned by the mock engine."
officeNotes:"Sample value returned by the mock engine."
timeIn:"2026-03-27 00:00:00"
timeOut:"2026-01-05 00:00:00"
checkIn:"sample-checkIn"
checkOut:"sample-checkOut"
windSpeed:1
windDirection:"sample-windDirection"
temperature:2
amountCollected:182.5
paymentMethod:2
servicedInterior:0
ticketID:1786
dateCancelled:"2026-05-27 00:00:00"
additionalTechs:"sample-additionalTechs"
cancellationReason:"sample-cancellationReason"
unitIDs:2
targetPests:0
appointmentNotes:"Sample value returned by the mock engine."
doInterior:0
dateUpdated:"2026-04-07 00:00:00"
cancelledBy:1
assignedTech:1
latIn:65.5
latOut:84.5
longIn:126.5
longOut:175.5
sequence:1
}
}

Write operations

create/appointment/createTry it

create appointment

Parameters

startstring

Start Time Window

endstring

End Time Window

durationinteger

Number of minutes this appointment should last

employeeIDinteger

employeeID to whom this appointment belongs

notesstring

Appointment Notes spotID - Specify to fix this appointment to a spot

routeIDinteger

Specify to fix this appointment on a route.

callAheadinteger

Number of minutes ahead of the appointment start time to call

subscriptionIDinteger

Specify the subscriptionID this appointment is associated with

Returns

Returns a success acknowledgement.

Request

/appointment/create
curl -X POST 'https://{subdomain}.pestroutes.com/api/appointment/create' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'start=value' \
  --data-urlencode 'end=value' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
appointmentID:4821
}
update/appointment/updateTry it

update appointment

Parameters

customerIDinteger

customerID associated with the appointment

typeinteger

serviceID to perform

startstring

Start Time Window

endstring

End Time Window

durationinteger

Number of minutes this appointment should last

employeeIDinteger

employeeID to whom this appointment belongs

notesstring

Appointment Notes spotID - Specify to fix this appointment to a spot

routeIDinteger

Specify to fix this appointment on a route.

Returns

Returns a success acknowledgement.

Request

/appointment/update
curl -X POST 'https://{subdomain}.pestroutes.com/api/appointment/update' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'customerID=1' \
  --data-urlencode 'type=1' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
appointmentID:4821
}
complete/appointment/completeTry it

complete appointment

Complete specified appointmentID

Parameters

statusinteger

The status of an appointment which can include:0: Pending, 1: Completed, 2: No Show

completionNotesstring

No description in the upstream reference.

officeNotesstring

No description in the upstream reference.

flagNotesstring

No description in the upstream reference.

timeInstring

No description in the upstream reference.

timeOutstring

No description in the upstream reference.

checkInstring

No description in the upstream reference.

checkOutstring

No description in the upstream reference.

Returns

Returns a success acknowledgement.

Request

/appointment/complete
curl -X POST 'https://{subdomain}.pestroutes.com/api/appointment/complete' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'status=1' \
  --data-urlencode 'completionNotes=value' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
appointmentID:4821
}

Destructive operations

cancel/appointment/cancelTry it

cancel appointment

Cancel specified appointmentID

Parameters

cancelReasonstring

Cancel Reason

cancelledByinteger

employeeID that cancelled the appointment

Returns

Returns a success acknowledgement.

Request

/appointment/cancel
curl -X POST 'https://{subdomain}.pestroutes.com/api/appointment/cancel' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  --data-urlencode 'cancelReason=value' \
  --data-urlencode 'cancelledBy=1' \
  --data-urlencode 'authenticationKey=<your-key>' \
  --data-urlencode 'authenticationToken=<your-token>'

Response

success:true
appointmentID:4821
}