Itineraries

Note: This page has not yet been converted to the new developer portal format. Please use Swagger to test this API.

Itineraries APIs

POST /itineraries/{organizationId}

Description

Add an itinerary.

  • Generate the itinerary and expected locations for a non-empty and NOT canceled trip itinerary
  • Remove existing itinerary and expected locations for a canceled trip itinerary.

Path Parameters

ParameterMandatoryTypeDefault ValueDescription
organizationIdYesThe Everbridge Organization ID.
emailCaseSensitiveInExternalIdNobooleanYesToggle case sensitivity checemailCaseSensitiveInExternalIdk for 'employeeId' during contact matching if the value is a valid email address. Set to 'true' to enforce case sensitivity, 'false' otherwise.

Request Body

Name: tripItinerary
Type: Object
Content-Type: application/json Required: true
Model: TripItineraryWrapper

Basic Example Value:

{
  "pnr": "WSVM7K",
  "externalItineraryId": "38842385",
  "itineraryStatus": "Active",
  "itinerarySource": "TT5 Manual Trip",
  "createdDate": "2022-09-22T08:45:00Z",
  "lastModifiedDate": "2022-09-22T08:45:00Z",
  "segments": [
    {
      "type": "Air",
      "supplierCode": "EY",
      "supplierName": "Etihad Airways",
      "airRailNumber": "301",
      "fromDateTimeLocal": "2022-10-22T08:15:00",
      "fromTimeZone": "Asia/Dubai",
      "toDateTimeLocal": "2022-10-23T09:05:00",
      "toTimeZone": "Asia/Kuwait",
      "fromIataCode": "AUH",
      "toIataCode": "KWI",
      "fromAddress": {
        "country": "AE",
        "city": "Abu Dhabi",
        "latitude": 24.432972,
        "longitude": 54.651138
      },
      "toAddress": {
        "country": "KW",
        "city": "Kuwait",
        "latitude": 29.226567,
        "longitude": 47.968928
      }
    },
    {
      "type": "Air",
      "supplierCode": "EY",
      "supplierName": "Etihad Airways",
      "airRailNumber": "301",
      "fromDateTimeLocal": "2022-10-23T09:40:00",
      "fromTimeZone": "Asia/Dubai",
      "toDateTimeLocal": "2022-10-23T15:05:00",
      "toTimeZone": "Asia/Kuwait",
      "fromIataCode": "KWI",
      "toIataCode": "YIA",
      "fromAddress": {
        "country": "KW",
        "city": "Kuwait",
        "latitude": 24.432972,
        "longitude": 54.651138
      },
      "toAddress": {
        "country": "ID",
        "city": "Yogyakarta",
        "latitude": -7.8981411,
        "longitude": 110.0574766
      }
    },
    {
      "type": "Hotel",
      "supplierCode": "HH",
      "supplierName": "Hilton",
      "fromDateTimeLocal": "2022-10-23T17:59:59",
      "fromDateTime": "2022-10-23T21:59:59Z",
      "toDateTimeLocal": "2022-10-23T23:59:00",
      "toDateTime": "2022-10-24T03:59:00Z",
      "fromTimeZone": "America/New_York",
      "toTimeZone": "America/New_York",
      "fromAddress": {
        "locationName": "Hilton New York Fashion District Hotel",
        "country": "US",
        "state": "New York",
        "city": "New York",
        "streetAddress": "152 West 26th Street",
        "postalCode": "10001",
        "latitude": 40.745529,
        "longitude": -73.993713
      }
    },
    {
      "type": "Rail",
      "supplierCode": "2V",
      "supplierName": "Amtrak",
      "airRailNumber": "42",
      "fromDateTimeLocal": "2022-10-24T13:23:00",
      "fromTimeZone": "Europe/Amsterdam",
      "toDateTimeLocal": "2022-10-24T16:50:00",
      "toTimeZone": "Europe/Amsterdam",
      "fromIataCode": "ZYE",
      "toIataCode": "ZYA"
    },
    {
      "type": "Car",
      "supplierCode": "ET",
      "supplierName": "Enterprise",
      "fromDateTime": "2022-10-25T08:00:00Z",
      "toDateTime": "2022-10-25T11:00:00Z",
      "fromIataCode": "DEN",
      "toIataCode": "DEN"
    }
  ],
  "passengers": [
    {
      "contactId": 241901148045320,
      "employeeId": "E001",
      "firstName": "Tom",
      "lastName": "Hans",
      "middleName": "A",
      "emailAddresses": [
        "[email protected]",
        "[email protected]"
      ],
      "phoneNumbers": [
        {
          "phoneNumber": "15712345678",
          "countryName": "CN"
        }
      ]
    }
  ],
  "travelArranger": {
    "contactId": 241901148045321,
    "employeeId": "E002",
    "firstName": "Mike",
    "lastName": "Smith",
    "middleName": "A",
    "emailAddresses": [
      "[email protected]",
      "[email protected]"
    ],
    "phoneNumbers": [
      {
        "phoneNumber": "15712348765",
        "countryName": "CN"
      }
    ]
  }
}

