CAPA API (current)

The CAPA API aims to be a comprehensive REST interface allowing the programmatic retrieval of all the content that we have available (subject to licensing agreements). It is available as a premium addon to your existing CAPA Membership.

Get an access token

Gets an access token for the user.

IMPORTANT: Note that this is a description of the POST method for /account/token which may not be what you're looking for. If you want to know the basics of obtaining an access token, see the OAuth documentation.

header Parameters
Content-Type
required
string
Value: "application/json"

You must send a Content-Type header. You'll receive (misleading) errors otherwise.

Request Body schema: application/json
required
username
string

User's username.

Required for a password grant.

password
string

User's password.

Required for a password grant.

grant_type
required
string
Enum: "password" "refresh_token" "authorization_code"

Type of grant.

IMPORTANT: Note that third-party clients are unable to use the password grant.

scope
required
string
Value: "user"

Grant scope.

client_id
required
string

ID of the application.

client_secret
required
string

Secret key for the application.

refresh_token
string

If you're doing a token refresh grant, then you need to send through the refresh token that you already have.

code
string

If you are logging in via an authorization code, put it here.

redirect_uri
string

If doing an authorization code grant, this parameter needs to be sent and it needs to match the redirect_uri that was in the original authorization query string.

Responses

Response Schema: application/json
access_token
required
string

The access token for the user.

refresh_token
required
string

The user's refresh token.

expires_in
required
integer

Number of seconds until the access token expires.

token_type
required
string
Value: "Bearer"

The type of token returned.

Request samples

Content type
application/json
{
  • "username": "string",
  • "password": "string",
  • "grant_type": "password",
  • "scope": "user",
  • "client_id": "string",
  • "client_secret": "string",
  • "refresh_token": "string",
  • "code": "string",
  • "redirect_uri": "string"
}

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "refresh_token": "string",
  • "expires_in": 0,
  • "token_type": "Bearer"
}

Delete/expire an access token

This will expire an access token, so it can no longer be used.

Authorizations:
OAuth2

Responses

Response Schema: application/json
data
required
integer

This will be true upon successful expiration.

Response samples

Content type
application/json
{
  • "data": 0
}

Get an authorization code

This will obtain an authorization code for use in an authorization code grant. Normally you don't want to access this, instead follow the information on obtaining an access token for the proper login flow.

Authorizations:
OAuth2
query Parameters
client_id
required
string

The application ID.

response_type
required
string
Value: "code"

The response type required. This will always be "code".

redirect_uri
required
string

The URL to redirect to upon a successful authorization.

scope
required
string
Value: "user"

The scope. We only have one at the moment - "user".

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Account

Get account ID

Get the account ID associated with the current login token.

Authorizations:
OAuth2

Responses

Response Schema: application/json
data
required
integer

The user's ID.

Response samples

Content type
application/json
{
  • "data": 0
}

Create a new user account

Creates a new user account.

If a valid access token is sent with this request, the account created will be a subaccount of the account that the access token belongs to.

Authorizations:
OAuth2
Request Body schema: application/json
required
username
string

User's username. If omitted, the username will be set to the account's email address.

password
required
string >= 8 characters

User's password.

Password must be 8 characters or longer, and contain at least one uppercase character, one lowercase character, and one number.

email
required
string

User's email address.

name
required
string

User's name.

phone
required
string^[0-9\(\)\+\.\s]+

User's phone number.

This is required for new accounts, but optional for subaccounts.

fax
string

User's fax number.

company
required
string

User's company.

This is required for new accounts, but optional for subaccounts.

sector
required
integer

User's industry sector. This is a integer that represents the sector. A list of sectors and their IDs can be accessed at /site/sectors.

This is required for new accounts, but optional for subaccounts.

country
required
integer

User's country. This is an integer that represents the country. A list of countries and their IDs can be accessed at /site/countries.

source
string

Account creation source (used to track lead sources).

trial
boolean

If the account should be on a trial, this sets up a request for it.

Responses

Response Schema: application/json
data
required
integer

The newly created account ID.

Request samples

Content type
application/json
{
  • "username": "string",
  • "password": "stringst",
  • "email": "string",
  • "name": "string",
  • "phone": "string",
  • "fax": "string",
  • "company": "string",
  • "sector": 0,
  • "country": 0,
  • "source": "string",
  • "trial": true
}

Response samples

Content type
application/json
{
  • "data": 0
}

Request a trial account

Creates a request by a user to be given an account with trial level access.

It does not create an actual account.

Request Body schema: application/json
required
name
required
string^.{2,}\s+.{2,}

User's full name.

It must consist of at least two words.

email
required
string

User's email address.

phone
required
string^[0-9\(\)\+\.\s]+

User's phone number.

This is required for new accounts, but optional for subaccounts.

company
required
string

User's company.

This is required for new accounts, but optional for subaccounts.

sector
required
integer

User's industry sector. This is a integer that represents the sector. A list of sectors and their IDs can be accessed at /site/sectors.

This is required for new accounts, but optional for subaccounts.

country
required
integer

User's country. This is an integer that represents the country. A list of countries and their IDs can be accessed at /site/countries.

source
string

Account creation source (used to track lead sources).

position
string

The user's job title.

Responses

Response Schema: application/json
data
required
boolean

If the trial account request has been successfully submitted, true is returned, otherwise false is returned.

Request samples

Content type
application/json
{
  • "name": "string",
  • "email": "string",
  • "phone": "string",
  • "company": "string",
  • "sector": 0,
  • "country": 0,
  • "source": "string",
  • "position": "string"
}

Response samples

Content type
application/json
{
  • "data": true
}

Get account details

This returns the user's account details.

The account ID may be the user's own ID, or the ID of an account that the user has ownership over.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Responses

Response Schema: application/json
required
object
id
required
integer

The user's ID.

username
required
string

The user's username.

object

If the user's account is a subaccount, this is the owner account's details.

id
required
integer

Owner account's ID.

name
required
string

Owner account's name.

email
required
string

Owner account's email address.

object

The details of the account manager assigned to the account.

name
required
string

The account manager's name.

email
required
string

The account manager's email address.

position
required
string

The user's position, or job title.

name
required
string

The user's name.

email
required
string

The user's email address.

company
required
string

The user's company.

phone
required
string

The user's phone number.

fax
string

The user's fax number.

address
string

The user's street address.

suburb
string

The user's suburb or city.

state
string

The user's state.

postcode
string

The user's postcode or ZIP code.

object

The user's country.

id
integer

Country ID.

name
string

Country name.

code
string

2-letter country code.

object

The user's industry sector.

id
required
integer

Sector ID.

name
required
string

