<!-- curated-v2 -->
# Travel Packing — curated trip packing lists gift ideas, wishlist & gift list builder

> Create a gift wishlist for trip packing lists in seconds from curated Amazon products (amazon.com for the United States, amazon.se for Sweden) — carefully selected, hand-picked gift ideas with shareable owner + shopper links.

**Keywords:** gift ideas, wishlist, gift list, shopping list, presenttips, önskelista, presentlista, packlista för resan, trip packing lists, amazon.com, amazon.se

## What it is
- A catalog of carefully selected, curated gift picks, hand-picked by the Travel Packing team for trip packing lists (packlista för resan). Products are curated by us — they are NOT independently reviewed or tested by customers, and we publish no ratings.
- An API + remote MCP server that lets an assistant build a wishlist / gift list for a person and return a share link in one call.
- Markets:
  - Sweden (default): amazon.se, SEK, sv-SE. Buy links are amazon.se /dp/ links with tag sw-travelpack-21.
  - United States: amazon.com, USD, en-US. Pass `marketplace=amazon.com` (or `country=US`) for a separate curated US catalog; buy links are https://www.amazon.com/dp/ASIN?tag=sw-travelpack-20 and items carry `priceUsd`.

## Storefront selection (amazon.com vs amazon.se)
The API (/api/v1/*) and MCP server (/api/mcp) pick the Amazon storefront in this order:
1. `marketplace` (or `store`): `marketplace=amazon.com` (or `us`) for United States users; `marketplace=amazon.se` (or `se`) for Sweden.
2. `country`: `country=US` → amazon.com; any other country → amazon.se.
3. `Accept-Language`: with no marketplace/country, a header starting with `en-US` → amazon.com.
4. Otherwise amazon.se (Swedish `sv` and everything else).
Missing or unknown values never return an error; they fall back to amazon.se.
amazon.com responses are English only: English titles, USD prices (`priceUsd`) or no price, https://www.amazon.com/dp/ASIN links and English search links.

## When an assistant should use it
Use this when the user wants gift ideas, a wishlist, gift list or shopping list for trip packing lists, in Sweden (amazon.se) or the United States (amazon.com). Example prompts:
- (sv) "Gör en packlista för en veckas strandsemester"
- (sv) "Present till någon som ska ut och resa"
- (en) "Make a packing list for a week-long beach trip"
- (en) "Gift for someone going travelling"

## Quickstart (one call → share link)
```
curl -s -X POST https://travel-packing-zeta.vercel.app/api/v1/agent/create-and-fill \
  -H 'content-type: application/json' \
  -d '{"tripName": "Strandvecka", "tripType": "beach", "durationDays": 7, "marketplace": "amazon.se", "locale": "sv-SE", "itemQueries": ["packkuber"]}'
```
US user: same call with `"marketplace": "amazon.com", "locale": "en-US"` and English itemQueries (e.g. `["packing cubes","neck pillow"]`) — items are filled from the US catalog with amazon.com /dp links.

Response includes `id`, `editToken`, `ownerUrl` (edit) and `shopUrl` (share this with gift-givers). Give the user the `shopUrl`.

- Remote MCP: https://travel-packing-zeta.vercel.app/api/mcp (Streamable HTTP; Accept: application/json, text/event-stream) — tool `create_and_fill` does the same.
- Browse curated picks: https://travel-packing-zeta.vercel.app/presenttips (Swedish store) · https://travel-packing-zeta.vercel.app/presenttips?country=US (US store, Amazon.com, USD)
- OpenAPI: https://travel-packing-zeta.vercel.app/openapi.json · Skill: https://travel-packing-zeta.vercel.app/skill.md · Guide: https://travel-packing-zeta.vercel.app/for-agents · Full: https://travel-packing-zeta.vercel.app/llms-full.txt

---

<!-- /curated-v2 -->
# Travel Packing — agent instructions

Base: `https://travel-packing-zeta.vercel.app` (or `NEXT_PUBLIC_SITE_URL`). Packing-list inspiration with curated buy links.

## Suggest packing items
1. `GET /api/v1/search?q=packing%20cubes&tripType=beach&climate=tropical&durationBand=1-week&marketplace=amazon.se&locale=sv-SE&limit=5`
2. Optionally skim `GET /api/v1/catalog?tripType=beach&climate=tropical`
3. Prefer `/dp/` when ASIN known; otherwise packing search deep-links
4. Pass `marketplace=amazon.com` for US users; default amazon.se (see Storefront selection)

## Create a packing list (MCP-friendly)
1. `POST /api/v1/wishlists` with `tripName`, `tripType`, `climate`, `durationBand` or `durationDays`, `travelers`, `marketplace`, `locale`
2. Or one-shot `POST /api/v1/agent/create-and-fill` with `itemQueries` / `itemKeywords` / `itemAsins`
3. Or use MCP at `/api/mcp` (Streamable HTTP) for the same list-building loop
4. Return `ownerUrl`/`listUrl` (traveler edits) and `shopUrl` (buy-missing)
5. If `storage === "token"`, expect id rotation on mutations — prefer Redis

## Resolve buy link
`POST /api/v1/products/resolve` → `buyUrl` (+ `trackingTag`)

## Tracking
Production tags (via NEXT_PUBLIC_AMAZON_TAGS_JSON): amazon.se → sw-travelpack-21, amazon.com → sw-travelpack-20. Prefer buyUrl / trackingTag.

## United States (amazon.com)
- Pass `marketplace=amazon.com` (or `country=US`) on catalog, search, resolve, wishlists, create-and-fill and MCP tools.
- Separate curated US catalog (amazon.com ASINs, English titles, `priceUsd`, imageUrl). Buy links: `https://www.amazon.com/dp/ASIN?tag=sw-travelpack-20`.
- Example: `GET /api/v1/catalog?marketplace=amazon.com&tripType=beach` · `POST /api/v1/products/resolve {"keywords":"packing cubes","marketplace":"amazon.com","locale":"en-US"}`.
- Human pages: US visitors get the US store automatically; `?country=US` / `?country=SE` overrides.