Extended Example Value
Coming Soon
json

Request Parameters

ParameterMandatoryTypeDefault ValueDescription
autoCreateContactNobooleanTrueContacts will be created for travelers that do not match the default.
contactRecordTypeIdNolongThe contact record type ID that will be used when contacts are created for travelers who do not match.

Response Body

Successful Response

Model: RestfulModificationResult

{
  "message": "OK",
  "id": 470595271655442,
  "baseUri": "https://api-qa1.everbridge.net/rest/itineraries/241901148045320/",
  "instanceUri": "https://api-qa1.everbridge.net/rest/itineraries/241901148045320/470595271655442"
}

Error Response

Model: ValidationException

{
  "status": 400,
  "message": "Travel matching error, no contact matching."
}

Error Messages

StatusMessageDescription
400Travel matching error, no contact matching.If all travelers cannot be matched to the existing EB contacts or contact creation failed for all travelers.
400The itinerary does not contain any segmentsIf the itinerary doesn't contain any segments for a non-canceled itinerary.
400All segments of the itinerary are invalid, PNR creation failedIf all segments of the itinerary are invalid for a non-canceled itinerary.
401Invalid credentials: Get User failedAuthentication Error

POST /itineraries/{organizationId}/batch

Description

Add a batch of itineraries.

  • Generate the itineraries and expected locations for non-empty and NOT canceled trip itineraries.
  • Remove the itineraries and expected locations for canceled trip itineraries.

๐Ÿ“˜

Per call limit

The batch creation itinerary API call has the following limitations per call:

  • 1,000 itineraries if no contact creation is needed.
  • 50 itineraries if contact creation is required.

Path Parameters

ParameterMandatoryTypeDefault ValueDescription
organizationIdYesThe Everbridge Organization ID.
emailCaseSensitiveInExternalIdNobooleanYesToggle case sensitivity checemailCaseSensitiveInExternalIdk for 'employeeId' during contact matching if the value is a valid email address. Set to 'true' to enforce case sensitivity, 'false' otherwise.

Request Body

It is better to include under 100 trip itineraries in the request body if each trip itinerary needs to create a new Everbridge contact to match the passengerโ€™s profile.
Name: tripItineraries
Type: Object
Content-Type: application/json
Required: true
Model: TripItineraryWrapper[]

Basic Example Value:
Coming soon

Request Parameters

ParameterMandatoryTypeDefault ValueDescription
autoCreateContactNobooleanTrueContacts will be created for travelers that do not match the default.
contactRecordTypeIdNolongThe contact record type ID that will be used when contacts are created for travelers who do not match.

Response Body

All successful

{
  "message": "OK",
  "code": 100,
  "data": [
    "241901148045320",
    "241901148045321",
    "241901148045322"
  ]
}

Partially successful

{
  "message": "OK",
  "code": 200,
  "data": [
    "241901148045320",
    "Field pnr is empty.",
    "Field segments.type is empty."
  ]
}

All failed

{
  "message": "OK",
  "code": 300,
  "data": [
    "Field segments.fromAddress is empty.",
    "Field pnr is empty.",
    "Field segments.type is empty."
  ]
}

Error Messages

StatusMessageDescription
400Travel matching error, no contact matchingIf all travelers cannot be matched to the existing EB contacts, or contact creation.
401Invalid credentials: Get User failedAuthentication Error

PUT /itineraries/{organizationId}/{id}

Description

Update an itinerary.

  • Update the itinerary and expected locations for a non-empty and NOT canceled trip itinerary.
  • Remove the existing itinerary and expected locations for the canceled trip itinerary.

Path Parameters

ParameterMandatoryTypeDefault ValueDescription
organizationIdYesThe Everbridge Organization ID.
idThe Itinerary ID (The Travel Plan ID).

Request Body

Coming soon

Request Parameters

ParameterMandatoryTypeDefault ValueDescription
autoCreateContactNobooleanTrueContacts will be created for travelers that do not match the default.
contactRecordTypeIdNolongThe contact record type ID that will be used when contacts are created for travelers who do not match.

Response Body

Model: RestfulModificationResult

