---
title: "Create a packing list"
method: POST
path: "/api/v2/packing-lists"
tags: ["Packing lists (v2)"]
---

# Create a packing list

`POST /api/v2/packing-lists`

## Request

- Base URL: `https://www.endlesstravelplans.com`
- URL: `https://www.endlesstravelplans.com/api/v2/packing-lists`
- Auth: HTTP bearer

Validates like step 1's Next, finds the place (a typed `inputDestination` is looked up when `destinationId`
is missing; a multi-city body needs at least one stop found), files the list under the caller's trip
(`tripExternalId` names one the caller may build on) and saves a draft. Step-2 picks in the same body are
kept on the draft. 422 `validation_failed` carries the wizard's messages.

## Request body

- object
  - `tripExternalId` string, nullable: The trip to file the list under.
  - `tripType` 'leisure' | 'business' | 'adventure' | 'mixed', nullable
  - `tripMode` 'single_city' | 'multi_city', nullable
  - `inputDestination` string, nullable: Must not be greater than 255 characters.
  - `destinationId` integer, nullable
  - `stops` object[]: Must not have more than 8 items.
    - `destination` string, nullable: Must not be greater than 255 characters.
    - `destination_id` integer, nullable
    - `nights` integer: Must be at least 0. Must not be greater than 60.
    - `lat` number, nullable: Must be between -90 and 90.
    - `lon` number, nullable: Must be between -180 and 180.
    - `country` string, nullable: Must not be greater than 100 characters.
  - `departureDate` string, nullable: Must be a valid date in the format <code>Y-m-d</code>.
  - `returnDate` string, nullable: Must be a valid date in the format <code>Y-m-d</code>.
  - `adults` integer: Must be at least 0. Must not be greater than 40.
  - `seniors` integer: Must be at least 0. Must not be greater than 40.
  - `children` integer: Must be at least 0. Must not be greater than 40.
  - `childrenAges` integer[]: Must be at least 0. Must not be greater than 17.
  - `specialNeeds` integer[]
  - `quickStartTemplateId` integer, nullable
  - `selectedActivities` integer[]
  - `packingStrategyId` integer, nullable

## Response `201`

- object
  - `external_id` string
  - `status` string
  - `trip_type` string
  - `groups` unknown[]
    - unknown

## 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)
