--trip-id <id> | No | existing trip ID (omit to create new) | |
--trip-item-token <token> | No | add an item: the trip_item_token of a fare (flight-search), an htl_* hotel rate (hotel-search) or a car_* offer (car-search). JSON: add_item.trip_item_token. | |
--remove-item-id <id> | No | remove an existing item by item_id (from a prior trip response items[].item_id). Requires —trip-id. Can be combined with —trip-item-token to swap an item in one call. | |
--special-request <text> | No | HOTEL ONLY: a free-text request for the property (late arrival, quiet room, cot…), sent with —trip-item-token. Repeat the flag for several: at most 10, 500 characters each, 1500 in total; blank values are dropped. Requests only, neither Jinko nor the hotel guarantees them. JSON: add_item.special_requests. | [] |
--travelers <json> | No | travelers JSON array, each {first_name, last_name, traveler_type: adult | child | infant, date_of_birth?, gender?, …}. Required to complete a booking; date_of_birth + gender are required for flights but optional for hotel-only trips; the first traveler also supplies the booking contact name. | |
--contact <json> | No | contact JSON {email, phone, title?} (sent as upsert_travelers.contact), email and phone are required; phone is in international format: a leading + and country code, e.g. +12025550147. Spaces, hyphens, dots and parentheses are accepted and removed. A number without the leading + is rejected with INVALID_PHONE_NUMBER. title is the honorific (mr / ms / mx), required to book a car rental and optional otherwise. Optional while building the trip, but required before booking. Must be passed together with —travelers (the full travelers list); —contact alone is refused. | |
--user-intent <text> | No | the end user’s request in their own words, forwarded to Jinko for observability and relevance (avoid PII). Env fallback: JINKO_USER_INTENT. JSON: intent.user_intent. | |