{
  "message": "OK",
  "id": 470595271655442,
  "baseUri": "https://api-qa1.everbridge.net/rest/itineraries/241901148045320/",
  "instanceUri": "https://api-qa1.everbridge.net/rest/itineraries/241901148045320/470595271655442"
}

Error Messages

StatusMessageDescription
400Field ["segments.type"] is empty.Missing parameters.
400Travel matching error, no contact matching.If all travelers cannot be matched to the existing EB contacts or contact creation failed for all travelers.
400The itinerary does not contain any segmentsIf the itinerary doesn't contain any segments for a non-canceled itinerary.
400All segments of the itinerary are invalid, PNR creation failedIf all segments of the itinerary are invalid for a non-canceled itinerary.
404Invalid credentials: Get User failedAuthentication Error
401Can not find the trip itinerary with ID. 470595271655442 within the organization 241901148045320.Record not found

DELETE /itineraries/{organizationId}/{id}

Description

Cancel/Delete an itinerary.

Path Parameters

ParameterMandatoryTypeDefault ValueDescription
organizationIdYesThe Everbridge Organization ID.
idThe Itinerary ID (The Travel Plan ID).

Request Body

Coming soon
json

Request Parameters

ParameterMandatoryTypeDefault ValueDescription
autoCreateContactNobooleanTrueContacts will be created for travelers that do not match the default.
contactRecordTypeIdNolongThe contact record type ID that will be used when contacts are created for travelers who do not match.

Response Body

{
  "message": "OK",
  "id": 470595271655442,
  "baseUri": "https://api-qa1.everbridge.net/rest/itineraries/241901148045320/",
  "instanceUri": "https://api-qa1.everbridge.net/rest/itineraries/241901148045320/470595271655442"
}

Error Messages

StatusMessageDescription
404Invalid credentials: Get User failedAuthentication Error
401Can not find the trip itinerary with ID. 470595271655442 within the organization 241901148045320.Record not found

POST /itineraries/query/{organizationId}

Description

Query itineraries by parameters.

Path Parameters

ParameterMandatoryTypeDefault ValueDescription
organizationIdYesThe Everbridge Organization ID.

Request Parameters

ParameterMandatoryTypeDefault ValueDescription
pageNumberNoint1

Request Body

If the client wants to get many itineraries, they may pass many PNR values. Due to the URL length limit, we put the search criteria in the request body.

๐Ÿ“˜

Current support

In the current phase, we only support the query by PNR or external trip ID values.

Name: searchCriteria
Type: Object
Content-Type: application/json
Model: ItinerarySearchCriteria

Query by Pnr

{
  "fieldName": "pnr",
  "fieldValues": [
    "DRTWEV",
    "Q2WEDC46UYOP"
  ]
}

Query by ItineraryId:

{
  "fieldName": "externalItineraryId",
  "fieldValues": [
    "134808153",
    "134808154"
  ]
}

Response Body

{
  "message": "OK",
  "firstPageUri": "https://api-qa1.everbridge.net/rest/itineraries/query/241901148045320/?pageNumber=1",
  "nextPageUri": "https://api-qa1.everbridge.net/rest/itineraries/query/241901148045320/?pageNumber=2",
  "lastPageUri": "https://api-qa1.everbridge.net/rest/itineraries/query/241901148045320/?pageNumber=2",
  "start": 0,
  "totalCount": 15,
  "totalPageCount": 2,
  "currentPageNo": 1,
  "page": {
    "pageSize": 10,
    "data": [
      {
        "id": 241901148045123
      },
      {
        "id": 241901148045124
      }
    ]
  }
}

DELETE /itineraries/{organizationId}/batch

Description

Batch delete itineraries.

๐Ÿ“˜

Per call limit

The batch itinerary API deletion call is limited to 2,000 deletions per call.

Request Body

Name: ids
Type: Array
Content-Type: application/json Model: List
Example Value:
[241901148045320, 241901148045321]

Response Body

All successful

{
  "message": "OK",
  "code": 100
}

Partially successful

{
  "message": "OK",
  "code": 200,
  "data": [
    "241901148045321: Not found."
  ]
}

All failed

{
  "message": "OK",
  "code": 300,
  "data": [
    "241901148045320: Not found.",
    "241901148045321: Not found."
  ]
}

GET /itineraries/expectedLocations/{organizationId}/{id}

Description

Get expected locations by Itinerary ID.

Path Parameters

ParameterMandatoryTypeDefault ValueDescription
organizationIdYesThe Everbridge Organization ID.
idThe Itinerary ID (The Travel Plan ID).

Request Parameters

ParameterMandatoryTypeDefault ValueDescription
pageNumberNoint1

Response Body

Coming soon