Lumo Flights API (1.1.0)

Download OpenAPI specification:Download

Lumo API Support: support@thinklumo.com License: Apache 2.0

Lumo's API provides realtime and predictive flight status (Lumo's delay predictions) for flights worldwide.

The API has three modules:

  • status API - allows consumers to obtain flight data for specific flights or for flights based on search criteria. Also provides Lumo's curated suggestion of alternative flights in the case that a flight is predicted to be delayed.
  • subscription - this webhooks api allows clients to subscribe to specific itineraries and provide a callback URL. Whenever there are changes to any flights on that itinerary, they will receive an update at that callback URL.
  • manage - this set of endpoints allows clients to update travelers and itineraries for a Lumo Navigator organization.

Authentication

ApiKeyAuth

An API key from lumo is required to authenticate. You can request an api key at https://www.thinklumo.com/api-key-request or ping us on the chat on the bottom right of your page to get a production key. You can get a free trial key at https://www.thinklumo.com/sign-up-for-a-free-sandbox-api-key. Place the key into the HTTP request header as Token: <key> for the production API or x-api-key: <key> for the sandbox API.

Security Scheme Type API Key
Header parameter name: Token

flights

Allows consumers to obtain flight data for specific flights or for flights based on search criteria. Also provides Lumo's curated suggestion of alternative flights in the case that a flight is predicted to be delayed.

Use the server https://api.thinklumo.com/flights/v1 for these endpoints.

Retrieve predicted and realtime status for a flight

This endpoint retrieves information for a single flight, specified by flight ID. In addition to prediction and realtime status data, which are retrieved by default, historical performance, weather, and inbound flight information is also available by specifying the appropriate query parameters.

To retrieve a single flight without constructing the flight id, use the /status endpoint below.

Authorizations:
path Parameters
flight_id
required
string (LumoFlightId)
Example: UA576BOSSFO1606092145

The LumoFlightId for the flight, which can be constructed as: [IATA carrier code][flight number][departure airport][arrival airport][scheduled departure time as YYMMDDHHMM in UTC time]

query Parameters
inbound
boolean
Default: false

include inbound inbound flight status

weather
boolean
Default: false

include weather data

history
boolean
Default: false

include historical delay data

round
boolean
Default: true

round the delay distribution. We recommend using the rounded distribution to better communicate delay to end users.

Responses

Response samples

Content type
application/json
{
  • "flight": {
    },
  • "prediction": {
    },
  • "status": {
    },
  • "historical_performance": {
    },
  • "weather": {
    },
  • "inbound": { },
  • "special_alerts": [
    ],
  • "travel_advisories": {},
  • "covid_stats": {},
  • "covid_info": {
    },
  • "emissions": {
    },
  • "security_wait_time": {
    },
  • "immigration_wait_time": {
    }
}

Retrieve predicted and realtime status for a flight, specified by airline, flight number, and departure date.

This endpoint retrieves information for a single flight without having to specify the flight ID. In addition to prediction and realtime status data, which are retrieved by default, historical performance, weather, and inbound flight information is also available by specifying the appropriate query parameters.

The flight is uniquely specified using the required query parameters airline, flight_number, and date. In the case that these three do not uniquely specify a flight, origin and/or destination must also be used.

To retrieve all flights matching a set of criteria, use the /search endpoint instead, which filters on the same query parameters.

Authorizations:
query Parameters
carrier
string (IataCarrierCode)
Example: carrier=AA

IATA carrier code

flight_number
number
Example: flight_number=12

flight number

date
string <date>
Example: date=2018-10-08

Departure date in local time

origin
string (IataAirportCode)
Example: origin=BOS

origin airport code

destination
string (IataAirportCode)
Example: destination=BOS

destination airport code

inbound
string (IataAirportCode)
Example: inbound=BOS

include inbound flight status

weather
boolean
Default: false

include weather data

history
boolean
Default: false

include historical delay data

round
boolean
Default: true

round the delay distribution. We recommend using the rounded distribution to better communicate delay to end users.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a curated list of alternative flights when a specific flight is predicted to be delayed.

Authorizations:
path Parameters
flight_id
required
string (LumoFlightId)
Example: WN55DALHOU1608300100

Retrieves alternates flights for the specified flight, sorted by increasing departure time. When the delay index is under 5, no alternates are available.

Responses

Response samples

Content type
application/json
{
  • "count": 6,
  • "flights": [
    ]
}

Retrieve flights filtered by a set of criteria such as origin, destination, and date

