selection_token that you must pass unchanged to Create Quote.
Request rules
search_type | Itinerary rule |
|---|---|
oneway | Exactly 1 itinerary |
return | Exactly 2 itineraries |
multidestination | At least 2 itineraries |
Cabin class options
| Value | Meaning |
|---|---|
economy | Economy |
premium_economy | Premium economy |
business | Business |
first | First |
Usage
curl -X POST https://api.payvessel.com/vaas/api/v1/flight/search \
-H "api-key: YOUR_API_KEY" \
-H "api-secret: YOUR_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"search_type": "oneway",
"cabin_class": "economy",
"adults": 1,
"children": 0,
"infants": 0,
"itineraries": [
{
"departure_airport_code": "JFK",
"arrival_airport_code": "DXB",
"departure_date": "2026-08-20"
}
]
}'
Request body
| Field | Type | Required | Description |
|---|---|---|---|
search_type | string | No | oneway by default. Also supports return and multidestination |
cabin_class | string | No | economy by default. Also supports premium_economy, business, and first |
adults | integer | Yes | Number of adult passengers. Minimum 1 |
children | integer | No | Number of child passengers. Default 0 |
infants | integer | No | Number of infant passengers. Default 0 |
itineraries | array | Yes | Travel legs for the search |
Itinerary object
| Field | Type | Required | Description |
|---|---|---|---|
departure_airport_code | string | Yes | 3-letter IATA code |
arrival_airport_code | string | Yes | 3-letter IATA code |
departure_date | date | Yes | Date in YYYY-MM-DD format |
Response
Search returns preview pricing, sopricing.price_status is preview.
| Field | Type | Description |
|---|---|---|
selection_token | string | Opaque token for the selected option |
pricing.currency_code | string | Display currency |
pricing.base_price | number | Merchant-facing base fare |
pricing.service_charge | number | Service fee |
pricing.total_amount | number | Total payable amount |
pricing.wallet_reward_on_success | number | Reward amount to be credited after success |
pricing.price_status | string | preview |
journeys | array | High-level flight journeys and segments |
Example response
{
"status": true,
"message": "Flights retrieved successfully",
"data": [
{
"selection_token": "H4sIAJjPj2gC_5WQwU7DMBBE_2Vyk7t8bS1jQk2lM9m1K1JICJt2mN2o0m7b5HkQ3n3M2fWm6v8Q3m6aB7m6U1B8PpK9s7s1wQf2W4B1zQm5V6g3Y7...",
"pricing": {
"currency_code": "NGN",
"base_price": 487500.0,
"service_charge": 24375.0,
"total_amount": 511875.0,
"wallet_reward_on_success": 2437.5,
"price_status": "preview"
},
"airline_code": "EK",
"airline_name": "Emirates",
"airline_logo_url": "https://cdn.example.com/airlines/ek.png",
"marketing_carrier": "EK",
"journeys": [
{
"name": "Journey 1",
"airline_code": "EK",
"airline_name": "Emirates",
"departure_airport_code": "JFK",
"departure_airport_name": "John F. Kennedy International Airport",
"departure_datetime": "2026-08-20T11:00:00Z",
"arrival_airport_code": "DXB",
"arrival_airport_name": "Dubai International Airport",
"arrival_datetime": "2026-08-21T07:35:00Z",
"stop_count": 0,
"stop_time": null,
"trip_duration": "12h 35m",
"airline_logo_url": "https://cdn.example.com/airlines/ek.png",
"segments": [
{
"sequence": 1,
"airline_code": "EK",
"airline_name": "Emirates",
"flight_number": "EK204",
"departure_airport_code": "JFK",
"departure_airport_name": "John F. Kennedy International Airport",
"arrival_airport_code": "DXB",
"arrival_airport_name": "Dubai International Airport",
"departure_datetime": "2026-08-20T11:00:00Z",
"arrival_datetime": "2026-08-21T07:35:00Z",
"duration": "12h 35m",
"booking_class": "Y",
"cabin_class": "Economy",
"cabin_class_name": "Economy",
"aircraft": "Boeing 777-300ER",
"layover": null,
"layover_duration": null,
"baggage_count": 1,
"baggage_weight": 23,
"baggage_weight_unit": "KG"
}
]
}
],
"fare_rules": [
"Changes may attract airline fees."
],
"penalty_rules": [
"Ticket is non-refundable after departure."
],
"is_refundable": false
}
]
}
API Reference
Full request and response schema
