---
title: "Create a trip"
method: POST
path: "/api/trips"
tags: ["Trips"]
---

# Create a trip

`POST /api/trips`

## Request

- Base URL: `https://trvlrr.app`
- URL: `https://trvlrr.app/api/trips`
- Auth: HTTP bearer

Status is worked out from the dates unless given. A destination becomes the trip's first place and its poster art is generated. Trips are unlimited on every plan.

## Request body

- TripCreate
  - `title` string, required: Title, e.g. Japan in autumn.
  - `start_date` string, required: Date, YYYY-MM-DD.
  - `end_date` string, required: Date, YYYY-MM-DD.
  - `status` 'past' | 'planning' | 'booked' | 'active': Worked out from the dates if left out.
  - `notes` string, nullable: Notes.
  - `traveler_ids` string[]: Who is going; person ids.
  - `destination` string: Main destination, e.g. Tokyo.
  - `country` string, nullable: Destination country (name or ISO code).
  - `locality` string, nullable: The city the destination belongs to.
  - `locality_country` string, nullable: ISO alpha-2 of that city.

## Response `201`

The new trip's id.

- Created
  - `id` string, required

## Other responses

- `400`: The request is malformed or fails validation.
- `401`: No usable credential: a Clerk session token, a device token or an OAuth access token is required.
- `403`: The caller may not do this to this account or trip.

---

[API](https://skmtc.dev/trvlrr/apis/trvlrr-api.md) · [All operations](https://skmtc.dev/trvlrr/apis/trvlrr-api/llms.txt) · [OpenAPI document](https://skmtc.dev/trvlrr/apis/trvlrr-api/revisions/ea024946b293?raw)