This endpoint is intended for small result sets, such as finding the flight ID for a particular flight based on carrier code, flight number, and date; or finding all flights between an origin and destination on a particular date.

If your queries are larger than ~300 results, please get in touch with support@thinklumo.com so that we can work with you to support your load and use case.

Authorizations:
query Parameters
origin
string (IataAirportCode)
Example: origin=BOS

filters by departure airport

destination
string (IataAirportCode)
Example: destination=DEN

filters by arrival airport

carrier
string (IataCarrierCode)
Example: carrier=DL

filters by carrier IATA code

flight_number
number
Example: flight_number=709

filters by flight number

date
string <date>
Example: date=2018-06-02

filter flights that depart on this date (departure airport local time)

nearby
boolean
Default: false

includes nearby airports when origin or destination filters are specified

codeshare
boolean
Default: false

include codeshare flights - default is false

departing_after
string <date-time>
Example: departing_after=2018-06-24T18:30:00Z

filters flights that depart after the specified time (inclusive)

departing_before
string <date-time>
Example: departing_before=2018-06-24T18:30:00Z

filters flights that depart before the specified time (exclusive)

changed_after
string <date-time>
Example: changed_after=2018-06-24T18:30:00Z

filters flights whose delay predictions were changed after the specified time (inclusive)

changed_before
string <date-time>
Example: changed_before=2018-06-24T18:30:00Z

filters flights whose delay predictions were changed before the specified time (exclusive)

status
boolean
Default: false

include realtime status data

history
boolean
Default: false

include historical performance data

weather
boolean
Default: false

include weather data

round
boolean
Default: true

round the delay distribution. We recommend using the rounded distribution to better communicate delay to end users.

Responses

Response samples

Content type
application/json
{
  • "count": 34,
  • "previous": null,
  • "results": [
    ]
}

Retrieve connection risk and realtime status for a pair of connecting flights.

This endpoint returns the predicted connection risk for a pair of connecting flights, as well as their Lumo prediction and flight status.

The flights query parameter accepts flight ids in the form [airline code][flight number][departure airport][arrival airport][YYMMDD], for example flights=UA471LAXSFO181217,UA618SFOSEA181217.

Authorizations:
query Parameters
flights
required
string
Example: flights=UA471LAXSFO181217,UA618SFOSEA181217

flight ids of two connecting flights separated by a comma.

The format of each flight id is [iata airline code][flight number][departure airport][arrival airport][YYMMDD], for example UA471LAXSFO181217,UA618SFOSEA181217.

Responses

Response samples

Content type
application/json
{
  • "connection": {
    },
  • "flights": [
    ]
}

subscriptions

Webhooks API that allows clients to subscribe to specific itineraries and provide a callback URL. Whenever there are changes to any flights on that itinerary, they will receive an update at that callback URL.

Use the server https://api.thinklumo.com/flights/v1 for these endpoints.

Retrieve all active flight subscriptions

Returns a list of all currently active itinerary subscriptions. An itinerary is active until a few days after the last flight departs.

Authorizations:
query Parameters
booking_reference
string
Example: booking_reference=ABCDEF

Booking reference submitted when the subscription was created.

Responses

Response samples