Sector name.

created
required
integer

UNIX timestamp of the time the account was created.

bounced
required
boolean

True if the account's email address is marked as having bounced.

mailok
required
boolean

True if it's OK to send email to this user.

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update user's account details

Updates the user's account details with the submitted information.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Request Body schema: application/json
required
username
required
string

User's username. If omitted, the username will be set to the account's email address.

email
required
string

User's email address.

name
required
string^.{2,}\s+.{2,}

User's name.

position
string

The user's job title.

phone
required
string^[0-9\(\)\+\.\s]+

User's phone number.

This is required for parent accounts, but optional for subaccounts.

fax
string^[0-9\(\)\+\.\s]+

User's fax number.

company
required
string

User's company.

This is required for parent accounts, but optional for subaccounts.

sector
required
integer

User's industry sector. This is a integer that represents the sector. A list of sectors and their IDs can be accessed at /site/sectors.

This is required for parent accounts, but optional for subaccounts.

country
required
integer

User's country. This is an integer that represents the country. A list of countries and their IDs can be accessed at /site/countries.

state
string

User's address state.

suburb
string

User's suburb.

postcode
string

User's postcode.

address
string

User's address details excluding those in above parameters (e.g. street name, building number floor level, etc).

owner
integer

Owner account's ID.

object

The details of the account manager assigned to the account.

name
required
string

The account manager's name.

email
required
string

The account manager's email address.

Responses

Response Schema: application/json
required
object
id
required
integer

The user's ID.

username
required
string

The user's username.

object

If the user's account is a subaccount, this is the owner account's details.

id
required
integer

Owner account's ID.

name
required
string

Owner account's name.

email
required
string

Owner account's email address.

object

The details of the account manager assigned to the account.

name
required
string

The account manager's name.

email
required
string

The account manager's email address.

position
required
string

The user's position, or job title.

name
required
string

The user's name.

email
required
string

The user's email address.

company
required
string

The user's company.

phone
required
string

The user's phone number.

fax
string

The user's fax number.

address
string

The user's street address.

suburb
string

The user's suburb or city.

state
string

The user's state.

postcode
string

The user's postcode or ZIP code.

object

The user's country.

id
integer

Country ID.

name
string

Country name.

code
string

2-letter country code.

object

The user's industry sector.

id
required
integer

Sector ID.

name
required
string

Sector name.

created
required
integer

UNIX timestamp of the time the account was created.

bounced
required
boolean

True if the account's email address is marked as having bounced.

mailok
required
boolean

True if it's OK to send email to this user.

Request samples

