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

# Create a trip

`POST /v1/trips`

## Request

- Base URL: `https://api.getmyhotels.com`
- URL: `https://api.getmyhotels.com/v1/trips`
- Auth: HTTP bearer

Runs `itinerary.create`. Saving a trip requires sign-in (critical decision #4).

## Request body

- object
  - `title` string, required
  - `description` string
  - `startDate` string, nullable, required
  - `endDate` string, nullable, required
  - `destinationId` integer
  - `budget` number
  - `budgetCurrency` string
  - `coverImageUrl` string, uri
  - `aiScore` integer
  - `aiVerdict` 'ready' | 'improve' | 'reject'
  - `aiSummary` string
  - `aiIssues` object[]
    - `severity` 'blocker' | 'warning' | 'nit', required
    - `where` string, required
    - `problem` string, required
    - `fix` string, required

## Response `200`

Success

- unknown

## Other responses

- `400`: Request validation failed or the router rejected the input
- `401`: Missing or invalid bearer session token
- `426`: Reported X-GMH-App-Version is below the supported minimum — the app must update
- `500`: Unexpected server error (opaque; details stay in logs)

---

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