---
title: "Update Budget"
method: PUT
path: "/api/v1/budgets/{externalId}"
tags: ["Budget"]
---

# Update Budget

`PUT /api/v1/budgets/{externalId}`

## Request

- Base URL: `https://www.endlesstravelplans.com`
- URL: `https://www.endlesstravelplans.com/api/v1/budgets/{externalId}`
- Auth: HTTP bearer

Update budget calculation fields.

## Request body

- object
  - `input_destination` string
  - `departure_city` string: Must not be greater than 255 characters.
  - `departure_date` string: Must be a valid date.
  - `return_date` string: Must be a valid date.
  - `num_adults` integer: Must be at least 1. Must not be greater than 20.
  - `num_children` integer: Must be at least 0. Must not be greater than 20.
  - `children_ages` object, nullable
  - `travel_style` string: One of: budget, moderate, luxury.
  - `rooms` integer: Must be at least 1. Must not be greater than 20.
  - `excluded_hidden_costs` object, nullable
  - `status` string: One of: draft, finished.
  - `transport_mode` 'rental_car' | 'rideshare' | 'public_transit' | 'walking_only', nullable
  - `cabin_class` 'economy' | 'premium_economy' | 'business', nullable
  - `departure_country` string, nullable: Must not be greater than 100 characters.
  - `flight_type` 'round_trip' | 'roundtrip' | 'one_way' | 'multi_city', nullable
  - `stops` object[]: Must not have more than 8 items.
    - `destination` string: This field is required when <code>stops</code> is present. Must not be greater than 255 characters.
    - `nights` integer: This field is required when <code>stops</code> is present. Must be at least 1. Must not be greater than 30.
    - `order` integer, nullable
    - `latitude` number, nullable
    - `longitude` number, nullable
    - `country` string, nullable: Must not be greater than 100 characters.
    - `destination_id` integer, nullable
  - `trip_type` 'theme_park' | 'cruise' | 'all_inclusive' | 'city', nullable
  - `park` 'wdw' | 'uor' | 'dlr' | 'dlp', nullable
  - `stay_tier` string, nullable: Must not be greater than 24 characters.
  - `park_days` integer, nullable: Must be at least 1. Must not be greater than 14.
  - `park_hopper` boolean, nullable
  - `cruise_line` string, nullable: Must not be greater than 32 characters.
  - `cabin_type` 'interior' | 'oceanview' | 'balcony' | 'suite', nullable
  - `port` string, nullable: Must not be greater than 32 characters.
  - `cruise_region` 'caribbean' | 'mediterranean' | 'alaska', nullable
  - `cruise_nights` integer, nullable: Must be at least 2. Must not be greater than 21.
  - `coast` string, nullable: Must not be greater than 32 characters.
  - `mode` 'fly' | 'drive' | 'train', nullable
  - `rail_class` 'standard' | 'first', nullable
  - `bags` integer, nullable: Must be at least 0. Must not be greater than 6.
  - `insurance` boolean, nullable
  - `carrier` string, nullable: Must not be greater than 8 characters.
  - `home_country` string, nullable: Must be 2 characters.
  - `presentation_currency` 'USD' | 'EUR' | 'GBP' | 'CAD', nullable
  - `contingency_pct` integer, nullable: Must be at least 0. Must not be greater than 25.
  - `essentials` object, nullable

## Response `200`

- object
  - `budget` object
    - `external_id` string
    - `travel_style` string

## Other responses

- `401`: unauthenticated: No valid bearer token was sent.
- `422`: validation_failed: The request body failed validation; field messages are in `errors`.
- `429`: rate_limited: A throttle or a per-account allowance refused the request; `retry_after` or `remaining` may be present.
- `500`: server_error: Unhandled failure; quote `request_id` to support.

---

[API](https://skmtc.dev/endlesstravelplans/apis/endless-travel-plans-api.md) · [All operations](https://skmtc.dev/endlesstravelplans/apis/endless-travel-plans-api/llms.txt) · [OpenAPI document](https://skmtc.dev/endlesstravelplans/apis/endless-travel-plans-api/revisions/ae82ed3e4a8f?raw)