Content type
application/json
{
  • "count": 1,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Create a new subscription

Subscribe to a new itinerary and receive callbacks at a specified url. The url to which the webhooks are sent are specified in the manage/ section below. See www.thinklumo.com for how to manage your sinks. See the Callbacks section below for information about the data format of callbacks.

Subscribe by flight ID

In this method, specify a list of flight IDs in the itinerary. These are specified as flight_ids in the request body.

Using the "short" flight ID method makes it possible to subscribe to flights further than 80 days; these flights do not normally exist in our schedule, so they do not yet have corresponding "long" flight IDs. In the case that the date is within 80 days, the flight attributes will resolve to a subscription immediately and you will start seeing callbacks. Flights further out will not be active until they are within 80 days out, and will be specified as pending_flights until then.

Authorizations:
Request Body schema: application/json

specify flights to track

flight_ids
required
Array of strings

list of flights in this itinerary. The flight ID can either be a "long" flight ID constructed as [IATA carrier code][flight number][IATA departure airport code][IATA arrival airport code][scheduled departure time as YYMMDDHHMM in UTC time] or a "short" flight ID constructed as [IATA carrier code][flight number][IATA departure airport code][IATA arrival airport code][scheduled departure date as YYMMDD in LOCAL time]

booking_reference
string

additional information to be stored along with this itinerary, such as PNR.

Responses

Request samples

Content type
application/json
{
  • "flight_ids": [
    ],
  • "booking_reference": "AWXGDG"
}

Response samples

Content type
application/json
{
  • "count": 1,
  • "next": null,
  • "previous": null,
  • "results": [
    ]
}

Return a subscription

Authorizations:
path Parameters
itinerary_id
required
string <uuid>
Example: 9bb348b3-d567-4392-818f-e19b7ad7fbf2

uuid representing an itinerary

Responses

Response samples

Content type
application/json
{
  • "itinerary_id": "cabb3527-3c77-488e-8306-f8bf38a904ef",
  • "flight_ids": [
    ],
  • "pending_flights": [
    ],
  • "booking_reference": "AWXGDG",
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z"
}

Delete a subscription

Delete the subscription for the specified itinerary.

Authorizations:
path Parameters
itinerary_id
required
string <uuid>
Example: 9bb348b3-d567-4392-818f-e19b7ad7fbf2

uuid representing an itinerary

Responses

callbacks

This section describes the data returned by callbacks created by a subscription. The callbacks are sent to all of a customer's destinations, which are managed using the manage endpoints. (Help page on managing sinks is at www.thinklumo.com). Note that these are not endpoints defined by the server but an endpoint that the client needs to implement to receive callbacks.

Receive callbacks for flight subscriptions

Receive flight updates at the callback url specified after registering a subscription via the subscriptions endpoint. Note that the POST operation refers to Lumo posting data to your server, and not the other way around.

header Parameters
x-lumo-signature
required
string

This signature is used to verify that the callback was received from Lumo. Lumo generates the signature by combining the secret (API key) with the body of the request using a HMAC-SHA256 keyed hash.

For example, in Python, the signature is calculated as follows: hmac.new(b'your-api-key', b'{payload}', hashlib.sha256).hexdigest()

To verify the signature, you will need to compute a signature using the same process and verify that your signature matches the signature that was sent in the header.

Request Body schema: application/json
required
object (AlertInfo)

identifying information for this notification, as well as information about why it was sent

required
object (CallbackSummaries)

human readable summary of the alert

required
object (FlightInfo)

detailed information for a flight, and uniquely identifies a single leg

required
object (LumoPredictionAndConnectionRisk)

Lumo's flight delay predictions

required
object (RealtimeStatus)
required
object (Weather)

weather forecast for the origin airport at the time of departure and for the destination airport at the time of arrival

required
object (FlightStatus)
required
Array of objects (SpecialAlerts)

an array of special alerts applicable to the flight

required
object (TravelAdvisories)

Travel advisories in place at the origin and destination

required
object (CovidOriginDestination)

COVID stats at the flight origin and destination

required
object (CovidInfoOriginDestination)

COVID information at the flight origin and destination

required
object (Emissions) Nullable

Estimates of CO2 emissions for the flight leg

required
object (SecurityWaitTime) Nullable

Estimated wait time at airport security at the departure airport

required
object (ImmigrationWaitTime) Nullable

Estimated wait time at immigration at the arrival airport

Responses

Request samples

Content type
application/json
{
  • "alert": {
    },
  • "summaries": {
    },
  • "flight": {
    },
  • "prediction": {
    },
  • "status": {
    },
  • "weather": {
    },
  • "inbound": {
    },
  • "special_alerts": [
    ],
  • "travel_advisories": {},
  • "covid_stats": {},
  • "covid_info": {
    },
  • "emissions": {
    },
  • "security_wait_time": {
    },
  • "immigration_wait_time": {
    }
}

manage

Set of endpoints for managing Lumo Navigator travelers and itineraries. Get in touch with support@thinklumo.com to setup a Navigator account and obtain access to these endpoints.

Use the server https://api.thinklumo.com/manage/v1 for these endpoints.

Create/update itineraries and metadata for an org

This endpoint lets you create/update itineraries and metadata in bulk. Traveler info is required as every itinerary must be associated with one. Customer org, event and tags are optional metadata. All the itineraries and associated metadata will be created/updated as applicable.

Authorizations:
path Parameters
org_id
required
string[\w\d\-\ ]{1,128}
Example: 100

organization id of the org

Request Body schema: application/json
object

Details about the customer org if the itinerary is for a customer

booking_reference
required
string <= 64 characters

A reference to your itinerary, unique for the traveler. For instance, the PNR. Combination of this, user_id and event_id, if exists, decides whether to create or update an itinerary

trip_name
string

A name for your itinerary

required
object

Details about the traveler

object

Details about the event if the itinerary should be associated with one

tags
Array of strings

Labels that can be used to categorize the itinerary

required
object

The flights in the itinerary, described either by a unique flight id or a set of attributes together identifying a particular flight.

You should specify either the flight id or the lookup attributes

Responses

Request samples

Content type
application/json
{
  • "customer": {
    },
  • "booking_reference": "PNR334455",
  • "trip_name": "CNN-DXB",
  • "traveler": {
    },
  • "event": {
    },
  • "tags": [
    ],
  • "segments": {
    }
}

Response samples

Content type
application/json
{
  • "importedItineraries": [
    ],
  • "rejectedItineraries": [
    ]
}

Create a new customer org

Creates a new customer org. Only an admin of the org can do this. He'll be assigned as an admin of the customer org too.

Authorizations:
path Parameters
org_id
required
string[\w\d\-\ ]{1,128}
Example: 98

Id of the org

Request Body schema: application/json
name
string

Name of the child org

industry
string

Industry of the child org

Responses

Request samples

Content type
application/json
{
  • "name": "Tarams Software",
  • "industry": "Software Engineering"
}

Response samples

Content type
application/json
{
  • "org_id": "98",
  • "customer_id": "100",
  • "name": "Tarams Software",
  • "industry": "Software Engineering"
}

Retrieve organizations.

Retrieve all organizations that a user belongs to

Authorizations:
path Parameters
user_id
required
number
Example: 98

user id

Responses

Response samples

Content type
application/json
{
  • "count": 1,
  • "results": [
    ]
}

Retrieve an org

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

Responses

Response samples

Content type
application/json
{
  • "name": "Tarams Software",
  • "industry": "Software Development",
  • "parent": "100"
}

Update an org

Updates the org against the id. Only an admin can do this.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

Request Body schema: application/json
name
string

Name of the org

industry
string

Industry of the org

Responses

Request samples

Content type
application/json
{
  • "name": "Tarams Software",
  • "industry": "Software Development"
}

Response samples

Content type
application/json
{
  • "name": "Tarams Software",
  • "industry": "Software Development",
  • "parent": "100"
}

Delete an org

Deletes the org against the id. Only an admin can do this.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

Responses

Response samples

Content type
application/json
{
  • "status_code": 404,
  • "error": "The resource was not found"
}

Retrieve all users in an organization

Retrieve a list of users in an organization, which consists of Admins (users who are able to update/manage the org) and Travelers.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

Responses

Response samples

Content type
application/json
{
  • "count": 1,
  • "results": [
    ]
}

Create a new user

Create a new user, and associate it with the specified organization, by specifying the user type (most likely Traveler) as well as either a first name, last name, or email.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

Request Body schema: application/json
email
string <email>

email address associated with the traveler

user_type
required
string (UserType)
Enum: "Traveler" "Admin"

Specifies the type of Navigator account. Most likely the accounts will all be of type Traveler. Valid user types are

  • Traveler - a traveler represents someone who has itineraries associated with them, and is traveling.
  • Admin - an administrator is someone who can login to Navigator on the web, and can manage an organization's users and itineraries.
first_name
string

user first name

last_name
string

user last name

company_name
string

name of the company user works for

Responses

Request samples

Content type
application/json
{
  • "email": "alice@thinklumo.com",
  • "user_type": "Traveler",
  • "first_name": "Alice",
  • "last_name": "Allen",
  • "company_name": "Tarams Software Inc."
}

Response samples

Content type
application/json
{
  • "email": "alice@thinklumo.com",
  • "user_type": "Traveler",
  • "first_name": "Alice",
  • "last_name": "Allen",
  • "company_name": "Tarams Software Inc.",
  • "user_id": 10
}

Search for users in an organization

Returns a list of users in an organization matching the search text

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

query Parameters
search_text
required
string
Example: search_text=Allen

The text to search users against

Responses

Response samples

Content type
application/json
{
  • "count": 1,
  • "results": [
    ]
}

Retrieve a user

Retrieve the user of the specified user id associated with the specified organization

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

user_id
required
number
Example: 10

user id

Responses

Response samples

Content type
application/json
{
  • "email": "alice@thinklumo.com",
  • "user_type": "Traveler",
  • "first_name": "Alice",
  • "last_name": "Allen",
  • "company_name": "Tarams Software Inc.",
  • "user_id": 10
}

Update a user

Update the user of the specified user id associated with the specified organization

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

user_id
required
number
Example: 10

user id

Request Body schema: application/json
email
string <email>

email address associated with the traveler

user_type
required
string (UserType)
Enum: "Traveler" "Admin"

Specifies the type of Navigator account. Most likely the accounts will all be of type Traveler. Valid user types are

  • Traveler - a traveler represents someone who has itineraries associated with them, and is traveling.
  • Admin - an administrator is someone who can login to Navigator on the web, and can manage an organization's users and itineraries.
first_name
string

user first name

last_name
string

user last name

company_name
string

name of the company user works for

Responses

Request samples

Content type
application/json
{
  • "email": "alice@thinklumo.com",
  • "user_type": "Traveler",
  • "first_name": "Alice",
  • "last_name": "Allen",
  • "company_name": "Tarams Software Inc."
}

Response samples

Content type
application/json
{
  • "email": "alice@thinklumo.com",
  • "user_type": "Traveler",
  • "first_name": "Alice",
  • "last_name": "Allen",
  • "company_name": "Tarams Software Inc.",
  • "user_id": 10
}

Delete a user

Delete the user of the specified user id associated with the specified organization

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

user_id
required
number
Example: 10

user id

Responses

Response samples

Content type
application/json
{
  • "status_code": 404,
  • "error": "The resource was not found"
}

Add a tag to a user

Add a tag to an existing user.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

user_id
required
number
Example: 10

user id

Request Body schema: application/json
tag
string <text>

Tag to add to the user

Responses

Request samples

Content type
application/json
{
  • "tag": "VIP"
}

Response samples

Content type
application/json
{ }

Remove a tag from a user

Remove an existing tag from an existing user.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

user_id
required
number
Example: 10

user id

tag
required
string <text>
Example: VIP

The tag to remove from the user

Responses

Response samples

Content type
application/json
{
  • "status_code": 404,
  • "error": "The resource was not found"
}

Retrieve all companies under an organization

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

Responses

Response samples

Content type
application/json
[
  • "Tarams Software Inc."
]

Retrieve all tags under an organization

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

Responses

Response samples

Content type
application/json
[
  • "VIP"
]

Retrieve all itineraries in an organization

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

Responses

Response samples

Content type
application/json
{
  • "count": 1,
  • "results": [
    ]
}

Search for itineraries in an organization

Returns a list of itineraries in an organization matching the search text

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

query Parameters
search_text
required
string
Example: search_text=BOS-STL

The text to search itineraries against

Responses

Response samples

Content type
application/json
{
  • "count": 1,
  • "results": [
    ]
}

Create a new itinerary

Create a new itinerary associated with the specified user_id in the specified organization.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

user_id
required
number
Example: 4100

user id

Request Body schema: application/json
trip_name
string

name for the trip

booking_reference
string Nullable

additional information to be stored along with this itinerary, such as PNR.

flight_ids
required
Array of strings (LumoFlightId)

list of flight IDs in the itinerary

Responses

Request samples

Content type
application/json
{
  • "trip_name": "BOS-STL March 12",
  • "booking_reference": "AWXGDG",
  • "flight_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "uuid": "cabb3527-3c77-488e-8306-f8bf38a904gf",
  • "user_id": 2187,
  • "trip_name": "BOS-STL March 12",
  • "booking_reference": "AWXGDG",
  • "flights": [
    ],
  • "created_timestamp": "2019-08-24T14:15:22Z",
  • "updated_timestamp": "2019-08-24T14:15:22Z"
}

Retrieve an itinerary

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

itinerary_id
required
string <uuid>
Example: 9bb348b3-d567-4392-818f-e19b7ad7fbf2

uuid representing an itinerary

Responses

Response samples

Content type
application/json
{
  • "uuid": "cabb3527-3c77-488e-8306-f8bf38a904gf",
  • "user_id": 2187,
  • "trip_name": "BOS-STL March 12",
  • "booking_reference": "AWXGDG",
  • "flights": [
    ],
  • "created_timestamp": "2019-08-24T14:15:22Z",
  • "updated_timestamp": "2019-08-24T14:15:22Z"
}

Add flights to an itinerary

Add flights to an existing itinerary, making it possible to make changes to an itinerary.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

itinerary_id
required
string <uuid>
Example: 9bb348b3-d567-4392-818f-e19b7ad7fbf2

uuid representing an itinerary

Responses

Response samples

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

Delete an itinerary

This endpoint will delete the specified itinerary. Once deleted, it will no longer be accessible.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

itinerary_id
required
string <uuid>
Example: 9bb348b3-d567-4392-818f-e19b7ad7fbf2

uuid representing an itinerary

Responses

Add a tag to an itinerary

Add a tag to an existing itinerary.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

itinerary_id
required
string <uuid>
Example: 9bb348b3-d567-4392-818f-e19b7ad7fbf2

uuid representing an itinerary

Request Body schema: application/json
tag
string <text>

Tag to add to the itinerary

Responses

Request samples

Content type
application/json
{
  • "tag": "React Foo"
}

Response samples

Content type
application/json
{ }

Remove a tag from an itinerary

Remove an existing tag from an existing itinerary.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

itinerary_id
required
string <uuid>
Example: 9bb348b3-d567-4392-818f-e19b7ad7fbf2

uuid representing an itinerary

tag
required
string <text>
Example: React Foo

The tag to remove from the itinerary

Responses

Response samples

Content type
application/json
{
  • "status_code": 404,
  • "error": "The resource was not found"
}

Delete a flight from an itinerary

Use this endpoint to delete the specified flight from the specified itinerary. If this is the only flight in the itinerary, the itinerary itself gets deleted as well.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

itinerary_id
required
string <uuid>
Example: 9bb348b3-d567-4392-818f-e19b7ad7fbf2

uuid representing an itinerary

flight_id
required
string (LumoFlightId)
Example: WN55DALHOU1608300100

The flight ID in this itinerary

Responses

Retrieve all events of an organization

Retrieve a list of all events associated with an organization

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

Responses

Response samples

Content type
application/json
{
  • "count": 1,
  • "results": [
    ]
}

Create a new event

Create a new event associated with the specified organization.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

Request Body schema: application/json
name
required
string <binary>

Name of the event

location
required
string <binary>

Location of the event

start_date
required
stringYYYY-MM-DD HH:mm:ss

Date of the event

primary_contact_name
string <binary>

Name of the person who is the primary contact for the event

primary_contact_email
string <binary>

Email of the person who is the primary contact for the event

Responses

Request samples

Content type
application/json
{
  • "name": "React Foo",
  • "location": "Delhi, India",
  • "start_date": "2019-10-10 09:00:00",
  • "primary_contact_name": "Afzal S H",
  • "primary_contact_email": "afzal@tarams.com"
}

Response samples

Content type
application/json
{
  • "name": "React Foo",
  • "location": "Delhi, India",
  • "start_date": "2019-10-10 09:00:00",
  • "primary_contact_name": "Afzal S H",
  • "primary_contact_email": "afzal@tarams.com",
  • "uuid": "cabb3527-3c77-488e-8306-f8bf38a904gf",
  • "itineraries": {
    }
}

Retrieve an event

Retrieve the event of the specified event uuid associated with the specified organization

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

event_id
required
string <uuid>
Example: cabb3527-3c77-488e-8306-f8bf38a904gf

event id

Responses

Response samples

Content type
application/json
{
  • "name": "React Foo",
  • "location": "Delhi, India",
  • "start_date": "2019-10-10 09:00:00",
  • "primary_contact_name": "Afzal S H",
  • "primary_contact_email": "afzal@tarams.com",
  • "uuid": "cabb3527-3c77-488e-8306-f8bf38a904gf",
  • "itineraries": {
    }
}

Update an event

Update the event of the specified event uuid associated with the specified organization, partially or fully, as per the payload

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

event_id
required
string <uuid>
Example: cabb3527-3c77-488e-8306-f8bf38a904gf

event id

Request Body schema: application/json
name
string <binary>

Name of the event

location
string <binary>

Location of the event

start_date
stringYYYY-MM-DD HH:mm:ss

Date of the event

primary_contact_name
string <binary>

Name of the person who is the primary contact for the event

primary_contact_email
string <binary>

Email of the person who is the primary contact for the event

Responses

Request samples

Content type
application/json
{
  • "name": "React Foo",
  • "location": "Delhi, India",
  • "start_date": "2019-10-10 09:00:00",
  • "primary_contact_name": "Afzal S H",
  • "primary_contact_email": "afzal@tarams.com"
}

Response samples

Content type
application/json
{
  • "name": "React Foo",
  • "location": "Delhi, India",
  • "start_date": "2019-10-10 09:00:00",
  • "primary_contact_name": "Afzal S H",
  • "primary_contact_email": "afzal@tarams.com",
  • "uuid": "cabb3527-3c77-488e-8306-f8bf38a904gf",
  • "itineraries": {
    }
}

Delete an event

Delete the event of the specified event uuid associated with the specified organization

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

event_id
required
string <uuid>
Example: cabb3527-3c77-488e-8306-f8bf38a904gf

event id

Responses

Response samples

Content type
application/json
{
  • "status_code": 404,
  • "error": "The resource was not found"
}

Map an itinerary to an event

Associates an itinerary under the organization to an event under the organization

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

event_id
required
uuid
Example: cabb3527-3c77-488e-8306-f8bf38a904gf

event id

Request Body schema: application/json
itin_uuid
required
string <uuid>

uuid of the itinerary

Responses

Request samples

Content type
application/json
{
  • "itin_uuid": "9bb348b3-d567-4392-818f-e19b7ad7fbf2"
}

Response samples

Content type
application/json
{
  • "itin_uuid": "9bb348b3-d567-4392-818f-e19b7ad7fbf2"
}

Unmap an itinerary from an event

De-associates an itinerary under the organization from an event under the organization

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

event_id
required
uuid
Example: cabb3527-3c77-488e-8306-f8bf38a904gf

event id

itin_id
required
uuid
Example: 9bb348b3-d567-4392-818f-e19b7ad7fbf2

itinerary id

Responses

Response samples

Content type
application/json
{
  • "status_code": 404,
  • "error": "The resource was not found"
}

Retrieve itineraries associated with an event

Retrieve all itineraries associated with an event under an organization

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

query Parameters
event_id
required
string <uuid>
Example: event_id=cabb3527-3c77-488e-8306-f8bf38a904gf

event id

Responses

Response samples

Content type
application/json
{
  • "count": 1,
  • "results": [
    ]
}

Retrieve an org's default sink settings

Retrieve an org's default sink settings, either for members or travelers. Every sink is configurable at the alert type level.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

org_user_type
required
string
Enum: "members" "travelers"

The type of org user

query Parameters
sink_type_id
integer
Example: sink_type_id=1

To filter the results as per a sink type

alert_type_id
integer
Example: alert_type_id=3

To filter the results as per an alert type

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve an org's defualt settings for a particular sink

Retrieve an org's defualt settings for a particular sink in case of a particular alert type. This is exposed only if the initial defaults set by Lumo are overridden by the org.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

org_user_type
required
string
Enum: "members" "travelers"

The type of org user

sink_type_id
required
integer
Example: 1

The sink type's id

alert_type_id
required
integer
Example: 3

The alert type's id

Responses

Response samples

Content type
application/json
{
  • "sink_type_id": 1,
  • "alert_type_id": 3,
  • "org_id": 98,
  • "org_user_type": "member",
  • "enabled_default": true,
  • "threshold_default": 300
}

Update an org's defualt settings for a particular sink

Update an org's defualt settings for a particular sink in case of a particular alert type.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

org_user_type
required
string
Enum: "members" "travelers"

The type of org user

sink_type_id
required
integer
Example: 1

The sink type's id

alert_type_id
required
integer
Example: 3

The alert type's id

Request Body schema: application/json
enabled_default
required
boolean (DefaultEnabled)

If the combination of the alert and sink type is enabled by default in the org

threshold_default
integer (DefaultThreshold)

The org's default threshold value for the particular combination of alert and sink types. What the threshold value mean is defined by the alert type.

Responses

Request samples

Content type
application/json
{
  • "enabled_default": true,
  • "threshold_default": 300
}

Response samples

Content type
application/json
{
  • "sink_type_id": 1,
  • "alert_type_id": 3,
  • "org_id": 98,
  • "org_user_type": "member",
  • "enabled_default": true,
  • "threshold_default": 300
}

Retrieve an org member's settings for their sinks.

Retrieve an org member's settings for their sinks, configurable at alert type level

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

user_id
required
number
Example: 100

user id

query Parameters
sink_id
integer
Example: sink_id=38752

To filter the results as per a sink

alert_type_id
integer
Example: alert_type_id=3

To filter the results as per an alert type

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve an org member's settings for a sink

Retrieve an org member's settings for a sink-alert type combination. This is exposed only if the sink-alert type combination are once modified.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

user_id
required
number
Example: 100

user id

sink_id
required
integer
Example: 38752

The sink id

alert_type_id
required
integer
Example: 3

The alert type id

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update an org member's settings for a sink

Update an org member's settings for a sink-alert type combination

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

user_id
required
number
Example: 100

user id

sink_id
required
integer
Example: 38752

The sink id

alert_type_id
required
integer
Example: 3

The alert type id

Request Body schema: application/json
enabled
required
boolean (SinkEnabled)

If the sink is enabled by the user for the particular alert type

threshold
integer (SinkThreshold)

The threshold value the user has set for the particular sink-alert type combination. What the threshold value mean is defined by the alert type.

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "threshold": 200
}

