npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

onair-api

v2.8.8

Published

Node.js package to query the OnAir API

Readme

Typescript/Javascript package for querying the OnAir API

A Typescript/Javascript wrapper around the OnAir Airline Manager's API.

NPM Version Build Status

Installation

npm i -s onair-api

Usage

The required apiKey and optional companyId can be found in the lower left corner of the options screen within the OnAir Desktop client, if You need additional help locating these ID's check the How To in the wiki.

  • apiKey - required, used on all Api calls to authenticate the caller
  • companyId - Optional, except for all getCompany* methods
  • vaId - Optional, except for all getVirtualAirline* methods

Example using Javascript

import OnAirApi from 'onair-api'

// define the prerequisite keys
// apiKey and companyId can be found in the lower left corner of the options screen within the OnAir Desktop client
const apikey = 'YOUR-API-KEY'
const companyId = 'YOUR-COMPANY-ID'

// instantiate the OnAirApi
const Api = new OnAirApi({ apiKey, companyId });

/**
 * call one of the Api methods, like getCompany
 * which will query the OnAir API using the above credentials
 * and returns the company details
 */
let company = await Api.getCompany();
// do something with the company data

Example using Typescript

import OnAirApi, { Company, OnAirApiConfig, } from 'onair-api'

// build the OnAirApiConfig object
const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

// instantiate a new OnAirApi class
const api: Api = new OnAirApi(apiConfig);
/**
 * call one of the Api methods, like getCompany
 * which will query the OnAir API using the above credentials
 * and returns the company details
 */
let companyDetails: Company = await api.getCompany();
// or pass another companyId as the first argument
let companyDetails: Company[] = await api.getCompany('35f37dab-59ef-4fdb-b5d5-e7851def1276');

// then do something with the company data

Methods

Table of Contents

getCompany(companyId?:string)

Fetches the company details for the given companyId.

Usage

import OnAirApi, { Company, OnAirApiConfig, } from 'onair-api'


const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let companyDetails: Company = await api.getCompany();
// or pass another companyId as the first argument
let companyDetails: Company[] = await api.getCompanyFbos(companyId);

Example Response

getCompanyDashboard(companyId?:string)

Fetches the company dashboard for the given companyId.

Usage

import OnAirApi, { Company, OnAirApiConfig, } from 'onair-api'


const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let companyDetails: CompanyDashboard = await api.getCompanyDashboard();
// or pass another companyId as the first argument
let companyDetails: CompanyDashboard = await api.getCompanyFbos(companyId);

Example Response

getCompanyFbos(companyId?:string)

Fetches the FBOs for a given companyId.

Usage

import OnAirApi, { Fbo, OnAirApiConfig, } from 'onair-api'


const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let companyFbos: Fbo[] = await api.getCompanyFbos();
// or pass another companyId as the first argument
let companyFbos: Fbo[] = await api.getCompanyFbos(companyId);

Example Response

getCompanyFleet(companyId?:string)

Fetches the aircraft that are owned, leased, or rented for a given companyId.

Usage

