Skip to main content

Searches and returns available service intents based on filters and trip context.

POST 

/api/app/travel-services/service-intents

Search for service intents by service type and trip context. The endpoint is anonymous; send Content-Type: application/json.

serviceType is required unless serviceIntentKeysFilter contains one or more keys. When keys are supplied, the endpoint resolves only those keys; do not combine them with continuationToken. If serviceType is also supplied, every key must belong to that type.

tripContext.items is a dictionary of provider-specific values. Country codes in these examples use ISO 3166-1 alpha-3 codes, and dates use YYYY-MM-DD.

Visa​

Visa search uses the route, travel dates, and (optionally) the traveler's document type and qualifying exemptions. If system.tripDocumentTypeKey is omitted, the endpoint defaults it to passport.

{
"serviceType": "Visa",
"tripContext": {
"items": {
"system.tripOrigination": "JOR",
"system.tripDestination": "USA",
"system.tripFrom": "2027-02-01",
"system.tripTo": "2027-02-14",
"system.tripDocumentTypeKey": "passport",
"system.exemptions": [101],
"system.exemptionDocumentExpiryDates": {
"101": "2027-12-31"
}
},
"travelerContexts": []
}
}

Use exemption IDs returned by the exemptions API for the same traveler and origination. Include an expiration date when an exemption has a minimum document-validity requirement. The expiry-date object maps exemption IDs to dates. system.tripFrom is used to check that validity; the trip dates are also used when checking whether a visa's stay duration and processing time fit the trip. A visa search can return a continuationToken when another page is available. Send that opaque token with the same search context to retrieve the next page.

Insurance​

Tamkeen uses the trip's origination, destination, and dates. It returns results only when origination is PSE or JOR; destination selects the plan when supplied. The trip must be no longer than 90 days. If destination is omitted, the provider may return both plans.

{
"serviceType": "Insurance",
"tripContext": {
"items": {
"system.tripOrigination": "JOR",
"system.tripDestination": "USA",
"system.tripFrom": "2026-11-01",
"system.tripTo": "2026-11-10"
},
"travelerContexts": []
}
}

Airport Lounge​

Search by city by passing city in tripContext.items:

{
"serviceType": "AirportLounge",
"tripContext": {
"items": {
"city": "Dubai"
},
"travelerContexts": []
},
"inputRestrictionMode": "FailOnMissing"
}

The city value can be a partial name, but it must contain at least three characters after trimming whitespace.

If city is missing, the default ByPassOnMissing mode returns no lounge intents; FailOnMissing instead returns a validation error. To resolve known lounge intents, pass their exact keys in serviceIntentKeysFilter rather than searching by city.

Fast Track​

Fast Track uses the same city context key, but searches fast-track services:

{
"serviceType": "FastTrack",
"tripContext": {
"items": {
"city": "Abu Dhabi"
},
"travelerContexts": []
},
"inputRestrictionMode": "FailOnMissing"
}
Partial city names

The city value can be a partial name, but it must contain at least three characters after trimming whitespace.

With no city, ByPassOnMissing returns no fast-track intents and FailOnMissing returns a validation error. To resolve known fast-track intents, provide their exact keys in serviceIntentKeysFilter.

Request​

Responses​

OK