Budgets (v2)

Create a budget

Validates like the wizard's Next, then saves the inputs as a draft owned by the caller and joins or creates the trip (trip.needs_choice with candidates when the free trip limit leaves a choice). 422 validation_failed carries the wizard's messages; 403 quota_exceeded when the caller is at the limit.

post/api/v2/budgets

Request

  • Base URL: https://www.endlesstravelplans.com
  • URL: https://www.endlesstravelplans.com/api/v2/budgets
  • Auth: HTTP bearer

Request body

tripExternalIdstring nullable

The trip to file the budget under.

tripType'theme_park' | 'cruise' | 'all_inclusive' | 'city' nullable
parkstring nullable

Must not be greater than 32 characters.

sleeping'on' | 'off' | 'compare' nullable
sleepingForcedboolean
cruiseLinestring nullable

Must not be greater than 32 characters.

portstring nullable

Must not be greater than 32 characters.

cruiseNightsinteger

Must be at least 1. Must not be greater than 30.

cruiseRegionstring nullable

Must not be greater than 32 characters.

preNightboolean
coaststring nullable

Must not be greater than 32 characters.

destinationstring nullable

Must not be greater than 120 characters.

destinationIdinteger nullable
destLatnumber nullable

Must be between -90 and 90.

destLonnumber nullable

Must be between -180 and 180.

destCountrystring nullable

Must not be greater than 100 characters.

destTypedboolean
places'one' | 'several' nullable
departureDatestring nullable

Must be a valid date in the format <code>Y-m-d</code>.

returnDatestring nullable

Must be a valid date in the format <code>Y-m-d</code>.

homeCitystring nullable

Must not be greater than 120 characters.

homeLatnumber nullable

Must be between -90 and 90.

homeLonnumber nullable

Must be between -180 and 180.

homeCountryNamestring nullable

Must not be greater than 100 characters.

homeTypedboolean
mode'fly' | 'drive' | 'train' nullable
modeSwitchedstring nullable

Must not be greater than 16 characters.

homeCountrystring nullable

Must be 2 characters.

currency'USD' | 'EUR' | 'GBP' | 'CAD' nullable
adultsinteger

Must be at least 0. Must not be greater than 40.

seniorsinteger

Must be at least 0. Must not be greater than 40.

childreninteger

Must be at least 0. Must not be greater than 40.

childrenAgesinteger[]

Must be at least 0. Must not be greater than 17.

stayTierstring nullable

Must not be greater than 24 characters.

roomsinteger

Must be at least 1. Must not be greater than 20.

roomsSetboolean
parkDaysinteger

Must be at least 1. Must not be greater than 14.

parkHopperboolean
skipLineboolean
diningPlanboolean
drinksboolean
wifiboolean
excursionsinteger

Must be at least 0. Must not be greater than 6.

excursionboolean
pacestring nullable

Must not be greater than 16 characters.

cabinstring nullable

Must not be greater than 24 characters.

railClass'standard' | 'first' nullable
bagsinteger

Must be at least 0. Must not be greater than 6.

airportParkingboolean
gettingAroundstring nullable

Must not be greater than 32 characters.

insuranceboolean
carSeatboolean
contingencyPctinteger

Must be at least 0. Must not be greater than 25.

Example request

{
  "tripExternalId": "01J9X",
  "tripType": "city",
  "park": "n",
  "sleeping": "compare",
  "sleepingForced": true,
  "cruiseLine": "g",
  "port": "z",
  "cruiseNights": 17,
  "cruiseRegion": "i",
  "coast": "y",
  "destination": "v",
  "destinationId": 16,
  "destLat": -89,
  "destLon": -180,
  "destCountry": "z",
  "destTyped": true,
  "places": "several",
  "stops": [
    {
      "destination": "a",
      "destination_id": 16,
      "latitude": -89,
      "longitude": -180,
      "country": "z",
      "nights": 17,
      "travel_mode": "flight"
    }
  ],
  "departureDate": "2026-10-16",
  "returnDate": "2026-10-16",
  "homeCity": "m",
  "homeLat": -90,
  "homeLon": -180,
  "homeCountryName": "v",
  "mode": "train",
  "modeSwitched": "dljnikhwaykcmyuw",
  "homeCountry": "pw",
  "currency": "USD",
  "adults": 7,
  "seniors": 20,
  "children": 3,
  "childrenAges": [
    5
  ],
  "stayTier": "rsitcpscqldzsnrw",
  "rooms": 4,
  "roomsSet": true,
  "parkDays": 13,
  "parkHopper": true,
  "diningPlan": true,
  "wifi": true,
  "excursions": 4,
  "excursion": true,
  "pace": "wvlxjklqppwqbewt",
  "cabin": "nnoqitpxntltcvip",
  "railClass": "first",
  "bags": 5,
  "gettingAround": "j",
  "carSeat": true,
  "contingencyPct": 3
}

Response

external_idstring
statusstring
is_ownerboolean
trip_typestring

Example response

{
  "external_id": "9c7e",
  "status": "draft",
  "is_owner": true,
  "trip_type": "theme_park",
  "pricing": {
    "status": "unpriced"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.