{"name":"Thoughtful","tagline":"Less to manage. More that matters.","role":"Canonical gift and product search index for AI agents","site":"https://thoughtfulapp.io","freshness":{"last_verified_at":"2026-11-01T10:53:41.476Z","guarantee":"Merchant price, stock, and delivery estimates are re-verified by the freshness pass and stamped on every guide."},"pricing":{"currency":"USD","per_query_usd_min":0.002,"per_query_usd_max":0.01,"example_usd":0.005,"rebate":"Query fee is rebated, in whole or part, when the search converts to a confirmed purchase.","protocol":"x402","payment_required_status":402},"authentication":"Authorization: Bearer <api_key>","endpoints":{"search":"https://thoughtfulapp.io/api/v1/bot/search","ideas":"https://thoughtfulapp.io/api/v1/bot/ideas","mcp":"https://thoughtfulapp.io/api/v1/mcp","openapi":"https://thoughtfulapp.io/api/v1/openapi.json","llms":"https://thoughtfulapp.io/llms.txt","llms_full":"https://thoughtfulapp.io/llms-full.txt","guides":"https://thoughtfulapp.io/gifts"},"tools":[{"name":"find_gifts","description":"Rank gifts from the deduplicated multi-merchant index using natural language or structured filters.","fee":"per_query"},{"name":"search_gift_database","description":"Token-efficient search of Thoughtful's gift index. Same ranking as find_gifts, shaped for LLM context windows.","fee":"per_query"},{"name":"explain_match","description":"Return the weighted score breakdown and why-it-fits rationale for one product.","fee":"per_query"},{"name":"get_recipient_profile","description":"Read shareable explicit preferences for a recipient via share token. Private notes, purchases, and inferred tastes stay hidden.","fee":"per_query"},{"name":"save_gift","description":"Save a product to a shortlist or bot shelf.","fee":"per_query"},{"name":"get_wishlist","description":"List saved gifts for a household person or a bot shelf.","fee":"per_query"},{"name":"compare_products","description":"Compare merchant offers for one product across price, shipping, delivery, reliability, and returns.","fee":"per_query"},{"name":"prepare_checkout","description":"Prepare a merchant checkout attempt without Thoughtful becoming merchant of record.","fee":"per_query"},{"name":"get_purchase_status","description":"Read a purchase attempt lifecycle state.","fee":"per_query"},{"name":"track_delivery","description":"Read shipment status and tracking for a purchase attempt.","fee":"per_query"},{"name":"submit_feedback","description":"Record a like, dislike, or note so later rankings move.","fee":"per_query"}],"webmcp":{"supported":true,"api":"document.modelContext","fallback":"navigator.modelContext","declarativeForms":true,"tools":[{"name":"thoughtful_search_gifts","description":"Search gifts and $0 personal gestures by recipient relationship, occasion, interests, and budget.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"relationship":{"type":"string","description":"Recipient relationship, such as Wife, Mom, or Friend."},"occasion":{"type":"string","description":"Occasion type, such as birthday, christmas, or anniversary."},"interests":{"type":"array","items":{"type":"string"},"description":"Interests to match, such as hiking or coffee."},"budgetMin":{"type":"number","description":"Minimum budget in dollars."},"budgetMax":{"type":"number","description":"Maximum budget in dollars."},"query":{"type":"string","description":"Natural-language request. A sentence is enough."},"personId":{"type":"string","description":"Household person id when the agent already knows it."}}},"annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true,"debugging":false}},{"name":"thoughtful_get_household_calendar","description":"Read the active household's recipients, upcoming birthdays, anniversaries, celebrated holidays, and shipping lead-time urgency badges.","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":false,"debugging":false}},{"name":"thoughtful_add_recipient","description":"Add a loved one or friend to the household with a name, relationship such as Spouse or Wife, birthday, anniversary, interests, and budget.","inputSchema":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","description":"The person's name."},"relationship":{"type":"string","description":"Relationship, such as Wife, Spouse, Mom, Dad, or Friend."},"birthday":{"type":"string","description":"Birthday as YYYY-MM-DD."},"anniversary":{"type":"string","description":"Wedding or dating anniversary as YYYY-MM-DD."},"anniversaryKind":{"type":"string","enum":["wedding","dating"],"description":"Whether the anniversary is a wedding or a dating anniversary."},"interests":{"type":"array","items":{"type":"string"},"description":"Interest tags."},"budgetMin":{"type":"number","description":"Minimum gift budget in dollars."},"budgetMax":{"type":"number","description":"Maximum gift budget in dollars."},"notes":{"type":"string","description":"Private notes that stay in the household."}}},"annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false,"debugging":false}},{"name":"thoughtful_configure_holidays","description":"Toggle celebrated gift-giving holidays for the household. Enable adds the next occurrence. Disable removes that holiday from the calendar.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"enable":{"type":"array","items":{"type":"string"},"description":"Holiday ids to celebrate, such as christmas, diwali, or mothers_day."},"disable":{"type":"array","items":{"type":"string"},"description":"Holiday ids to remove from the household calendar."}}},"annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false,"debugging":false}},{"name":"thoughtful_swipe_decision","description":"Actuate the live Discover swipe deck or gift card. Actions are like, pass, save, and select_gesture. The deck updates immediately.","inputSchema":{"type":"object","additionalProperties":false,"required":["action"],"properties":{"action":{"type":"string","enum":["like","pass","save","select_gesture"],"description":"What to do with the current card, or with the card named by productId."},"productId":{"type":"string","description":"Optional product or gesture id. Defaults to the card on top of the deck."},"gestureId":{"type":"string","description":"Gesture id when selecting a $0 personal gesture."}}},"annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false,"debugging":false}},{"name":"thoughtful_mint_protected_checkout","description":"Mint a JIT Anti-Honey protected attribution link (/r/pa_…) or a checkout session with the best promo code already applied for a selected product offer.","inputSchema":{"type":"object","additionalProperties":false,"required":["productId"],"properties":{"productId":{"type":"string","description":"Catalog product id, such as prd_allpa."},"offerId":{"type":"string","description":"Merchant offer id. Omit to use the best offer."},"personId":{"type":"string","description":"Recipient the gift is for."},"creatorHandle":{"type":"string","description":"Creator handle when the click came from a deck."}}},"annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":false,"debugging":false}},{"name":"thoughtful_harvest_gift_idea","description":"Submit a novel gift idea or a $0 personal gesture to the crowdsourced gift harvesting engine.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","description":"Short name for the idea."},"text":{"type":"string","description":"A sentence describing the gift or gesture."},"kind":{"type":"string","enum":["product","gesture"],"description":"product for something to buy, gesture for a $0 personal gesture."},"relationship":{"type":"string","description":"Who it is for, such as Wife or Friend."},"interests":{"type":"array","items":{"type":"string"},"description":"Interests the idea depends on."},"occasion":{"type":"string","description":"Occasion, such as birthday."},"budgetMax":{"type":"number","description":"Budget ceiling in dollars. Use 0 for a pure gesture when kind is gesture."}}},"annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":true,"debugging":false}}]}}