Types
Below are all the available GraphQL types and fields. Please refer to the getting started guide for detailed information and examples on how to use the API.
Try it out
Explore the GraphQL Schema and start making requests with the interactive API console. Visit the console
Query
getLocations
Get location matching given query string
getAllLocations
Get all available locations
- Returns:
[Location!]!
getJourneys
Get journeys between origin and destination on given date
- Returns:
[Journey!]!
- Arguments:
- origin:
ID!
Origin location uid
- destination:
ID!
Destination location uid
- date:
Date!
Date of departure
- filter:
JourneyFilterInput
Optional filter for journey search
- via:
[ViaInput!]
Optional via stopovers
- passengers:
[PassengerPlaceholderInput!]
Passenger details required for availability
- currency:
String
(default: "EUR")Currency to display availability prices in
- origin:
getJourneyOffer
Get fares for given journey, prefer socket
- Returns:
JourneyOffer!
- Arguments:
- journey:
ID!
Id of Journey to get fares for
- passengers:
[PassengerPlaceholderInput!]!
Passenger details
- currency:
String
(default: "EUR")Currency to display prices in
- isPassholder:
Boolean
(default: false)Whether the passenger is a passholder
- journey:
getJourneyForBlueprint
Get journey for given blueprint
- Returns:
Journey
- Arguments:
- blueprint:
ID!
Blueprint id to get journey for
- date:
Date!
Date of departure
- passengers:
[PassengerPlaceholderInput!]
Passenger details required for availability
- currency:
String
(default: "EUR")Currency to display availability prices in
- blueprint:
getPassBundles
Get applicable pass bundles for given passengers
- Returns:
[PassBundle!]!
- Arguments:
- passengers:
[PassPassengerInput!]!
Passenger details
- departureDate:
Date
Planned departure date
- filter:
PassBundleFilterInput
Optional filter for pass bundles
- currency:
String
(default: "EUR")Currency to display prices in
- passengers:
getPassBundlesForJourneyOffer
Get applicable pass bundles for given journey offer
- Returns:
[PassBundle!]!
- Arguments:
- journeyOffer:
ID!
Id of journey offer to get pass bundles for
- passengers:
[PassPassengerInput!]
Passenger details
- filter:
PassBundleFilterInput
Optional filter for pass bundles
- currency:
String
(default: "EUR")Currency to display prices in
- journeyOffer:
getJourneyRatings
Get comparative rating for journeys
getTicketingFee
Get fee for issuing tickets
- Returns:
Money
- Arguments:
node
Get anything with an ID
- Returns:
Node
- Arguments:
getSalesAgent
Get sales agent details
- Returns:
SalesAgent
Mutation
createBooking
Create a booking
- Returns:
Booking!
- Arguments:
updateBooking
Update an existing booking
- Returns:
Booking!
- Arguments:
- id:
ID!
Id of booking to update
- passengers:
[FullPassengerInput!]
Passenger details to update
- selections:
[BookingSelectionInput!]
Booking selections to update
- id:
updatePart
Update an offer part of a booking
- Returns:
Booking!
- Arguments:
- id:
ID!
Id of part to update
- booking:
ID!
Id of booking to update
- placeProperties:
[PlacePropertyInput!]
Place properties to update
- addAncillaries:
[AddAncillaryInput!]
Ancillaries to add
- removeAncillaries:
[RemoveAncillaryInput!]
Ancillaries to remove
- id:
createPayment
Create a payment which, once fulfilled, will create and finalize the order
- Returns:
Payment!
- Arguments:
- booking:
ID!
Id of booking to pay for
- cancelUrl:
String!
URL to redirect to in the case of payment cancellation
- successUrl:
String!
URI Template (RFC 6570) compliant string with {order} placeholder
- metadata:
JSONObject
JSON encoded string of metadata to attach to order
- booking:
createOrder
Confirm booking selections and prebook fares
- Returns:
Order!
- Arguments:
- booking:
ID!
Id of booking to confirm
- metadata:
JSONObject
JSON encoded string of metadata to attach to order
- booking:
finalizeOrder
Finalize order and fetch tickets
Subscription
getJourneys
Get journeys between origin and destination on given date
- Returns:
[Journey!]!
- Arguments:
- origin:
ID!
Origin location uid
- destination:
ID!
Destination location uid
- date:
Date!
Date of departure
- filter:
JourneyFilterInput
Optional filter for journey search
- via:
[ViaInput!]
Optional via stopovers
- passengers:
[PassengerPlaceholderInput!]
Passenger details required for availability
- currency:
String
(default: "EUR")Currency to display availability prices in
- origin:
getJourneyOffer
Get fares for given journey
- Returns:
JourneyOffer!
- Arguments:
- journey:
ID!
Id of Journey to get fares for
- passengers:
[PassengerPlaceholderInput!]!
Passenger details
- currency:
String
(default: "EUR")Currency to display prices in
- isPassholder:
Boolean
(default: false)Whether the passenger is a passholder
- journey:
getJourneyForBlueprint
Get journey for given blueprint
- Returns:
Journey
- Arguments:
- blueprint:
ID!
Blueprint id to get journey for
- date:
Date!
Date of departure
- passengers:
[PassengerPlaceholderInput!]
Passenger details required for availability
- currency:
String
(default: "EUR")Currency to display availability prices in
- blueprint:
Objects
AnonymousLocation
A station where stops may be made but journeys cannot be planned from/to
Fields
- name:
String!
Availability
Ticket availablility
Fields
- status:
AvailabilityStatus!
- accommodations:
[Accommodation!]
- ticketClasses:
[TicketClass!]
- priceFrom:
Money
Accommodation
Accommodation details for a journey segment.
Describes the type of seating or sleeping arrangement available on a train/bus/ferry, including comfort level and specific features. Used to help passengers choose their preferred travel experience.
The description field provides human-readable details about the accommodation (e.g. "1 person sleeper cabin"), while subType contains a standardized code representation of the same information (e.g., "SINGLE").
Fields
- type:
AccommodationType!
- description:
String
- subType:
String
AdmissionPart
The admission (tariff) part of an offer.
Represents the right to travel for the covered segments (the fare/tariff).
Contains refund/exchange conditions
and the flexibility
level, as well as
the normalized serviceClass
and (operator-specific) comfortClass
.
Fields
- conditions:
[ReturnCondition!]!
- flexibility:
Flexibility!
- serviceClass:
ServiceClass!
- comfortClass:
String
- segments:
[Segment!]!
- price:
Money
Ancillary
An ancillary service that can be selected for a reservation.
Additional services or add-ons that passengers can purchase beyond the basic fare. These enhance the travel experience and may include meals, insurance, or special assistance.
Common types and examples:
- "BREAKFAST": On-board breakfast, pre-ordered meals
- "MEAL": On-board dining, pre-ordered meals
- "INSURANCE": Travel insurance, cancellation protection
- "LUGGAGE": Extra baggage allowance, bike transport
- "UPGRADE": Seat upgrades, priority boarding
- "ENTERTAINMENT": WiFi access, entertainment packages
The price field indicates the additional cost, while selections track which passengers have chosen this service.
Fields
- id:
ID!
- name:
String!
- type:
String!
- description:
String
- image:
FileResource
- price:
Money
- selections:
[AncillarySelection!]!
AncillarySelection
A selection of an ancillary service
Fields
BlueprintJourney
A journey constructed from a predefined itinerary blueprint.
Uses a curated sequence of segments and optional stopovers defined by a blueprint. Blueprints are suitable for editorial or productized routes (e.g. scenic itineraries, recommended routes, or multi-city trips) and can include planned overnight stopovers.
Typical use cases:
- Publishing recommended routes with fixed or suggested stopovers
- Recreating saved or shared itineraries
- Ensuring specific paths or operators are used
Fields
- id:
ID!
- status:
JourneyStatus!
- itinerary:
[ItineraryItem!]
BookingFare
A bookable fare offer for a journey
Fields
- id:
ID!
- name:
String!
- price:
Money!
- description:
String
- refundPolicies:
[String!]
- placePreferences:
[PlacePreference!]
- compartmentTypes:
[CompartmentType!]
Booking
Represents a temporary booking that holds selected offers, pass bundles, and passenger information before payment and confirmation. Bookings have a limited lifespan and must be confirmed before expiration.
If expiresAt
is reached without confirmation, or if the booking fails for any
reason, the booking is automatically cancelled and offers are released back to
inventory. An expired or failed booking cannot be used again and will need to be
recreated from scratch.
Fields
- id:
ID!
- expiresAt:
DateTime
- ticketingFee:
Money
- totalPrice:
Money
- passengers:
[Passenger!]
- selections:
[BookingSelection!]
- requirements:
PassengerRequirements
- termsAndConditions:
[String!]
CompartmentType
A compartment type for a fare, e.g. Sleeper or Couchette
Fields
CheckInResource
Resource that can be accessed for check-in and ticket issuing
Fields
- url:
String!
FullPassenger
All passenger details
Fields
- type:
PassengerType!
- id:
ID!
- firstName:
String
- lastName:
String
- age:
Int
- tel:
String
- email:
String
- birthDate:
Date
- title:
PassengerTitle
- countryResidence:
String
- isContactPerson:
Boolean
- nationality:
String
- passportNumber:
String
- placeOfBirthCity:
String
- placeOfBirthCountry:
String
FileResource
File resource
Fields
GeoJsonPoint
Coordinates of a given location in GeoJSON Point format.
Follows the GeoJSON specification (RFC 7946) using WGS84 coordinate system. Coordinates are stored as [longitude, latitude] array (note the order).
Examples:
- London: [-0.1278, 51.5074] (longitude, latitude)
- Rome: [12.4964, 41.9028] (longitude, latitude)
- Stockholm: [18.0686, 59.3293] (longitude, latitude)
- Berlin: [13.4050, 52.5200] (longitude, latitude)
Note: The type field is always "Point" for this implementation.
Fields
GenericOrderItem
An unspecified item in an order
Fields
JourneyOffer
Fare result produced by a given journey
Fields
- id:
ID!
- status:
JourneyStatus!
- itinerary:
[ItineraryItem!]
JourneySelection
The journey selected for an offer
Fields
- itinerary:
[ItineraryItem!]!
JourneyFare
A fare offer for a journey
Fields
JourneyOfferSelection
Selected journey offer that is part of a booking
Fields
- journey:
JourneySelection!
- offers:
[Offer!]!
JourneyOrderItem
A booked journey from a journey offer, containing segments, tickets and other resources
Fields
- segments:
[Segment!]!
- offer:
Offer!
- resources:
[OrderResource!]
Location
Known location from and to which journeys can be planned
Fields
- uid:
ID!
- name:
String!
- countryCode:
String!
- coordinates:
GeoJsonPoint!
Money
Monetary sum using CLDR (Common Locale Data Repository) format.
The amount field represents the monetary value in the smallest currency unit:
- For currencies with decimal places (USD, EUR, GBP, etc.): amount is in cents (e.g., 1000 = $10.00, 1250 = €12.50)
- For currencies without decimal places (JPY, KRW, etc.): amount is in whole units (e.g., 1000 = ¥1000, 1250 = ¥1250)
Users are advised to consult the CLDR specification for proper currency formatting and display. The currency field contains the ISO 4217 currency code (e.g., "USD", "EUR", "JPY").
Examples:
- USD 1000 = $10.00 (1000 cents)
- EUR 1250 = €12.50 (1250 euro cents)
- JPY 1000 = ¥1000 (1000 yen, no decimal places)
- KRW 5000 = ₩5000 (5000 won, no decimal places)
Fields
NonStopJourney
A direct journey with no planned stopovers.
Represents the optimal (fastest) end-to-end route from origin to destination without overnight stopovers. Transfers between trains may still occur, but the itinerary does not intentionally include long breaks or multi-day segments.
While this optimizes for speed, it may result in less comfortable connections that require transfers at inconvenient times.
Use when passengers want the fastest connection in a single travel day where possible.
Fields
- id:
ID!
- status:
JourneyStatus!
- itinerary:
[ItineraryItem!]
NoChargeRedirect
Payment type used when no payment is required.
This payment type is used in cases where:
- The booking has a total price of 0
- The booking has been fully paid with gift cards or credits
- The booking is being processed through an agent with direct billing
The URL field will redirect to the provided successUrl
.
Fields
Operator
Operator details
Fields
- name:
String!
- image:
FileResource
Offer
A priced, bookable combination of entitlements for a journey.
An offer bundles everything needed to travel on a ticketable segment of an itinerary. It is made up of one or more parts:
AdmissionPart
: the right-to-travel/tariff entitlement (admission to board)ReservationPart
: optional seat/berth reservations and add-ons
Pricing and composition:
price
: total price for all included parts in the requested currencyparts
: per-part breakdown with their own price and the segments they cover
Usage:
- returned by journey pricing endpoints and attached to itinerary results
- selected when creating a booking (see
JourneyOfferSelection
andOfferSelectionInput
) - per-part options (e.g.,
placeProperties
,ancillaries
) are configured on ReservationPart items
Notes:
- Some connections can be traveled without a reservation; such offers only have an AdmissionPart
- Sometimes reservations are included, in which case a
ReservationPart
with no price is returned - Long or mixed-operator journeys may include multiple
AdmissionPart
andReservationPart
items, each covering different segments
Fields
Order
Finalized order with confirmed bookings and issued tickets.
Represents a completed transaction where payment has been processed, offers have been confirmed, and tickets have been or are being issued. Orders are the final state of a booking and contain all travel documentation.
The reference field is typically used for customer service inquiries.
Fields
- id:
ID!
- status:
OrderStatus!
- reference:
String!
- items:
[OrderItem!]
- passengers:
[FullPassenger!]
- metadata:
JSONObject
PlanningPeriod
Period for which a serivce is scheduled to run
Fields
- startDate:
Date!
- endDate:
Date!
- bitfield:
String!
A bitfield string representation of the days of service encoded as a hexadecimal string.
Each bit in the bitfield corresponds to a specific day, starting from the
startDate
and ending on theendDate
. Each hexadecimal character represents 4 days (bits).Bit interpretation:
- Bit 0 = startDate
- Bit 1 = startDate + 1 day
- Bit 2 = startDate + 2 days
- etc.
Examples:
- "FF" = 8 days of service (11111111 in binary)
- "F0" = First 4 days of service (11110000 in binary)
- "0F" = Last 4 days of service (00001111 in binary)
- "AA" = Every other day (10101010 in binary)
To decode: Convert hex to binary, each 1 represents a day with service.
PlaceProperty
Option relating to the seating arrangement and other aspects of the journey.
Allows passengers to specify preferences for their travel experience, such as seat location, cabin type, or special requirements. These properties can be required (mandatory selection) or optional (preference-based).
Common property types:
- "GENDER": Segregated cabin by gender
- "PLACE_OR_COMPARTMENT_LOCATION": Location of the place or compartment
- "SPECIAL_COMPARTMENT_TYPE": Special compartment type
The availableOptions list shows all possible choices, while selectedOption indicates the passenger's current preference.
Fields
- id:
ID!
- type:
String!
- required:
Boolean
- availableOptions:
[PlacePropertyOption!]!
- selectedOption:
PlacePropertyOption
PlacePropertyOption
An option for a place property.
Represents a specific choice within a place property category. These options are what passengers can select from when choosing their preferences.
Examples by property type:
- GENDER: "MEN", "LADIES", "MIXED"
- PLACE_OR_COMPARTMENT_LOCATION: "WINDOW", "AISLE", "FRONT", "BACK"
- SPECIAL_COMPARTMENT_TYPE: "EASY_ACCESS", "WITHOUT_ANIMALS", "QUIET_ZONE"
The value field contains the standardized identifier for the option, while the id field provides a unique reference for selection tracking.
Fields
PlacePreference
Possible place preferences
Fields
PassengerBundle
Passengers grouped by type for fare calculation and pass bundle allocation.
Represents a count of passengers of the same type that will be traveling together. This grouping is used to:
- Calculate group fares and discounts
- Allocate rail passes and other travel products
The count field represents the number of passengers of this specific type.
Fields
- count:
Int!
- type:
PassengerBundleType!
PassBundle
Bundle of rail passes and similar travel products.
Represents a collection of travel passes that can be purchased together, typically for multiple passengers or extended travel periods. These bundles provide access to train networks across multiple countries.
Pass structure:
class
: "1stclass" (first class travel) or "2ndclass" (second class travel)product
: "interrail-global-pass" (33 countries), "eurail-one-country-pass-sweden" (single country)travelDayCount
: Number of days the pass can be used for travel within the validity periodvalidityPeriod
: Overall time window when the pass is valid
Pass types:
- Continuous passes:
travelDayCount
is null (unlimited daily travel during validity period) - Flexi passes:
travelDayCount
specifies exact number of travel days within validity period
Fields
- id:
ID!
- class:
String
- product:
String!
- price:
Money!
- passengers:
[PassengerBundle!]!
- travelDayCount:
Int
- validityPeriod:
Duration
PassengerPlaceholder
The minium passenger details
Fields
- type:
PassengerType!
- id:
ID!
- age:
Int
- birthDate:
Date
PassengerRequirements
Details required for all passengers on a specific booking.
Defines which passenger information fields are mandatory for a particular booking. Requirements are determined by ticketing providers and vary depending on the operator being used.
Fields
- countryResidence:
Boolean!
- dateOfBirth:
Boolean!
- email:
Boolean!
- nationality:
Boolean!
- passportNumber:
Boolean!
- placeOfBirthCity:
Boolean!
- placeOfBirthCountry:
Boolean!
- title:
Boolean!
- tel:
Boolean!
- firstName:
Boolean!
- lastName:
Boolean!
PassBundleSelection
Selected Interrail bundle that is part of a booking
Fields
- product:
String!
- class:
String
- price:
Money!
- passengers:
[PassengerBundle!]!
- travelDayCount:
Int
- validityPeriod:
Duration
PdfTicket
Ticket issued in PDF format for download
Fields
- url:
String!
PassBundleOrderItem
A booked rail pass from a pass bundle offer, containing passenger details and pass information
Fields
- passenger:
FullPassenger!
- code:
String
- class:
String
- product:
String!
- price:
Money!
- travelDayCount:
Int
- validityPeriod:
Duration
ReservationPart
The reservation part of an offer.
Represents the seat/berth reservation(s) and related options for the covered
segments. May expose configurable placeProperties
(e.g., window/aisle,
quiet-zone) and optional ancillaries
(e.g., luggage, meals). price
reflects
the reservation cost for the part; the offer total is on Offer.price
.
Fields
- id:
ID
- conditions:
[ReturnCondition!]!
- flexibility:
Flexibility!
- accommodation:
Accommodation!
- placeProperties:
[PlaceProperty!]
- ancillaries:
[Ancillary!]
- comfortClass:
String
- segments:
[Segment!]!
- price:
Money
ReturnCondition
The conditions for returning or exchanging an offer.
Defines the rules and policies that apply when a passenger needs to modify or cancel their booking. These conditions vary by offer type and operator, affecting refundability and exchange options.
The description provides human-readable policy details, while the type categorizes the return option as either refund, exchange, or unknown.
Fields
- description:
String!
- type:
ReturnType!
RateLimit
Rate limit imposed for an agent to prevent API abuse.
Implements rate limiting to ensure fair usage of the API across all agents and to protect system resources from excessive requests.
When remaining reaches 0, requests are rejected until resetAt. Specific limits are determined by the commercial agreement with each agent.
Fields
- limit:
Int!
- remaining:
Int!
- resetAt:
DateTime!
- resource:
String!
- unit:
RateLimitUnit!
ServiceBrand
The brand of the service
Fields
- name:
String!
- image:
FileResource
Segment
Individual train segment representing a single physical train journey between two stops.
A segment is the atomic unit of travel - it represents one train/bus/ferry that
travels from origin to destination, possibly with intermediate stops but no
change of transport. Multiple segments can be combined to form an individual
journey leg, see SegmentCollection
.
Fields
- origin:
Stop!
- destination:
Stop!
- departureAt:
DateTime!
- arrivalAt:
DateTime!
- duration:
Int!
- transport:
Transport!
- operator:
Operator!
- serviceBrand:
ServiceBrand
- identifier:
String
- direction:
String
- services:
[String!]!
Stopover
Location for an overnight stopover
Fields
SegmentCollection
A collection of connected segments that form a logical journey leg.
Represents a sequence of segments that:
- Share the same availability status
- Can be booked together
- Have common offer options
- Form a continuous path between major stops
Used to group related segments together for pricing and booking purposes.
Fields
- status:
SegmentCollectionStatus!
- segments:
[Segment!]
- offers:
[Offer!]
- availability:
Availability
- planningPeriod:
PlanningPeriod
- polylines:
[String!]
Strings representing series of Positions encoded using the Google Maps Polyline algorithm.
May require decoding. See https://developers.google.com/maps/documentation/utilities/polylinealgorithm
SmartJourney
A journey that optimizes for comfort by limiting daily travel time.
For short distances, provides direct connections when available. For longer routes, automatically segments the journey into multiple days to avoid excessively long travel times. This ensures passenger comfort and builds in buffer time in case of disruptions.
Segmentation logic considers factors like night trains, connection times, and time of day to determine whether splitting into multiple days would improve the overall experience.
This is the default journey type returned by the API.
Typical use cases:
- Long-distance trips that would be exhausting in a single day
- Routes where overnight breaks improve reliability
- Itineraries benefiting from night trains or natural break points
Fields
- id:
ID!
- status:
JourneyStatus!
- itinerary:
[ItineraryItem!]
SelectedFare
The selected fare of a journey offer
Fields
- id:
ID!
- name:
String!
- price:
Money!
- description:
String
- refundPolicies:
[String!]
- placePreference:
PlacePreference
- compartmentType:
String
StripePayment
Payment using Stripe
Fields
SalesAgent
An authorized agent interacting with the API
Fields
- uid:
String!
- email:
String
- tel:
String
- paymentMethod:
PaymentMethod!
- rateLimits:
[RateLimit!]!
TicketClass
The class of an available ticket, combining comfort and service levels.
Represents the quality and amenities available for a specific fare option. The comfortClass provides operator-specific classification (e.g., "1st", "2nd", "Premium"), while serviceClass gives a normalized comparison across different operators.
Examples:
- comfortClass: "1st", serviceClass: HIGH (First class with premium service)
- comfortClass: "2nd", serviceClass: STANDARD (Second class with standard service)
- comfortClass: "Premium", serviceClass: BEST (Premium class with best available service)
- comfortClass: "Economy", serviceClass: BASIC (Economy class with basic service)
Fields
- comfortClass:
String
- serviceClass:
ServiceClass!
TicketOnDeparture
Ticket which can be retrieved on departure
Fields
- reference:
String!
Ticket collection reference
- description:
String!
Instructions on how to retrieve the ticket
Interfaces
Node
Any unique resource with an ID
Possible types
- Offer
- NonStopJourney
- BlueprintJourney
- SmartJourney
- JourneyOffer
- JourneyFare
- BookingFare
- SelectedFare
- PlacePreference
- PassBundle
- Booking
- StripePayment
- NoChargeRedirect
- Order
Fields
- id:
ID!
Stop
Generic train stop
Possible types
Fields
- name:
String!
OfferPart
One part that makes up an offer.
Each part references the exact segments
it applies to. The optional price
reflects the cost of this part; the overall total is reported on
Offer.price
.
Possible types
Fields
Journey
Journey result produced by any given search algorithm
Possible types
Fields
- id:
ID!
- status:
JourneyStatus!
- itinerary:
[ItineraryItem!]
Fare
Fare offer for given itinerary item
Possible types
Fields
Passenger
A passenger with minimal details
Possible types
Fields
- type:
PassengerType!
- id:
ID!
- age:
Int
- birthDate:
Date
Payment
Represents a payment that needs to be processed to complete an order. The payment interface defines the common fields shared across different payment methods:
id
: Unique identifier for the paymenturl
: URL where the customer can complete the payment
Different payment implementations (like StripePayment
or NoChargeRedirect
)
may provide additional fields specific to their payment flow.
The payment URL typically redirects to a payment page hosted by All Aboard where the customer can securely enter their payment details.
Possible types
Fields
Resource
Generic resource that can be accessed or downloaded.
Represents digital assets associated with orders, such as tickets, boarding passes, receipts, and other travel documents. Resources are typically accessed via URLs and may have different formats.
Common resource types:
- application/pdf: PDF tickets, receipts, and documentation
- image/png: QR codes, boarding passes, and visual elements
- text/plain: Plain text instructions and confirmations
- application/json: Structured data and API responses
Resources may have access restrictions or expiration times depending on the type and operator policies.
Possible types
Fields
Enums
Transport
The mode of transport
Values
- NIGHT_TRAIN
- TRAIN
- BUS
- FERRY
- NIGHT_BUS
JourneyStatus
The current status for a journey result
Values
- LOADING
- SUCCESS
- ERROR
SegmentCollectionStatus
Status indicating whether a segment collection was successfully loaded or encountered an error
Values
- LOADING
The request is loading
- SUCCESS
The request was successful
- INDETERMINATE
Status could not be determined due to an error with a prior connection
- UNKNOWN
An unexpected error occurred
- ONE_DAY
Allow at least one day from todays date
- NO_FARES
No fares available for the requested connection
- NO_TIMETABLE
No timetable available for the requested date
- UNABLE_TO_SELL
No availability
- OUTSIDE_TIMETABLE
The requested date falls outside current timetable planning period
- PREBOOK_NOT_POSSIBLE
Online prebook is not possible due to sales restrictions
PassengerType
The type of passenger
Values
- ADULT
Ages 28-59
- YOUTH
Ages 0-27
- SENIOR
Ages 60+
PassengerBundleType
The resulting product type definition for a passenger
Values
- ADULT
- SENIOR
- YOUTH
- CHILD
PassengerTitle
The perferred title of a passenger (required by carriers)
Values
- MR
- MS
- MX
OrderStatus
Current status of an order
Values
- CONFIRMED
Order is confirmed
- PENDING_CONFIRMATION
Order is partially confirmed
- PENDING_PRE_BOOK
Order has not yet been pre booked or confirmed
- PRE_BOOKED
Order has been pre booked, but not yet confirmed
- REFUNDED
The order has been refunded
- UNKNOWN
Unknown state
JourneyType
Type of journey
Values
- BLUEPRINT
Journeys built from predefined itinerary blueprints (curated or editorial routes). May include planned stopovers and specific paths.
- NON_STOP
Fastest end-to-end journeys without planned overnight stopovers. Transfers may occur, but no intentional multi-day segments are included.
- SMART
Comfort-optimized journeys that may split long routes across days to limit daily travel time and improve overall experience. Default type.
AvailabilityStatus
The current availability of a journey
Values
- LOADING
The request is loading
- AVAILABLE
The request was successful
- UNKNOWN
An unexpected error occurred
- SOLD_OUT
Fares are sold out
AccommodationType
The type of accommodation available
Values
- SEAT
Seat in a seated area
- COUCHETTE
Bed in a couchette cabin
- BERTH
Bed in a comfortable sleeper cabin
- UNKNOWN
Accommodation is unknown
Flexibility
Flexibility of a fare
Values
- NON_FLEX
No refunds or exchanges
- SEMI_FLEX
Partly refundable or exchangeable
- FULL_FLEX
Fully refundable or exchangeable
- UNKNOWN
Flexibility is unknown
ReturnType
Type of return covered by a return policy
Values
- EXCHANGE
- REFUND
- UNKNOWN
ServiceClass
Normalized class of service
Values
- BEST
Best class available, premium comfort with top-tier amenities and exclusive services
- HIGH
Standard first class, high comfort with enhanced seating and additional perks
- STANDARD
Standard second class, balanced service with essential comfort and amenities
- BASIC
Most economical class available, minimal service focused on affordability and essential needs
- UNKNOWN
Service class is not known
PaymentMethod
Valid agent payment method
Values
- INVOICE
- WALLET
- STRIPE
RateLimitUnit
The unit for a given rate limit
Values
- HOUR
- DAY
Unions
ItineraryItem
Items that can make up the itinerary of a Journey
Possible types
BookingSelection
Selections that can be part of a booking
Possible types
OrderItem
Items that can be part of an order
Possible types
OrderResource
A resource associated with an order
Possible types
Scalars
Date
Date string (ISO 8601 – YYYY-MM-DD
)
DateTime
Naive date and time string, seconds omitted (ISO 8601 – YYYY-MM-DDThh:mm
)
Duration
ISO 8601 formatted string, e.g. PT2H15M, P2D, P1M
JSONObject
The JSONObject
scalar type represents JSON objects as specified by ECMA-404.
ID
The ID
scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4"
) or integer (such as 4
) input value will be accepted as an ID.
String
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Float
The Float
scalar type represents signed double-precision fractional values as specified by IEEE 754.
Int
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Boolean
The Boolean
scalar type represents true
or false
.
Inputs
ViaInput
Via stopover for a journey to break up long trips.
Allows passengers to specify intermediate locations where they want to stop and spend time before continuing their journey. This is useful for long-distance travel where passengers want to explore cities along the way or break up overnight journeys.
Field requirements:
- uid: Required - the location UID where the stopover occurs
- duration: Optional - how long to stay (e.g., "P2D" for 2 days) If not specified, the journey will simply route via that location with a change of trains (no extended stopover)
Fields
PassPassengerInput
Passenger details for passholder
Fields
- type:
PassengerType
- age:
Int
- birthDate:
Date
- countryResidence:
String
- nationality:
String
PassengerPlaceholderInput
Input type for basic passenger details. When specifying a passenger's age, either:
- Provide the
birthDate
field with their date of birth, OR - Provide the
age
field with their age at time of travel
For passenger types YOUTH
and SENIOR
, one of these age fields must be
provided to validate eligibility for age-based fares and discounts.
For the ADULT
passenger type, age fields are optional.
Fields
- type:
PassengerType
- birthDate:
Date
- age:
Int
Age at the time of travel
FullPassengerInput
Full passenger details required to complete a booking.
Represents the complete set of passenger data that may be required by
ticketing providers and operators. Exactly one passenger per booking must be
marked as the contact person using isContactPerson: true
. The contact person
must provide both email
and tel
so they can receive operational updates.
Notes:
- Only one passenger should be marked as contact person per booking
- When
isContactPerson
is true,email
andtel
must be provided - Other fields may be required depending on operator (see
PassengerRequirements
)
Fields
- id:
ID!
- email:
String
- tel:
String
Phone number with country code (E.123)
- birthDate:
Date
- firstName:
String
- lastName:
String
- isContactPerson:
Boolean
Mark this passenger as the booking contact person; requires
email
,tel
- title:
PassengerTitle
- countryResidence:
String
- nationality:
String
- passportNumber:
String
- placeOfBirthCity:
String
- placeOfBirthCountry:
String
FareSelectionInput
Selection of fare for a journey
Fields
OfferSelectionInput
Selection of offer for a journey
Fields
- id:
ID!
BookingSelectionInput
Selection for a booking
Fields
- offer:
OfferSelectionInput
JourneyFilterInput
Filter for journey search results by journey type.
Use this to restrict which journey variants are returned. Supported types:
- SMART: Comfort-optimized journeys; may split long routes across days. Default journey type returned by the API.
- BLUEPRINT: Journeys based on predefined itinerary blueprints (curated or editorial routes), can include planned stopovers.
- NON_STOP: Fastest end-to-end journeys without planned overnight stopovers.
You can combine multiple types to retrieve several variants at once.
Fields
- types:
[JourneyType!]
PassBundleFilterInput
Filter for filtering pass bundles by various criteria.
Supported filters:
- product: Filter by specific pass product type, e.g. "interrail-global-pass"
- class: Filter by travel class (e.g. "1stclass" or "2ndclass")
- campaignCode: Filter by promotional campaign code, e.g. "INTERRAIL_2025"
Use this to narrow down pass bundle results when searching for available passes.
Fields
PlacePropertyInput
Place property to update
Fields
AddAncillaryInput
Ancillary to add to a booking for a given passenger
Fields
RemoveAncillaryInput
Ancillary selection to remove from a booking
Fields
- id:
ID!