Response samples

Content type
application/json
{
  • "sink_id": 38752,
  • "alert_type_id": 3,
  • "enabled": true,
  • "threshold": 200
}

Retrieve a user's personal settings for their sinks.

Retrieve a user's personal settings for their sinks, configurable at alert type level

Authorizations:
path Parameters
user_id
required
number
Example: 100

user id

query Parameters
sink_id
integer
Example: sink_id=38752

To filter the results as per a sink

alert_type_id
integer
Example: alert_type_id=3

To filter the results as per an alert type

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a user's personal settings for a sink

Retrieve a user's personal settings for a sink-alert type combination. This is exposed only if the sink-alert type combination are once modified.

Authorizations:
path Parameters
user_id
required
number
Example: 100

user id

sink_id
required
integer
Example: 38752

The sink id

alert_type_id
required
integer
Example: 3

The alert type id

Responses

Response samples

Content type
application/json
{
  • "sink_id": 38752,
  • "alert_type_id": 3,
  • "enabled": true,
  • "threshold": 200,
  • "alert_type": {
    }
}

Update a user's personal settings for a sink

Update a user's personal settings for a sink-alert type combination

Authorizations:
path Parameters
user_id
required
number
Example: 100

user id

sink_id
required
integer
Example: 38752

The sink id

