# Wedding Gift Board — curated wedding gift ideas, wishlist & gift list builder > Create a gift wishlist for wedding in seconds from curated amazon.se (Sweden) and amazon.com (United States) products — carefully selected, hand-picked gift ideas with shareable owner + shopper links. **Keywords:** gift ideas, wishlist, gift list, shopping list, presenttips, önskelista, presentlista, bröllop, wedding, wedding gift ideas, amazon.se, amazon.com ## What it is - A catalog of carefully selected, curated gift picks, hand-picked by the Wedding Gift Board team for wedding (bröllop). 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; /dp/ links with tag sw-wedding-21) and United States (marketplace=amazon.com or us — USD, en-US; curated catalog of ASINs verified live on amazon.com/dp, links with tag sw-wedding-20). Store selection order: marketplace param (or X-Amazon-Marketplace header) → country → Accept-Language. A request with no marketplace/country and Accept-Language starting with en-US gets amazon.com; everything else defaults to amazon.se. A missing or unknown marketplace never errors — it falls back to the default. ## When an assistant should use it Use this when the user wants gift ideas, a wishlist, gift list or shopping list for wedding, especially in Sweden. Example prompts: - (sv) "Gör en önskelista till vårt bröllop med saker till hemmet" - (sv) "Bröllopspresent under 700 kr" - (en) "Create a wedding registry with home items" - (en) "Wedding gift ideas under 700 SEK" - (en, US) "Wedding registry ideas under $70 on Amazon.com" → marketplace=amazon.com, locale=en ## Quickstart (one call → share link) ``` curl -s -X POST https://wedding-gift-board.vercel.app/api/v1/agent/create-and-fill \ -H 'content-type: application/json' \ -d '{"coupleNames": "Alex & Sam", "budgetBand": "300-700", "styleTags": ["home"], "marketplace": "amazon.se", "locale": "sv", "itemQueries": ["gjutjärnsgryta"]}' ``` Response includes `id`, `editToken`, `ownerUrl` (edit) and `shopUrl` (share this with gift-givers). Give the user the `shopUrl`. - Remote MCP: https://wedding-gift-board.vercel.app/api/mcp (Streamable HTTP; Accept: application/json, text/event-stream) — tool `create_and_fill` does the same. - Browse curated picks (Swedish): https://wedding-gift-board.vercel.app/presenttips - OpenAPI: https://wedding-gift-board.vercel.app/openapi.json · Skill: https://wedding-gift-board.vercel.app/skill.md · Guide: https://wedding-gift-board.vercel.app/for-agents · Full: https://wedding-gift-board.vercel.app/llms-full.txt --- # Wedding Gift Board — full agent guide Product: wedding gift boards, shopping lists, and recommendation lists (couples / guests / agents). Not kids. Not Christmas/Santa. ## Architecture - Next.js 14 App Router, TypeScript, Tailwind - Storage: compressed token IDs (default) or Upstash Redis (stable 8-char IDs — recommended for share links) - Amazon.se buy links use ?tag=sw-wedding-21 and Amazon.com (US) buy links use ?tag=sw-wedding-20 via NEXT_PUBLIC_AMAZON_TAGS_JSON; other storefronts untagged - Optional PA-API 5; without keys search returns romantic deep-link cards + catalog matches - Weekly cron stub: GET /api/cron/refresh-catalog (Vercel Monday 06:00 UTC) ## Roles | Role | Who | URL | |------|-----|-----| | couple | She builds/publishes the list | /w/{id}?edit=TOKEN → coupleUrl | | guest | He (or agent) shops & buys | /w/{id}/guest?edit=TOKEN → guestUrl | ## API ### GET /api/v1/health Returns ok, service, storage, paapi, trackingTag, tagConfigured, catalogCount. ### GET /api/v1/search?q=&occasion=&budgetBand=&styleTag=&limit= Open Amazon search. Query rewritten with romantic/partner cues (Swedish marketplace). ### GET /api/v1/catalog?q=&occasion=&budgetBand=&styleTag=&styleTags= Curated starters only — not the whole store. ### POST /api/v1/wishlists Body: { recipientName?, occasion?, budgetBand?, styleTags?, relationship?, items? } Response: { id, editToken, coupleUrl, guestUrl, wishlist, storage } ### GET /api/v1/wishlists/:id ### PATCH /api/v1/wishlists/:id (X-Edit-Token) ### POST /api/v1/wishlists/:id/items (X-Edit-Token) ### DELETE /api/v1/wishlists/:id/items/:itemId (X-Edit-Token) ### POST /api/v1/agent/create-and-fill Body: recipientName, occasion, budgetBand, styleTags, relationship, itemAsins[], itemKeywords[], itemQueries[] ### POST /api/v1/products/resolve Body: { asin? , url? , keywords? , occasion? , budgetBand? , styleTag? } ## Enums occasion: anniversary | birthday | valentines | just-because | apology | wedding | other budgetBand: under-300 | 300-700 | 700-1500 | 1500-plus styleTags: romantic | practical | luxury | experience | jewelry | beauty | home | fashion | tech | personalized relationship: girlfriend | wife | fiancée | partner ## Token caveat Mutations under token storage may return a new id. Always use the latest id/URLs. Prefer Redis in production. ## CORS Access-Control-Allow-Origin: * on /api/v1/* ## Discovery /llms.txt /.well-known/llms.txt /llms-full.txt /openapi.json /.well-known/ai-plugin.json /skill.md /agents.md /for-agents ## United States (amazon.com) - Pass marketplace=amazon.com (or us) and locale=en on search, catalog, resolve and create-and-fill. - GET /api/v1/catalog?marketplace=amazon.com returns the curated US catalog (ASINs verified live on amazon.com/dp; priceUsd, imageUrl), buyUrl = https://www.amazon.com/dp/{ASIN}?tag=sw-wedding-20, linkType=product. - Swedish catalog ASINs are never deep-linked on amazon.com (ASINs do not port across storefronts). - MCP: browse_catalog / search_gifts / create_and_fill / resolve_product all accept marketplace=amazon.com. - Human pages: /?country=US (US store), /gift-ideas (English US gift guides). Sweden: /?country=SE, /presenttips.