Aircraft owners

An aircraft owner's own aircraft and the jobs on them. Answered for whatever the caller owns or is billed for; anything else answers 404, exactly as an id that does not exist. The one part of the API an owner from outside the organization may call.

7 endpoints · base URL https://api.aerscheduler.com

get/owner/aircraft

List my aircraft

The aircraft the caller owns here, each with its open job and its most urgent open inspections (hours in tenths). Also any aircraft they do not own but have an open job or an unpaid bill on, with owns: false, their own jobs only and none of the aircraft's inspections or times. Empty for a member with neither. Found items waiting on an answer are counted in needsAnswer, and job by job, oldest first, in needsAnswerJobs (jobId, label, count); needsAnswerJobId names the first of them. A job that is closed or invoiced asks for no answers.

Query parameters

limitintegerAircraft to return, 1 to 1000. Defaults to all.
offsetintegerAircraft to skip, for paging. Defaults to 0.

Responses

200OKMy aircraft.→ { data: object[] }
401UnauthorizedNo token, an expired token, a malformed one, or a session token naming a membership that is no longer yours ("Your session is out of date"). Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl https://api.aerscheduler.com/owner/aircraft \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
get/owner/aircraft/{id}

Read one of my aircraft

Its jobs (newest first), every open inspection, and its recent Hobbs and tach readings. mayRecordTimes is true for a customer's aircraft with meters.

Path parameters

idrequiredintegerThe resource id.

Responses

200OKThe aircraft.→ { data: object }
401UnauthorizedNo token, an expired token, a malformed one, or a session token naming a membership that is no longer yours ("Your session is out of date"). Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
404Not FoundNot one of yours.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl https://api.aerscheduler.com/owner/aircraft/:id \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
get/owner/work-orders/{id}

Read a job on my aircraft

The owner's view of a job: where it stands, the items (and which found ones wait on an answer), the files shared with the owner, and, only for the person billed, the charges and the invoice (refunded when handed back in full). A finding the shop has not sent is not shown, nor anything priced against it. lines and chargesCents leave out the lines of findings the owner has not agreed to (still waiting, declined or deferred); once the job is invoiced they are the bill's, every billable line, so chargesCents is the invoice's subtotal, and no item needsAnswer. Each item carries estimateCents, what its billable lines come to (null for anybody but the person billed), answeredByYou, true when the caller gave its answer here, and askedAt, when the shop sent it (null if never), which an answer sends back. mayAnswer is true while the job is open and not invoiced; ownsAircraft says whether the caller owns the aircraft. No shop notes, costs, markups or rates.

Path parameters

idrequiredintegerThe work order id.

Responses

200OKThe job.→ { data: object }
401UnauthorizedNo token, an expired token, a malformed one, or a session token naming a membership that is no longer yours ("Your session is out of date"). Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
404Not FoundNot on your aircraft.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl https://api.aerscheduler.com/owner/work-orders/:id \
  -H "Authorization: Bearer $AERSCHEDULER_KEY"
post/owner/aircraft/{id}/meters

Record my aircraft's times

Exactly as POST /resources/{id}/meters, for the aircraft's owner, on a customer's aircraft only: the school's own aircraft are read at every close-out and answer 403.

Path parameters

idrequiredintegerThe resource id.

Request body

The reading.

hobbsTimeinteger | null
tachTimeinteger | null
readAtstring | null
notestring | null
fileNamestring | null
confirmLowerboolean
meterReplacedboolean
confirmMaintenanceTriggerboolean

Responses

201CreatedThe reading.→ { data: object }
400Bad RequestNot a reading.
401UnauthorizedNo token, an expired token, a malformed one, or a session token naming a membership that is no longer yours ("Your session is out of date"). Sign in again.
403ForbiddenOne of the organization's own aircraft.
404Not FoundNot one of yours.
409Lower than the aircraft, or would ground it: confirm and send again.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl -X POST https://api.aerscheduler.com/owner/aircraft/:id/meters \
  -H "Authorization: Bearer $AERSCHEDULER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"hobbsTime":1,"tachTime":1}'
post/owner/aircraft/{id}/requests

Request work on my aircraft

Opens a Requested job on the shop's board, billed to the aircraft's billed owner. wantedBy (a real date, today or later, within two years) is added to the request; the shop sets the promised date.

Path parameters

idrequiredintegerThe resource id.

Request body

The request.

requeststringWhat you would like done.
wantedBystring | nullWhen you would like it back.

Responses

201CreatedThe job's id and label.→ { data: object }
400Bad RequestNot a request.
401UnauthorizedNo token, an expired token, a malformed one, or a session token naming a membership that is no longer yours ("Your session is out of date"). Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
404Not FoundNot one of yours.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl -X POST https://api.aerscheduler.com/owner/aircraft/:id/requests \
  -H "Authorization: Bearer $AERSCHEDULER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"request":"…","wantedBy":"…"}'
post/owner/work-orders/{id}/answers

Answer the shop's found items

Approve, decline or defer found items still waiting on an answer, on an open job. Any owner of the aircraft answers, or the person the job is billed to; the answer names who gave it. An item already answered or done is refused: call the shop to change an answer. Each answer sends back the item's askedAt from the job: a finding reworded since (or reworded and sent again) is refused with a 409, to be read again first. Refused with a 409 once the job is invoiced.

Path parameters

idrequiredintegerThe work order id.

Request body

The answers.

decisionsobject[]

Responses

201CreatedThe answer as recorded.→ { data: object }
400Bad RequestNot an answer, no askedAt, or already answered.
401UnauthorizedNo token, an expired token, a malformed one, or a session token naming a membership that is no longer yours ("Your session is out of date"). Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
404Not FoundNot on your aircraft.
409Somebody has just answered it, the finding changed since it was read (reload it), or the job is invoiced.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl -X POST https://api.aerscheduler.com/owner/work-orders/:id/answers \
  -H "Authorization: Bearer $AERSCHEDULER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"decisions":[]}'
post/owner/work-orders/{id}/files

Attach photos to a job on my aircraft

Name up to 5 files and upload each to the returned signedUrlData. They are shown to the shop and to you. An owner adds up to 20 files to a job.

Path parameters

idrequiredintegerThe work order id.

Request body

The files.

fileNamesstring[]

Responses

201CreatedThe files, with signedUrlData.→ { data: object[] }
400Bad RequestNo files, or too many.
401UnauthorizedNo token, an expired token, a malformed one, or a session token naming a membership that is no longer yours ("Your session is out of date"). Sign in again.
403ForbiddenAuthenticated, but not allowed to do this.
404Not FoundNot on your aircraft.
429Too Many RequestsRate limited. Retry-After says how long to wait.
Example request
curl -X POST https://api.aerscheduler.com/owner/work-orders/:id/files \
  -H "Authorization: Bearer $AERSCHEDULER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"fileNames":[]}'