alert_type_id
required
integer
Example: 3

The alert type id

Request Body schema: application/json
enabled
required
boolean (SinkEnabled)

If the sink is enabled by the user for the particular alert type

threshold
integer (SinkThreshold)

The threshold value the user has set for the particular sink-alert type combination. What the threshold value mean is defined by the alert type.

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "threshold": 200
}

Response samples

Content type
application/json
{
  • "sink_id": 38752,
  • "alert_type_id": 3,
  • "enabled": true,
  • "threshold": 200
}

Retrieve the list of pending invites

Retrieve the invites sent out by the org that hasn't been accepted nor expired yet

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Invite a non-login user of your org to be a member

Invite a non-login user of your org to be a member via their email. Resending the invite with the same payload results in the invite's expiry being extended and the invite email resent.

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

Request Body schema: application/json

specify the user's id and their email

email
required
string <email>

email of the user to be invited

user_id
required
integer

id of the user to be invited

Responses

Request samples

Content type
application/json
{
  • "email": "afzal@mailinator.com",
  • "user_id": 100
}

Response samples

Content type
application/json
{
  • "org_id": 98,
  • "org": "Tarams Ventures",
  • "email": "afzal@mailinator.com",
  • "token": "f2a127fc-ab10-4958-a24c-b627aa9b6f43",
  • "expires": "2020-01-29T05:58:19.986Z",
  • "user_id": 100
}