import OnAirApi, { Aircraft, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let companyFleet: Aircraft[] = await api.getCompanyFleet();
// or pass another companyId as the first argument
let companyFleet: Aircraft[] = await api.getCompanyFleet(companyId);

Example Response

getCompanyFlights(companyId?:string, page:number = 1, limit:number = 20)

Fetches the Flights for a given companyId.

Usage

import OnAirApi, { Flight, OnAirApiConfig, } from 'onair-api'


const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let companyFlights: Flight[] = await api.getCompanyFlights();
// or pass another companyId as the first argument
let companyFlights: Flight[] = await api.getCompanyFlights(companyId)

Example Response

getCompanyJobs(companyId?, completed = false)

Fetches the pending jobs for a given companyId. Pass true as the first argument to return completed jobs.

Usage

import OnAirApi, { Job, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let companyJobs: Job[] = await api.getCompanyJobs();
// or pass in another companyId as the first argument to get the completed jobs for that company
let companyJobs: Job[] = await api.getCompanyJobs(companyId);

// pass true as the second argument to return the completed jobs for the Api instanciated companyId
let completedCompanyJobs: Job[] = await api.getCompanyJobs(undefined, true);
let companyJobs: Job[] = await api.getCompanyJobs(companyId, true);

Example Response

getCompanyEmployees()

Fetches the Persons currently employed by a given companyId.

Usage

import OnAirApi, { People, OnAirApiConfig, } from 'onair-api'


const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let companyEmployees: People[] = await api.getCompanyEmployees();

Example Response

getCompanyCashFlow()

Fetches the cash flow for a given companyId.

Usage

import OnAirApi, { CashFlow, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let companyCashFlow: CashFlow[] = await api.getCompanyCashFlow();

Example Response


getCompanyIncomeStatement(startDate: string, endDate: string)

Fetches the income statement within a given range for a companyId. If no startDate or endDate is provided it will return the last 30 days.

Usage

import OnAirApi, { IncomeStatement, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
// no startDate or endDate provided, returns 30 days
let companyIncomeStatement: IncomeStatement = await api.getCompanyIncomeStatement();

// providing a startDate and endDate
const startDate = '2021-12-01T00:00:00';
const endDate = '2022-01-30T02:58:39.104Z';

let companyIncomeStatement2: IncomeStatement = await api.getCompanyIncomeStatement(startDate, endDate)

Example Response

getCompanyBalanceSheet()

Fetches the company's current balance sheet. Which provides a current snapshot of the financial status of a company.

Usage

import OnAirApi, { BalanceSheet, OnAirApiConfig, } from 'onair-api'


const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let balancesheet: BalanceSheet = await api.getCompanyBalanceSheet();

Example Response

getCompanyWorkOrders()

Fetches the company's currently generated work orders.

Usage

import OnAirApi, { WorkOrder, OnAirApiConfig, } from 'onair-api'


const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let workorders: WorkOrder = await api.getCompanyWorkOrders();

Example Response

getCompanyAircraftWorkOrders(aircraftId:string, companyId?:string)

Fetches the company's currently generated work orders for a given aircraft.

Usage

import OnAirApi, { WorkOrder, OnAirApiConfig, } from 'onair-api'


const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
const aircraftId = '73baa73c-01e3-4aae-b99b-29cff83c7f37';
let workorders: WorkOrder = await api.getCompanyAircraftWorkOrders(aircraftId);

Example Response

getCompanyNotifications()

Fetches the recent notifications for the given companyId

Usage

import OnAirApi, { Notification, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
// by default, will return the notifications for the Api instantiated companyId
let companyNotifications: Notification[] = await api.getCompanyNotifications();
// or
// pass a companyId as the first argument to load the notifications for the given Company
let someOtherCompaniesNotifications: Notification[] = await api.getCompanyNotifications('SOME-OTHER-COMPANY-ID');

Example Response

getAircraft(aircraftId: string)

Fetches the Aircraft details for a given aircraftId.

Usage

import OnAirApi, { Aircraft, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
const aircraftId = '9891d561-def7-438c-9097-d3336989af93';
let companyAircraft: Aircraft = await api.getAircraft(aircraftId);

Example Response

getAircraftMaintenanceCosts(aircraftId: string)

Fetches the Aircraft details for a given aircraftId.

Usage

import OnAirApi, { MaintenanceCost, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
const aircraftId = '9891d561-def7-438c-9097-d3336989af93';
let maintenanceCost: MaintenanceCost = await api.getAircraftMaintenanceCosts(aircraftId);

Example Response

getAircraftEconomicDetails(aircraftId: string)

Fetches the Aircraft details for a given aircraftId.

Usage

import OnAirApi, { EconomicDetail, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
const aircraftId = '9891d561-def7-438c-9097-d3336989af93';
let economicDetail: EconomicDetail = await api.getAircraftEconomicDetails(aircraftId);

Example Response

getAircraftFlights(aircraftId: string)

Fetches the Flights flown for a given aircraftId.

Usage

import OnAirApi, { Flight, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
const aircraftId = '9891d561-def7-438c-9097-d3336989af93';
let companyAircraftFlights: Flight[] = await api.getAircraftFlights(aircraftId);

Example Response

getAircraftAtAirport(aircraftTypeId: string)

Fetches the Aircraft currently at a given airport code.

Usage

import OnAirApi, { Aircraft, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let aircraft: Aircraft = await api.getAircraftAtAirport('KPHX');

Example Response

getAirport(airportCode: string)

Fetches Airport details for a given airport Code.

Usage

import OnAirApi, { Airport, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
const airportCode = 'KLAX';
let airport: Airport = await api.getAirport(airportCode);

Example Response

getFlight(flightId: string)

Fetches Flight details for a given flightId.

Usage

import OnAirApi, { Flight, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
const flightId = '9891d561-def7-438c-9097-d3336989af93';
let flight: Flight = await api.getFlight(flightId);

Example Response

getVirtualAirline()

Fetches VirtualAirline details for a given vaId. Note: this requires the vaId to be provided during Api instantiation

Usage

import OnAirApi, { VirtualAirline, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let va: VirtualAirline = await api.getVirtualAirline();

Example Response

getVirtualAirlineMembers()

Fetches the members of a Virtual Airline for a given vaId.

Usage

import OnAirApi, { Member, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let vaMembers: Member[] = await api.getVirtualAirlineMembers();

Example Response

getVirtualAirlineShareHolders()

Fetches the ShareHolders of a Virtual Airline for a given vaId.

Usage

import OnAirApi, { ShareHolder, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let vaShareHolders: ShareHolder[] = await api.getVirtualAirlineShareHolders();

Example Response

getVirtualAirlineRoles()

Fetches the Roles for a given vaId.

Usage

import OnAirApi, { VARole, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let roles: VARole[] = await api.getVirtualAirlineRoles();

Example Response

getVirtualAirlineFlights()

Fetches the Roles for a given vaId.

Usage

import OnAirApi, { Flight, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let vaFlights: Flight[] = await api.getVirtualAirlineFlights();

Example Response

getVirtualAirlineFleet()

Fetches the Roles for a given vaId.

Usage

import OnAirApi, { Aircraft, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let vaFleet: Aircraft[] = await api.getVirtualAirlineFleet();

Example Response

getVirtualAirlineJobs(vaId?:string, completed = false)

Fetches the current pending jobs for the given VA, if the second parameter is passed as true, it will return the completed jobs.

Usage

import OnAirApi, { Job, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let vaJobs: Job[] = await api.getVirtualAirlineJobs();

Example Response

getVirtualAirlineWorkOrders(virtualAirlineId?:string)

Fetches the Virtual Airline's currently generated work orders.

Usage

import OnAirApi, { WorkOrder, OnAirApiConfig, } from 'onair-api'


const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
let workorders: WorkOrder = await api.getVirtualAirlineWorkOrders();

Example Response

getVirtualAirlineNotifications()

Fetches the recent notifications for the given vaId

Usage

import OnAirApi, { Notification, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
// by default, will return the notifications for the Api instantiated VA using the passed vaId
let vaNotifications: Notification[] = await api.getVirtualAirlineNotifications();
// or
// pass a valid VirtualAirline Id as the first argument to load the notifications for the given VA
let someOtherVAsNotifications: Notification[] = await api.getVirtualAirlineNotifications('SOME-OTHER-VA-ID');

Example Response

getVirtualAirlineIncomeStatement(vaId?:string, startDate?:string|undefined, endDate?:string|undefined)

Fetches the income statement within a given range for a given vaId. If no startDate or endDate is provided it will return the last 30 days. If either startDate or endDate is provided, it will return the last 30 days from the provided date.

Usage

import OnAirApi, { IncomeStatement, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
// no startDate or endDate provided, returns the last 30 days
let virtualAirlineIncomeStatement: IncomeStatement = await api.getVirtualAirlineIncomeStatement();
// or
// providing a startDate and endDate
const startDate = '2021-12-01T00:00:00';
const endDate = '2022-01-30T02:58:39.104Z';

let virtualAirlineIncomeStatement2: IncomeStatement = await api.getVirtualAirlineIncomeStatement(startDate, endDate)

Example Response

getEmployee(employeeId: string)

Fetches details for a given employeeId.

Usage

import OnAirApi, { People, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
const employeeId = '596b6c2e-4ac7-44e9-b1d4-a4299030cb04';
let employee_details: People = await api.getEmployee(employeeId);

Example Response

getFboJobs(fboId: string)

Fetches pending jobs for a given fboId.

Usage

import OnAirApi, { Job, OnAirApiConfig, } from 'onair-api'

const apiConfig: OnAirApiConfig = {
  apiKey: 'YOUR-API-KEY',
  companyId: 'YOUR-COMPANY-ID',
  vaId: 'YOUR-VA-ID'
};

const api: Api = new OnAirApi(apiConfig);
const fboId = '35f37dab-59ef-4fdb-b5d5-e7851def1276';
let pendingFBOJobs: Job[] = await api.getFboJobs(fboId);

Example Response


Examples

Example using the dotenv package

import 'dotenv/config'
import { OnAirApi, } from 'onair-api'

(async function () {
    const apiKey = process.env.COMPANY_APIKEY;
    const companyId = process.env.COMPANY_ID;
    const vaId = process.env.VIRTUAL_AIRLINE_ID;

    const Api = new OnAirApi({ apiKey, companyId, vaId, });

    let company = await Api.getCompanyDetails();
    let fleet = await Api.getCompanyFleet();

    console.log({
        company,
        fleet,
    });
})();

Typescript Example using dotenv package and onair-api types

import 'dotenv/config'
import { OnAirApi, } from 'onair-api'
import { Company, Aircraft, Api, } from 'onair-api/src/types'

(async function () {
    const apiKey: string = process.env.COMPANY_APIKEY;
    const companyId: string = process.env.COMPANY_ID;
    const vaId = process.env.VIRTUAL_AIRLINE_ID;

    const api: Api = new OnAirApi({ apiKey, companyId, vaId, });

    let company: Company = await api.getCompanyDetails();
    let fleet: Aircraft[] = await api.getCompanyFleet();

    console.log({
        company,
        fleet,
    });
})();