---
title: "Create a new travel goal."
method: POST
path: "/v1/goals"
tags: ["Public API v1"]
---

# Create a new travel goal.

`POST /v1/goals`

## Request

- Base URL: `https://api.mynextadventure.cloud` (the document declares no server; this is the origin it was published from)
- URL: `https://api.mynextadventure.cloud/v1/goals`
- Auth: API key in header `X-API-Key`

## Request body

- CreateGoalV1Dto
  - `name` string, required: Display name of the goal exactly as a human would call it (e.g. "See the Northern Lights"). Never embed budget, place, status or commentary here — those belong in estimatedBudget, location and notes.
  - `description` string
  - `notes` string: Free-form commentary: provenance, caveats, trade-offs. Anything without a dedicated field goes here, not in name.
  - `location` GoalLocationV1Dto
    - `name` string
    - `formattedAddress` string
    - `coordinates` GoalCoordinatesV1Dto
      - `lat` number, required
      - `lng` number, required
    - `googlePlaceId` string
  - `country` string
  - `region` string
  - `type` 'country' | 'region' | 'city' | 'place' | 'experience': Defaults to "place" if omitted.
  - `priority` 'someday' | 'soon' | 'must_do': Defaults to "someday" if omitted.
  - `tags` string[]
  - `imageUrl` string
  - `userUploadedImageUrl` string
  - `links` GoalLinkV1Dto[]
    - `url` string, required: URL the link points to.
    - `title` string
    - `description` string
    - `imageUrl` string
  - `bestTimeToVisit` string[]
  - `estimatedBudget` number
  - `currency` string
  - `estimatedDuration` string: Free-form duration string (e.g. "3 days", "1 week").
  - `collectionIds` string[]: Collection ids this goal will be added to.

## Response `201`

- TravelGoalV1Dto
  - `id` string, required
  - `userId` string, required
  - `name` string, required
  - `description` string
  - `notes` string
  - `location` GoalLocationV1Dto
    - `name` string
    - `formattedAddress` string
    - `coordinates` GoalCoordinatesV1Dto
      - `lat` number, required
      - `lng` number, required
    - `googlePlaceId` string
  - `country` string
  - `region` string
  - `type` 'country' | 'region' | 'city' | 'place' | 'experience', required
  - `status` 'dreaming' | 'planning' | 'visited', required
  - `priority` 'someday' | 'soon' | 'must_do', required
  - `tags` string[]
  - `imageUrl` string
  - `userUploadedImageUrl` string
  - `links` GoalLinkV1Dto[]
    - `url` string, required: URL the link points to.
    - `title` string
    - `description` string
    - `imageUrl` string
  - `bestTimeToVisit` string[]
  - `estimatedBudget` number
  - `currency` string
  - `estimatedDuration` string
  - `linkedTripId` string: Trip id this goal is currently linked to (when status=planning or visited).
  - `linkedTripName` string
  - `visitedDate` string, date-time
  - `collectionIds` string[]
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

---

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