Revoke a sent invite

Revoke an invite sent to a non-login user of your org

Authorizations:
path Parameters
org_id
required
number
Example: 98

organization id

email
required
string <email>
Example: afzal@mailinator.com

user email

Responses

Accept an invite

Accept an invite using the token sent to the user's email

Authorizations:
path Parameters
token
required
string <uuid>
Example: cabb3527-3c77-488e-8306-f8bf38a904ef

the authorizing token for an invite

Responses

Get user information

Returns information about a user.

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "user_id": 1,
  • "cust_uuid": "9bb348b3-d567-4392-818f-e19b7ad7fbf2",
  • "email": "abc@xyz.com",
  • "first_name": "Ada",
  • "last_name": "Lovelace",
  • "trips_address": "trips+cus_1234567890abcdef@thinklumo.com",
  • "plan": "professional",
  • "picture": "string",
  • "integrations": { },
  • "orgs": [
    ]
}

Retrieve all active sinks for a user

Returns the list of all sinks for a user

Authorizations:

Responses

Response samples

Content type
application/json
{}

Create a new sink

Create a new sink associated with the API key. If the specified destination already exists, then a new sink is not created and the current sink's information is returned.

Authorizations:
Request Body schema: application/json

Specify sink info

destination
required
string <url>

The sink URL where alerts will be sent

type
required
any
Enum: "api" "email"

Sink type

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Retrieve information about a sink

Get details about a sink

Authorizations:

Responses

Response samples

Content type
application/json
{}

Delete a sink

Delete a sink

Authorizations:

Responses

Update a sink's destination

Update sink destination

Authorizations:
Request Body schema: application/json

Specify the destination

destination
required
string <url>

The sink URL where alerts will be sent

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}