Content type
application/json
{
  • "username": "string",
  • "email": "string",
  • "name": "string",
  • "position": "string",
  • "phone": "string",
  • "fax": "string",
  • "company": "string",
  • "sector": 0,
  • "country": 0,
  • "state": "string",
  • "suburb": "string",
  • "postcode": "string",
  • "address": "string",
  • "owner": 0,
  • "manager": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a subaccount

This lists all subaccounts connected to this account.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Responses

Response Schema: application/json
data
required
boolean

True if the account was deleted.

Response samples

Content type
application/json
{
  • "data": true
}

Get the user's active subscriptions

This returns an object that contains objects that represent each active subscription a user has. The key of each object will be the ID of the product.

If a subscription object contains a key called "included" that is true (along with name and shortname), and "email" that may be true or false, that means that the product with that ID is an included subscription with their account - ie. AVAN and Airline Leader will always be included subscriptions, no matter the account type. If it is an actual subscription, then the object will contain far more detailed information, which is shown below.

Note that the output for this call is pretty messy and unstable; it will eventually be changed to something a bit more ordered.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Responses

Response Schema: application/json
required
object
object

The key for each value returned is the product ID.

subid
integer

The subscription ID (not the same as the product ID).

start
integer

UNIX timestamp of the time the subscription started.

trial
boolean

Boolean indicating whether the subscription is a trial or not.

expiry
integer

UNIX timestamp of the time the subscription is due to expire.

users
integer

Number of user licences for the subscription.

owner
integer

The ID of the subscription owner.

object

If this is a paid subscription, then the info key will exist with further details.

id
integer

This is the subscription ID. Same as the "subid" key above.

cid
integer

CID is the "customer ID" aka the owner ID of the subscription. If the user's account is a subaccount, and the subscription is assigned, then this will be the ID of the owner account.

username
string

The username of the account that owns the subscription.

company
string

The company that owns the subscription

name
string

The name of the account that owns the subscription.

orderid
integer

The order ID that the subscription is associated with.

trial
boolean

Whether this is a trial subscription or not.

prodid
integer

The product ID of the subscription. Same as the main object key.

start
integer

UNIX timestamp of the subscription start date (same as main object).

expiry
integer

UNIX timestamp of the subscription expiry date (same as main object).

active
boolean

Boolean indicating whether this subscription is active or not (same as main object).

users
integer

Number of user licences this subscription has (same as main object).

prodname
string

The product name.

shortname
string

The shortname of the product.

itemname
string

This will be either a string or null, and is set when the product has been renamed in the original order that set up the subscription.

Basically, if this is not null then treat it as the product name instead of the prodname key.

email
boolean

Whether this subscription has a mailout component or not (ie. Fleets does not, but APAD does).

included
boolean

If this is an "included" subscription, this will be true. An included subscription will be something like AVAN or AL on all accounts, or APAD/ABD/etc for CAPA Membership accounts.

shortname
string

The shortname of the product. This key only exists for included subscriptions. Look inside the "info" key otherwise.

name
string

The name of the product. This key only exists for included subscriptions. Look inside the "info" key otherwise.

requires
integer

If this product is an addon to another product, this is the ID of the product that is required.

Response samples

Content type
application/json
{
  • "data": {
    }
}

Change a user's password

Change a user's password. :!: If you are a master account wanting to change a subaccount's password, the OAuth authorisation header needs to be sent, and the oldPassword value needs to be set to the master account's password.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Request Body schema: application/json
required
oldPassword
required
string

The user's current password. If a master account is editing the subaccount's password, this should be the password of the master account.

newPassword
required
string

The new password.

token
string

If the User has forgot the old password and is requesting the password, access requires a reset token acquired via the /account/password/forgot API query.

Responses

Response Schema: application/json
required
object
changed
required
boolean

Request samples

Content type
application/json
{
  • "oldPassword": "string",
  • "newPassword": "string",
  • "token": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update user's subscription email preferences

This changes the user's subscription email preferences. Note that this is separate to Alerts.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Request Body schema: application/json
required
Array
id
required
integer

Product ID.

subscribe
required
boolean

Whether to receive email for this product or not.

Responses

Response Schema: application/json
required
object
updated
required
boolean

If the preferences have successfully updated, this will be true.

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get a list of bought items

This returns all bought items that the user has associated with the account. This will be all non-subscription items, like reports.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Responses

Response Schema: application/json
required
Array of objects
Array
url
required
string

The product URL.

price
number

The product's price. If this is a subscription, then the price will be the setup fee for the subscription.

object
id
integer

The price's currency ID.

symbol
string

The price's currency symbol.

image
string

URL of product image.

Array of objects
Array
id
integer

Subscription ID.

price
number

Subscription price for the specified period.

period
integer

Subscription period (in months).

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Check if an email address has an account

This runs a test to see if the supplied email parameter has an associated account.

path Parameters
email
required
string

User's email address.

Responses

Response Schema: application/json
data
required
boolean

If the email is associated with an account, true is returned, otherwise false is returned.

Response samples

Content type
application/json
{
  • "data": true
}

Get a reset token for a user's password

If the user has forgotten their password, posting here will generate a reset token they can use to reset it.

Request Body schema: application/json
required
username
required
string

The user's username.

Responses

Response Schema: application/json
data
required
string

A response string, indicating that a reset token was sent to the email address on file for the account.

Request samples

Content type
application/json
{
  • "username": "string"
}

Response samples

Content type
application/json
{
  • "data": "string"
}

Unsubscribe from a mailout

Making a DELETE request to this resource will unsubscribe the user from a mailout. It does not require authentication, and its intention is to be used for unsubscribe links in emails.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

prodid
required
integer

Product ID.

Responses

Response Schema: application/json
data
required
boolean

Response samples

Content type
application/json
{
  • "data": true
}

Get a list of the user's subaccounts

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Responses

Response Schema: application/json
required
Array of objects (Account)
Array
id
required
integer

The user's ID.

username
required
string

The user's username.

required
object

If the account is a subaccount, this is the owner account's details.

id
required
string

Owner account ID.

name
required
string

Owner account name.

email
required
string

Owner account's email address.

object

The details of the account manager assigned to the account.

name
required
string

The account manager's name.

email
required
string

The account manager's email address.

position
required
string

The user's position, or job title.

name
required
string

The user's name.

email
string

The user's email address.

company
required
string

The user's company.

phone
required
string

The user's phone number.

fax
string

The user's fax number.

address
string

The user's street address.

suburb
string

The user's suburb or city.

state
string

The user's state.

postcode
string

The user's postcode or ZIP code.

object

The user's country.

id
required
integer

Country ID.

name
required
string

Country name.

code
required
string

2-letter country code.

object

The user's industry sector.

id
required
integer

Sector ID.

name
required
string

Sector name.

created
required
integer

UNIX timestamp of the time the account was created.

bounced
required
boolean

If true, then the account's email address is marked as having bounced.

mailok
required
boolean

It is OK to send email to this user.

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Disable a subaccount

To disable a subaccount by owner, you can't disable yourself

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Responses

Response Schema: application/json
data
required
boolean

True if the account was disabled.

Response samples

Content type
application/json
{
  • "data": true
}

List subaccounts assigned to a subscription

This lists all subaccount IDs connected to this account that have been assigned access to the indicated subscription.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

sub
required
integer

Subscription ID.

Responses

Response Schema: application/json
data
required
Array of integers

A list of subaccount IDs that the subscription is assigned to.

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Update list of subaccounts assigned to a subscription

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

sub
required
integer

Subscription ID.

Request Body schema: application/json
required
Array
integer

ID of subaccount this subscription should be assigned to.

Responses

Response Schema: application/json
data
required
boolean
Value: true

This will be true if succesfully updated.

Request samples

Content type
application/json
[
  • 0
]

Response samples

Content type
application/json
{
  • "data": true
}

List user's API clients

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Responses

Response Schema: application/json
required
Array of objects (Client)

A list of API clients.

Array
identifier
required
string

Client identifier string.

name
required
string

Client name

redirects
required
Array of strings

Permitted URL to redirect authorization code requests to.

domains
required
Array of strings

Permitted domains to access this client from (these will be checked against CORS headers).

required
object
password
required
boolean

True if password grants are permitted for this client.

authorization_code
required
boolean

True if authorization code grants are permitted for this client.

implicit
required
boolean

True if implicit grants are permitted for this client.

refresh_token
required
boolean

True if refresh token grants are permitted for this client.

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create a new API client

This will create a new API client with all grants disabled. Enable grants using the updateClient method.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Request Body schema: application/json
required
name
required
string

API client name. This is a screen-friendly readable name for the client.

identifier
required
string

This should be a unique client identifier. Ideally you'd make it all lowercase ASCII, and it needs to be completely unique.

Responses

Response Schema: application/json
data
required
string

If successfully created, then the response here will be the client secret. This is the only time you will see this, so when it is received, save it somewhere as it is required for all non-implicit grants.

Request samples

Content type
application/json
{
  • "name": "string",
  • "identifier": "string"
}

Response samples

Content type
application/json
{
  • "data": "string"
}

Get details about the specified API client

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

client
required
string

Client identifier.

Responses

Response Schema: application/json
required
object (Client)
identifier
required
string

Client identifier string.

name
required
string

Client name

redirects
required
Array of strings

Permitted URL to redirect authorization code requests to.

domains
required
Array of strings

Permitted domains to access this client from (these will be checked against CORS headers).

required
object
password
required
boolean

True if password grants are permitted for this client.

authorization_code
required
boolean

True if authorization code grants are permitted for this client.

implicit
required
boolean

True if implicit grants are permitted for this client.

refresh_token
required
boolean

True if refresh token grants are permitted for this client.

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update an API client

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

client
required
string

Client identifier.

Request Body schema: application/json
required
object

Options for which grants are enabled. Note that password grants are always disabled for third-party clients.

implicit
boolean

True if you want to enable an implicit grant.

authorization_code
boolean

True if you want to enable an authorization code grant.

refresh_token
boolean

True if you want to enable a refresh token grant.

redirects
Array of strings

URL that this client is allowed to redirect to.

domains
Array of strings

Domain this client is allowed to be accessed from. Note that the protocol should be included in this (ie. "https://").

Responses

Response Schema: application/json
data
required
boolean
Value: true

True if successfully updated.

Request samples

Content type
application/json
{
  • "grants": {
    },
  • "redirects": [
    ],
  • "domains": [
    ]
}

Response samples

Content type
application/json
{
  • "data": true
}

Delete an API client

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

client
required
string

Client identifier.

Responses

Response Schema: application/json
data
required
boolean
Value: true

True if successfully deleted.

Response samples

Content type
application/json
{
  • "data": true
}

Get API client details

This identifies and returns the details of the client matching the given unique identifier string.

path Parameters
identifier
required
string

Client identifier.

Responses

Response Schema: application/json
required
object
identifier
string

Client identifier.

name
string

Client name.

redirects
Array of strings

URL that this client is allowed to redirect to.

domains
Array of strings

Domain this client is allowed to be accessed from. Note that the protocol should be included in this (ie. "https://").

object

Options for which grants are enabled. Note that password grants are always disabled for third-party clients.

password
string

Client password.

authorization_code
boolean

Whether client is allowed to grant authorization codes.

implicit
boolean

Whether client is allowed to grant implicit codes.

refresh_token
boolean

Whether client is allowed to grant refresh tokens.

Response samples

Content type
application/json
{
  • "data": {
    }
}

List current sessions for a client

Returns a list of the current active sessions for an API client.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

client
required
string

Client identifier.

Responses

Response Schema: application/json
required
Array of objects
Array
id
required
string

Session identifier.

userid
required
integer

User ID the session belongs to.

date
required
integer

UNIX timestamp of the time the session was created.

expires
required
integer

UNIX timestamp of the time the session expires.

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Delete an API client session

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

client
required
string

Client identifier.

session
required
string

Session identifier.

Responses

Response Schema: application/json
data
required
boolean

True if session was successfully deleted.

Response samples

Content type
application/json
{
  • "data": true
}

List new announcements

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

query Parameters
date
string <datetime>

Return any announcements newer than this date. Defaults to today.

Responses

Response Schema: application/json
required
Array of objects
Array
date
required
string <datetime>

Date of announcement.

announcement
required
string

HTML announcement.

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Mark announcements as seen

Provides confirmation tht the user has seen the identified announcement.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

query Parameters
id
required
integer

This is the id of the announcement the user has seen.

Request Body schema: application/json
required
date
required
string <datetime>

Date announcement was seen.

Responses

Response Schema: application/json
boolean

True is returned.

Request samples

Content type
application/json
{
  • "date": "string"
}

Response samples

Content type
application/json
{
  • "": true
}

Alerts

List Alerts for an account

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Responses

Response Schema: application/json
required
object
required
object

Sending frequency details.

freq
required
integer

The frequency that Alerts will be emailed to the user. The possible values are:

Value Type Notes
0 Never Never send an email. Useful if the customer is only using the RSS feeds or app.
1 Live Send Alerts emails immediately for each article published. Unless the user has very specific filters set, this will result in a deluge of email.
2 Hourly Send Alerts hourly, on the hour.
3 Daily Send Alerts daily, at the time specified in the sendat parameter.
4 Weekly Send Alerts weekly, usually at midnight UTC on a Monday morning.
5 Monthly Send Alerts monthly.
sendat
required
string

If an Alert is being sent daily, this is the time of day that it will be sent (based on UTC a timezone).

required
Array of objects (Alert)

An array of Alerts, sorted by the user's preferences.

Array
id
integer

ID of the Alert.

name
string

Name of the Alert.

uid
string

Unique identifier for the Alert. Use when building RSS feed URLs.

types
required
Array of integers

An array of news types to include in results.

News types are:

ID Type Description
0 News News briefs.
1 Analysis Analysis articles.
2 Press Releases CAPA press releases.
3 Direct News Sources Other company press releases.
4 Share Market Performance Legacy/unused.
5 Blog Legacy/unused.
6 Updates CAPA updates. Somehow different to CAPA press releases.
7 Financials Legacy/unused.
8 Traffic Legacy/unused.
9 Airline Leader Articles from Airline Leader.
required
Array of objects

An array of condition groups to filter news by.

Array
id
integer

Condition group ID.

type
required
string
Enum: "ALL" "ANY"

Whether to match all or any of the conditions included.

match
required
boolean

Set to true if you want to include results that match everything, or false if you want to do a negative match.

Negative matches only work when there is more than one condition group. These are so you can go "match these tags but not those tags."

object

Categories, tags or profiles to match.

tags
required
Array of strings >= 0 items

An array of tags.

cats
required
Array of integers >= 0 items

An array of category IDs. A list of IDs can be found at /site/categories.

required
Array of objects >= 0 items

An array of profile types & IDs.

Array (>= 0 items)
id
required
integer

Profile ID.

type
required
integer

Profile type ID.

name
required
string

Profile name.

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update user's Alerts

This will batch update/replace a user's alerts. The order of the array sent to the server will dictate the sort order of the user's Alerts. If an Alert is not sent to the server, it will be deleted.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Request Body schema: application/json
required
Array of objects (Alert)

The user's new Alerts, ordered. If this key is not sent, no Alerts will be changed.

Array
id
integer

ID of the Alert.

name
string

Name of the Alert.

uid
string

Unique identifier for the Alert. Use when building RSS feed URLs.

types
required
Array of integers

An array of news types to include in results.

News types are:

ID Type Description
0 News News briefs.
1 Analysis Analysis articles.
2 Press Releases CAPA press releases.
3 Direct News Sources Other company press releases.
4 Share Market Performance Legacy/unused.
5 Blog Legacy/unused.
6 Updates CAPA updates. Somehow different to CAPA press releases.
7 Financials Legacy/unused.
8 Traffic Legacy/unused.
9 Airline Leader Articles from Airline Leader.
required
Array of objects

An array of condition groups to filter news by.

Array
id
integer

Condition group ID.

type
required
string
Enum: "ALL" "ANY"

Whether to match all or any of the conditions included.

match
required
boolean

Set to true if you want to include results that match everything, or false if you want to do a negative match.

Negative matches only work when there is more than one condition group. These are so you can go "match these tags but not those tags."

object

Categories, tags or profiles to match.

tags
required
Array of strings >= 0 items

An array of tags.

cats
required
Array of integers >= 0 items

An array of category IDs. A list of IDs can be found at /site/categories.

required
Array of objects >= 0 items

An array of profile types & IDs.

Array (>= 0 items)
id
required
integer

Profile ID.

type
required
integer

Profile type ID.

name
required
string

Profile name.

object

If you want to change Alert frequency settings, send this key.

freq
required
integer

The sending frequency of the user's Alerts.

Value Type Notes
0 Never Never send an email. Useful if the customer is only using the RSS feeds or app.
1 Live Send Alerts emails immediately for each article published. Unless the user has very specific filters set, this will result in a deluge of email.
2 Hourly Send Alerts hourly, on the hour.
3 Daily Send Alerts daily, at the time specified in the sendat parameter.
4 Weekly Send Alerts weekly, usually at midnight UTC on a Monday morning.
5 Monthly Send Alerts monthly.
sendat
required
string

The time to send Alerts if the frequency is set to daily. UTC timezone.

Responses

Request samples

Content type
application/json
{
  • "alerts": [
    ],
  • "freq": {
    }
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Create a new Alert

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Request Body schema: application/json
required
id
integer

ID of the Alert.

name
string

Name of the Alert.

uid
string

Unique identifier for the Alert. Use when building RSS feed URLs.

types
required
Array of integers

An array of news types to include in results.

News types are:

ID Type Description
0 News News briefs.
1 Analysis Analysis articles.
2 Press Releases CAPA press releases.
3 Direct News Sources Other company press releases.
4 Share Market Performance Legacy/unused.
5 Blog Legacy/unused.
6 Updates CAPA updates. Somehow different to CAPA press releases.
7 Financials Legacy/unused.
8 Traffic Legacy/unused.
9 Airline Leader Articles from Airline Leader.
required
Array of objects

An array of condition groups to filter news by.

Array
id
integer

Condition group ID.

type
required
string
Enum: "ALL" "ANY"

Whether to match all or any of the conditions included.

match
required
boolean

Set to true if you want to include results that match everything, or false if you want to do a negative match.

Negative matches only work when there is more than one condition group. These are so you can go "match these tags but not those tags."

object

Categories, tags or profiles to match.

tags
required
Array of strings >= 0 items

An array of tags.

cats
required
Array of integers >= 0 items

An array of category IDs. A list of IDs can be found at /site/categories.

required
Array of objects >= 0 items

An array of profile types & IDs.

Array (>= 0 items)
id
required
integer

Profile ID.

type
required
integer

Profile type ID.

name
required
string

Profile name.

Responses

Response Schema: application/json
required
object
id
required
integer

The newly created Alert's ID.

uid
required
string

The newly created Alert's unique identifier (for RSS feeds).

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "uid": "string",
  • "types": [
    ],
  • "search": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

List articles for an Alert

This will return a list of articles that match the specified alert, in reverse-chronological order.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

alertid
required
integer

The user's Alert ID.

query Parameters
num
integer

Maximum number of results to return.

page
integer

Zero-based result page index.

from
integer

Don't show alerts older than this (UNIX) time.

nolimit
integer
Value: 1

By default, searches are restricted to stories from within the past 3 months, in order to keep response times fast. If you want to go back further, send this parameter.

linked
boolean

If true, this causes all names that match to CAPA profiles to be changed to HTML links to those profiles.

Responses

Response Schema: application/json
required
Array of objects (AlertResult)
Array
id
required
integer

Article ID.

title
required
string

The title of the article.

article
required
string

HTML content of the article itself.

required
object

The article type

id
required
integer

Article type ID

name
required
string

Article type name

image
string

Article image URL. More info on resizing.

timestamp
required
string

UNIX timestamp of the article.

url
required
string

URL of the article.

tags
Array of strings >= 0 items

An array of tags.

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Update an Alert

This changes the search parameters of an Alert.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

alertid
required
integer

The user's Alert ID.

Request Body schema: application/json
required
id
integer

ID of the Alert.

name
string

Name of the Alert.

uid
string

Unique identifier for the Alert. Use when building RSS feed URLs.

types
required
Array of integers

An array of news types to include in results.

News types are:

ID Type Description
0 News News briefs.
1 Analysis Analysis articles.
2 Press Releases CAPA press releases.
3 Direct News Sources Other company press releases.
4 Share Market Performance Legacy/unused.
5 Blog Legacy/unused.
6 Updates CAPA updates. Somehow different to CAPA press releases.
7 Financials Legacy/unused.
8 Traffic Legacy/unused.
9 Airline Leader Articles from Airline Leader.
required
Array of objects

An array of condition groups to filter news by.

Array
id
integer

Condition group ID.

type
required
string
Enum: "ALL" "ANY"

Whether to match all or any of the conditions included.

match
required
boolean

Set to true if you want to include results that match everything, or false if you want to do a negative match.

Negative matches only work when there is more than one condition group. These are so you can go "match these tags but not those tags."

object

Categories, tags or profiles to match.

tags
required
Array of strings >= 0 items

An array of tags.

cats
required
Array of integers >= 0 items

An array of category IDs. A list of IDs can be found at /site/categories.

required
Array of objects >= 0 items

An array of profile types & IDs.

Array (>= 0 items)
id
required
integer

Profile ID.

type
required
integer

Profile type ID.

name
required
string

Profile name.

Responses

Response Schema: application/json
data
required
boolean

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "uid": "string",
  • "types": [
    ],
  • "search": [
    ]
}

Response samples

Content type
application/json
{
  • "data": true
}

Delete an Alert

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

alertid
required
integer

The user's Alert ID.

Responses

Response Schema: application/json
data
required
integer

Response samples

Content type
application/json
{
  • "data": 0
}

Copy Alerts between accounts

This will batch copy the selected alerts from a user's account to all of the selected subaccounts. Note: this requires that the user account has associated subaccounts.

Authorizations:
OAuth2
path Parameters
id
required
integer

The user's account ID.

Request Body schema: application/json
required
userids
required
Array of integers

An array that contains the ID(s) of one or more subaccounts to copy the selected alerts to.

It must contain at least one account ID and each ID must be of an subaccount to the user account.

alertids
required
Array of integers

An array that contains the ID(s) of one or more alerts to copy to the selected accounts.

It must contain at least one alert ID.

type
required
string
Enum: "add" "replace"

This property defines how the function interacts with existing alerts in the selected accounts. The available options are 'add' and 'replace'.

add: This adds the alerts to the selected accounts. If an account already has an alert with the same name as one of the ones being duplicated, the duplicate is not copied to that account. replace: Any existing alerts for the selected accounts are deleted before copying the new alerts over.

Responses

Response Schema: application/json
data
required
boolean

True is returned.

Request samples

Content type
application/json
{
  • "userids": [
    ],
  • "alertids": [
    ],
  • "type": "add"
}

Response samples

Content type
application/json
{
  • "data": true
}

Preview an Alert

If you need an idea of the kind of results that will be returned when building an Alert, that can be done here.

Authorizations:
OAuth2
Request Body schema: application/json
required
id
integer

ID of the Alert.

name
string

Name of the Alert.

uid
string

Unique identifier for the Alert. Use when building RSS feed URLs.

types
required
Array of integers

An array of news types to include in results.

News types are:

ID Type Description
0 News News briefs.
1 Analysis Analysis articles.
2 Press Releases CAPA press releases.
3 Direct News Sources Other company press releases.
4 Share Market Performance Legacy/unused.
5 Blog Legacy/unused.
6 Updates CAPA updates. Somehow different to CAPA press releases.
7 Financials Legacy/unused.
8 Traffic Legacy/unused.
9 Airline Leader Articles from Airline Leader.
required
Array of objects

An array of condition groups to filter news by.

Array
id
integer

Condition group ID.

type
required
string
Enum: "ALL" "ANY"

Whether to match all or any of the conditions included.

match
required
boolean

Set to true if you want to include results that match everything, or false if you want to do a negative match.

Negative matches only work when there is more than one condition group. These are so you can go "match these tags but not those tags."

object

Categories, tags or profiles to match.

tags
required
Array of strings >= 0 items

An array of tags.

cats
required
Array of integers >= 0 items

An array of category IDs. A list of IDs can be found at /site/categories.

required
Array of objects >= 0 items

An array of profile types & IDs.

Array (>= 0 items)
id
required
integer

Profile ID.

type
required
integer

Profile type ID.

name
required
string

Profile name.

Responses

Response Schema: application/json
required
object (AlertResult)

A single Alert result will contain an article and all the content for it.

id
required
integer

Article ID.

title
required
string

The title of the article.

article
required
string

HTML content of the article itself.

required
object

The article type

id
required
integer

Article type ID

name
required
string

Article type name

image
string

Article image URL. More info on resizing.

timestamp
required
string

UNIX timestamp of the article.

url
required
string

URL of the article.

tags
Array of strings >= 0 items

An array of tags.

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "uid": "string",
  • "types": [
    ],
  • "search": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Profiles

Get a list of destinations grouped by weekly frequency

This returns a list of destinations, grouped by the amount of flights going to them each week. It's a pretty ugly function with output that makes no sense, and will be rewritten eventually.

Authorizations:
OAuth2
path Parameters
type
required
integer

Profile type ID.

id
required
integer

Profile ID.

query Parameters
rtype
string
Enum: "domestic" "international"

If this is set to domestic then only domestic routes are included, otherwise international ones are.

ftype
required
string
Enum: "passenger" "cargo"

Flight type.

week
string <date>

ISO8601 date of the week start. Must be a Monday.

Responses

Response Schema: application/json
required
Array of objects
Array
id
required
integer

Number of frequencies. Yes, it's called id but means number of frequencies.

data
required
integer

Number of routes with the specified number of frequencies.

routes
required
string

A list of the routes themselves. This will be a HTML string, with each result separated by a literal
tag. I know, it's a mess.

Response samples

Content type
application/json
{
  • "data": [
    ]
}

List available tabs for a profile

Returns a list of tabs that are able to be displayed within a profile. This is used on the CAPA website to determine which tabs to display on profile pages.

Authorizations:
OAuth2
path Parameters
type
required
integer

Profile type ID.

id
required
integer

Profile ID.

Responses

Response Schema: application/json
required
Array of objects
Array
title
required
string

Tab title.

type
required
string

Short string describing the tab's type.

requires
required
Array of strings

If this tab has content that is locked behind a subscription product, then the shortname for the product will be listed here. If the user has access to any of the products in the list, then the tab should open to the user.

group
boolean

This will appear on traffic/financial/documents profile tabs for airlines - if it's true, then the tab contents should contain the airline group's data, and not the airline itself.

items
Array of strings

On a financial tab, this will list the items that should be displayed. financials refers to financial results.

object

On a Fast Facts tab, this contains info about what traffic should be displayed.

group
boolean

If true and it's an airline profile, use the airline group that owns the airline's traffic data.

object

On a Fast Facts tab, this contains info about what financial data should be displayed.

items
Array of strings

This will contain an array of financial data items to display.

group
boolean

If this is true, rely on the airline group's financials instead of the airline itself.

fleet
boolean

On a Fast Facts tab, add fleet graphs if this is true.

schedulesAnalysis
boolean

On a Fast Facts tab, add schedules analysis graphs if this is true.

cargoAnalysis
boolean

On a Fast Facts tab, add cargo analysis graphs if this is true.

people
boolean

On a Fast Facts tab, add the contacts table if this is true.

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Convert a shorturl + type string to profile ID

This is used to figure out a profile ID based on profile URL components. Only really useful for the CAPA site itself.

query Parameters
shorturl
required
string

The shorturl string.

Given a URL of https://centreforaviation.com/data/profiles/airlines/qantas-airways-qf, the shorturl component would be qantas-airways-qf.

type
required
string

The type string.

Given a URL of https://centreforaviation.com/data/profiles/airlines/qantas-airways-qf, the type would be airlines.

Responses

Response Schema: application/json
required
object
id
required
integer

Profile ID.

type
required
integer

Profile type ID.

Response samples

Content type
application/json
{
  • "data": {
    }
}

Search for a profile ID

query Parameters
term
string

Profile name to search for. Any profiles containing this string will be returned.

code
string

Profile IATA/ICAO/country code. If this is supplied, "term" will be ignored and only profiles that exactly match the specified code will be returned.

start
integer

If this is sent, then the "term" search will only match profiles that start with the term string, instead of profiles that contain the term string. If this value is a "#" it will return all entries that start with a number.

Responses

Response Schema: application/json
required
Array of objects (ProfileSearchResult)
Array
rank
integer

Profile type display order (starting from 1).

id
required
integer

Profile ID.

required
object

Profile type.

id
integer

Profile type ID.

name
required
string

Profile type name.

name
required
string

Profile name.

iata
string

Profile IATA code (if available).

icao
string

Profile ICAO code (if available).

url
string

Profile URL. This is only added for the appropriate profile types (Cities, for instance, do not have a profile page)

object

If the profile has a country linked to it, country details are here.

id
required
string

Country ID.

name
required
string

Country name.

code
required
string

2-letter country code.

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get basic info for a profile

This returns basic profile details - a short description, IATA/ICAO codes, location, etc. There are a few fields common to all profiles, however the resulting object will vary greatly depending on the profile type.

IMPORTANT: Profile IDs do not change - they will remain the same throughout their lifetime. The exception is in the rare event of a merge, when duplicate profiles are combined together. This is an administrative thing unrelated to airline mergers and does not happen often.

path Parameters
type
required
integer

Profile type ID.

id
required
integer

Profile ID.

Responses

Response Schema: application/json
required
object
iata
string

Profile IATA code.

Applies to:

  • airlines
  • airports
icao
string

Profile ICAO code.

Applies to:

  • airlines
  • airports
duplicate
boolean

Whether or not the profile's IATA code is a controlled duplicate.

Applies to:

  • airlines
name
required
string

Name of the profile.

efrom
string <date>

Date that the company was effective ("active") from. A company that is currently active will have an efrom date of null or the date it started operating. If the date is in the future, it means the company has not started operating yet.

Applies to:

  • airlines
eto
string <date>

Similar to efrom, this is the date that the company ceased operations. If it is null, it is assumed the company is active. If it is a date in the past, this is the date it ceased operating. If it is a future date, this is the date it will cease operating.

Applies to:

  • airlines
current
boolean

An easier way to tell if an airline is active or not - if it's true then it's an active airline.

Applies to:

  • airlines
bizmodel
string

Business model of the profile.

Applies to:

  • airlines
category
required
integer

News/analysis should match articles within this category.

address
string

The address of the profile. Typically a company's headquarters.

Applies to:

  • airlines
  • airports
object

If this is an airline profile, its main hub details are here.

Applies to:

  • airlines
id
required
integer

Hub profile ID.

type
required
string

Hub profile type ID.

name
required
string

Hub name.

url
required
string

Hub profile URL.

website
string

Profile's external company URL.

bio
required
string

A short HTML description of the profile.

currency
required
string
Default: "USD"

If the profile reports financials, this is the currency it reports in.

financial_year_end
required
integer

The month number that the profile's financial year ends in.

**IMPORTANT**: Note that this does not guarantee that financial data is available for the profile.
traffic_year_end
required
integer

The month number that the profile's traffic reporting year ends in.

**IMPORTANT**: Note that this does not guarantee that traffic data is available for the profile.
startup
boolean

Whether or not CAPA classifies this profile as a startup.

Applies to:

  • airlines
startupdate
string

If this is a startup profile, this is the date that CAPA expects the airline to start operations. Note that this is a string and not a date field as the contents will vary depending on how accurate we can get.

Applies to:

  • airlines
failedstartup
boolean

True if this profile is classified as a failed startup.

Applies to:

  • airlines
grounded
boolean

True if this profile is classified as a grounded airline.

Applies to:

  • airlines
object

If the profile has a country associated with it, this is the country details.

id
required
integer

Country profile ID.

code
required
string

2-letter country code.

name
required
string

Country name.

url
required
string

Country profile URL.

schengen
required
boolean

True if this country is part of the Schengen Agreement.

object

Region info for the profile.

Applies to:

  • airlines
  • airports
id
required
string

Region ID.

name
required
string

Region name.

code
string

3-letter region code.

carriesfreight
boolean

On airline profiles, this will be true if the airline carries freight.

Applies to:

  • airlines
hidetraffic
boolean

This will be true if the profile's traffic data needs to be hidden.

hidetrafficmulti
Array of strings

This contains the date frequency of any profile's traffic data that needs to be hidden.

  • M: Monthly reports
  • Q: Quarterly reports
  • HY: Half-annual reports
  • FY: Annual reports
hidefinancial
boolean

This will be true if the profile's financial data needs to be hidden.

hidefinancialmulti
Array of strings

This contains the date frequency of any profile's financial data that needs to be hidden.

  • M: Monthly reports
  • Q: Quarterly reports
  • HY: Half-annual reports
  • FY: Annual reports
hidetourismmulti
Array of strings

This contains the date frequency of any profile's tourism data that needs to be hidden.

  • M: Monthly reports
  • Q: Quarterly reports
  • HY: Half-annual reports
  • FY: Annual reports
hasschedules
boolean

On airline profiles, this will be true if the airline has schedules data for the current week.

Applies to:

  • airlines
object

If the airline is part of an airline group, here is the group details.

Applies to:

  • airlines
id
required
integer

Airline group ID.

type
required
integer

Airline group type ID.

name
required
string

Airline group name.

majority
required
boolean

True if the airline group is a majority owner of this profile.

financial_year_end
required
integer

Month number that the airline group's financial year ends.

traffic_year_end
required
integer

Month number that the airline group's traffic year ends.

currency
required
string

Currency that the airline's financials are in.

showTrafficYTD
boolean

If true, the CAPA front-end calculates the Year-to-Date values for traffic where the full year's data is not available.

hidetraffic
boolean

This will be true if the airline group's traffic data needs to be hidden.

hidefinancial
boolean

This will be true if the airline group's financial data needs to be hidden.

url
required
string

Airline group profile URL.

object

Applies to: * airlines

id
required
integer

Alliance profile ID.

type
required
integer

Alliance profile type.

joined
required
integer

Year that the airline joined this alliance.

status
required
string

Airline's status within the alliance.

name
required
string

Alliance name.

url
required
string

Alliance profile URL.

ownership
string

String describing the profile's ownership status.

Applies to:

  • airlines
status
string

String describing the airline's status.

Applies to:

  • airlines
object

Applies to:

  • airlines
  • airports
domestic
required
boolean

True if this airline has a domestic network.

international
required
string

True if this airline has an international network.

image
string

Profile image (will most likely be a logo or a flag). More information on resizing images. Note that the image URL will always end with a question mark followed by a number - this is so cached old images are not served up by accident.

tags
required
Array of strings

Tags that news/analysis in the profile should match. Note that these are merged with any tags found in the category key.

trafficsource
string

String describing where the traffic reports for this profile are sourced from.

Applies to:

  • airports
object

Applies to:

  • airports
id
required
integer

City ID.

name
required
string

City name.

code
required
string

City IATA code.

state
required
string

City state.

required
Array of objects

Array of other airports located in the same city.

Array
id
required
integer

Airport profile ID.

name
required
string

Airport profile name.

iata
required
string

Airport IATA code.

icao
required
string

Airport ICAO code.

url
string

Airport profile URL.

disabled
boolean

True if this profile is disabled.

Applies to:

  • airports
ceased
boolean

An easier way to tell if an airport is active or not - if it's true then the airport has ceased operations.

Applies to:

  • airports
Array of objects

Applies to:

  • airports
Array
length
required
string

Length (in metres) of the runway.

width
required
string

Width (in metres) of the runway.

area
required
string

Area (square metres) of the runway.

classification
string
Enum: "primary" "secondary"

Denotes whether an airport is primary or secondary. If omitted it means no classification has been made.

Applies to:

  • airports
code
string

Country or region code.

Applies to:

  • countries
  • regions
  • metaregions
object
latitude
required
number

Latitude of where this profile is located.

Applies to:

  • airlines (location of airport hub)
  • airports
  • countries
  • regions
longitude
required
number

Longitude of where this profile is located.

Applies to:

  • airlines (location of airport hub)
  • airports
  • countries
  • regions
object

Metaregion info.

Applies to:

  • regions
id
required
integer

Metaregion ID.

name
required
string

Metaregion name.

fullname
string

If this key exists, it is the unabbreviated name of the profile. For example, the name key for the ACI profile is ACI, but the fullname key is Airports Council International (ACI World).

Array of objects

An array containing details of the group's subsidiaries.

Applies to:

  • airline groups
Array
id
required
integer

Airline profile ID.

type
required
integer

Airline profile type.

name
required
string

Airline name.

iata
required
string

Airline IATA code.

icao
required
string

Airline ICAO code.

majority
required
string

True if the group has a majority ownership of this airline.

url
required
string

Airline profile URL.

founded
integer

Year the alliance was founded.

Applies to:

  • alliances
object

Applies to:

  • suppliers
id
required
integer

Industry sector ID.

name
required
string

Industry sector name.

type
string

Investor type.

Applies to:

  • investors
investment
integer

Amount of investment (USD) going into the airport.

Applies to:

  • new airports
owner
string

Airport owner name.

throughput
Array of integers

Expected PAX throughput. If this array has two entries, the first one is the initial throughput, and the last one is the expected throughput once completed. If there's only one item in the array then it's the throughput once completed.

Applies to:

  • new airports
facilitysize
string

Facility size.

Applies to:

  • new airports
cargovolume
string

Expected cargo volume at the airport.

Applies to:

  • new airports
object

Terminal details.

Applies to:

  • new airports
width
required
integer

Width (metres) of the terminal.

Zero if unknown.

length
required
integer

Length (metres) of the terminal.

Zero if unknown.

area
required
integer

Area (square metres) of the terminal.

Zero if unknown.

completion
string <date>

Date the airport is expected to be built by.

Applies to:

  • new airports
atcos
integer

Number of Air Transport Control Officers.

Applies to

  • air traffic management
employees
integer

Number of employees.

Applies to

  • air traffic management
accs
integer

Number of Area Control Centres. Zero if unknown.

Applies to

  • air traffic management
towers
integer

Number of air traffic control towers.

Applies to

  • air traffic management
members
string

A comma-separated list of members.

Applies to:

  • government bodies
url
required
string

Profile URL.

Array of objects

If this array exists, it contains a list of profiles that are considered "parents" of this profile.

Array
id
required
integer

Parent profile ID.

type
required
integer

Parent profile type ID.

name
required
string

Parent profile name.

url
required
string

Parent profile's URL.

iata
required
string

Parent profile IATA code (if exists).

icao
required
string

Parent profile ICAO code (if exists).

financial_year_end
integer

Month the parent profile's financial year ends.

traffic_year_end
required
integer

Month the parent profile's traffic reporting year ends.

currency
required
string

Currency that the parent profile reports in (if known).

Array of objects

Array of ground/cargo handlers at the airport.

Applies to:

  • airports
Array
id
required
integer

Ground handler profile ID.

type
required
integer

Ground handler profile type ID.

name
required
string

Ground handler name.

iata
required
string

Ground handler IATA code (if available).

icao
required
string

Ground handler ICAO code (if available).

url
required
string

Ground handler profile URL.

Array of objects

List of fuel suppliers at the airport.

Applies to:

  • airports
Array
id
required
integer

Fuel supplier profile ID.

type
required
integer

Fuel supplier profile type ID.

name
required
string

Fuel supplier name.

url
required
string

Fuel supplier profile URL.

object

List of airports that the supplier/MRO has bases at.

Applies to:

  • suppliers
id
required
integer

Profile ID.

type
required
integer

Profile type ID.

name
required
string

Airport name.

iata
required
string

Airport IATA code.

icao
required
string

Airport ICAO code.

latitude
required
number

Airport latitude.

longitude
required
number

Airport longitude.

url
required
string

Airport profile URL.

object

List of airports that the supplier supplies fuel to.

Applies to:

  • suppliers
id
required
integer

Airport ID.

type
required
integer

Airport profile type.

name
required
string

Airport name.

iata
required
string

Airport IATA code.

icao
required
string

Airport ICAO code.

latitude
required
number

Airport latitude.

longitude
required
number

Airport longitude

url
required
string

Airport profile URL.

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get a list of aircraft deliveries for a profile

This returns a list of aircraft due for delivery for a profile.

Authorizations:
OAuth2
path Parameters
type
required
integer

Profile type ID.

id
required
integer

Profile ID.

Responses

Response Schema: application/json
required
Array of objects
Array
required
object
id
required
integer

Aircraft model ID.

name
required
string

Aircraft model name.

freighter
boolean

If true, the aircraft model is marked as a freighter.

required
Array of objects
Array
required
object

Profile that these values apply to.

id
required
integer

Profile ID.

type
integer

Profile type. If it is not set, it does not map to a CAPA profile

name
required
string

Profile name.

required
Array of objects
Array
year
required
integer

Year of delivery.

required
object

Aircraft on order details.

aircraft
required
integer

Number of aircraft on order.

seats
required
integer

Number of seats on order.

cargo
required
integer

Amount of cargo payload (kg) on order.

required
object

Aircraft on option details.

aircraft
required
integer

Number of aircraft on option.

seats
required
integer

Number of seats on option.

cargo
required
integer

Amount of cargo payload (kg) on option.

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get a summarised list of aircraft for a profile

This returns a summary of the aircraft in use by a profile for the current week.

Authorizations:
OAuth2
path Parameters
type
required
integer

Profile type ID.

id
required
integer

Profile ID.

query Parameters
date
string <date>

ISO8601 date that the aircraft have to be active on to be included in the list. If blank, it defaults to the current date.

Responses

Response Schema: application/json
required
Array of objects
Array
required
object

Size details for the aircraft.

id
required
integer

Size ID.

name
required
string

Size name (eg. "narrowbody jet").

hasSeats
required
boolean

True if the aircraft has seat counts.

required
object
id
required
integer

Aircraft manufacturer ID.

name
required
string

Aircraft manufacturer name.

object
id
required
integer

Aircraft model ID.

name
required
string

Aircraft model name.

required
object
id
required
integer

Aircraft variant ID.

name
required
string

Aircraft variant name.

required
object
id
required
integer

Aircraft configuration ID.

required
object

Details of aircraft in service.

aircraft
required
integer

Total number of aircraft (of this variant) in service.

seats
required
integer

Total number of seats in service.

payload
required
integer

Total cargo payload (kg) in service.

ages
Array of integers
required
object

Values for aircraft owned by the operator.

aircraft
required
integer

Number of aircraft owned by the operator in service.

seats
required
integer

Number of seats owned by the operator in service.

payload
required
integer

Amount of cargo payload (kg) owned by the operator in service.

ages
Array of integers
required