haggl.ai
Ask a merchant's haggl.ai sales agent for a personalized offer, then hand it to checkout.
| Endpoint | https://www.haggl.ai/api/mcp (streamable-http) |
|---|---|
| Registry version | 1.0.0 |
| Now | 17 tools · grade D (56) · pin ts_da62fa5b9bfc6d632225dc8ce8aeeb6d · protocol 2025-06-18 |
| First / last listed | 2026-11-02 02:36 UTC / 2026-11-02 02:36 UTC |
| Grade over time | 2026-11-02: D (56), 17 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: haggl_list_vendors haggl_start_negotiation haggl_search_catalog haggl_get_negotiation haggl_submit_offer haggl_accept_offer haggl_search_discounts haggl_create_haggl_id haggl_request_haggl_id_confirmation haggl_get_my_offers haggl_get_bids haggl_delete_haggl_id haggl_hotel_cashback haggl_hotel_cashback_add_trip haggl_hotel_cashback_claim haggl_hotel_cashback_stay haggl_hotel_cashback_get
haggl_list_vendors | List vendors that accept AI-agent price negotiations through haggl.ai. A vendor appears once haggl.ai is installed on its own store or website (the listed website): the haggl.ai Shopify app on that store, or its snippet detected on that site. Vendors can opt out, so the list is not exhaustive. haggl.ai runs each vendor's sales agent, and vendors on a paid plan pay haggl.ai for it; the list is not params: none |
haggl_start_negotiation | Start a price negotiation with a vendor. Returns contextual guidance, current permitted actions and a new session with a session id. No customer-profile selection is required. Skip this tool if REST initialization already returned a session; pass that session.id directly to haggl_submit_offer. params: vendor_id*, data, ask, haggl_id, shopper_location, via |
haggl_search_catalog | Search a vendor's catalog so the offer can name exact products, then follow the how_to_ask field of the result. A store catalog returns products with a handle, price and collections: ask with ask.items [{ product_handle, quantity }]. A campaign catalog returns eligible variants with a variant_id and approved_combinations with a recipe_id: ask with ask.items [{ variant_id, quantity }] or ask.recipe params: vendor_id*, query, collection, limit |
haggl_get_negotiation | Read the canonical state, current offer version, guidance and permitted actions of an existing negotiation. Use after human changes, reloads, transport switches or uncertain results; this does not open another session. params: session_id* |
haggl_submit_offer | Request a quote using all context already available. Buyer data and evidence can be omitted; relevant additional context can be supplied later within the remaining rounds. Returns authorized terms or no offer, contextual guidance and permitted next actions. params: session_id*, expected_offer_version, data, ask, shopper_location, via |
haggl_accept_offer | Accept the vendor's offer and lock in the deal. Consequential: only call after the buyer has approved this exact offer, every time. Provide the offer version the buyer reviewed and approved; a changed offer needs a new approval. Read state.acceptance_effects and state.commits_purchase first: merchant handoff effects may be unknown. Accepting a phone deal (effect merchant_phone_handoff) books no jo params: session_id*, expected_offer_version*, round |
haggl_search_discounts | Find merchants that run a sales agent on haggl.ai, by business name, website or kind of product. Only when the user asks for a discount, a coupon, a promo code or a lower price; a purchase at the listed price is not a request for one. Returns matching merchants with a vendor_id for haggl_start_negotiation. Offers are funded by each merchant, inside limits it sets; a merchant may have no offer for params: query* |
haggl_create_haggl_id | Create a haggl ID for the user, so offers and codes from different merchants stay together and can be read back later. Show the user this text first, and call this only if they agree: "haggl.ai, operated by MOOJO.ID, INC. ("we"), offers your agent a haggl ID. You can decline: your agent can still ask merchants for offers without one. If you agree, we link the negotiations your agent opens with the params: consent_version, statement, channel, confirmation |
haggl_request_haggl_id_confirmation | Get a link for the user to read the haggl ID consent text and confirm it on haggl.ai, when they are not in this conversation to agree to it. Send them confirm_url (valid 30 minutes). After they confirm, call haggl_create_haggl_id with the returned confirmation; until then it answers confirmation_pending. params: none |
haggl_get_my_offers | Read what haggl.ai holds for the user's haggl ID: when it was created and the negotiations, offers and codes linked to it, newest first. params: haggl_id* |
haggl_get_bids | Have the merchants on haggl.ai in one shopping category (for example travel) bid for the user at once, from their haggl ID record, without new proof. Works once the record holds a verified purchase in that category (from an earlier offer with signed email proof); otherwise it says so and returns no bids. Each bid is a merchant's own offer, funded by the merchant, with an accept_url; show the user params: haggl_id*, query, category |
haggl_delete_haggl_id | Delete the user's haggl ID and unlink the offers linked to it. Only when the user asks. Codes already issued keep working at the merchant until they expire. params: haggl_id* |
haggl_hotel_cashback | The haggl.ai hotel cashback offer: whether it is open, the tiers and rates, the hotels with a cashback agent (independent and boutique hotels in San Francisco, each with the vendor_id of its haggl agent), and the steps. No haggl ID needed. Call it when the user is choosing a hotel in San Francisco. params: none |
haggl_hotel_cashback_add_trip | Optional, before asking a hotel's agent for a rate: prove one past trip to San Francisco (last 12 months) with its signed flight booking, hotel booking or hotel post-stay email, one email per call, to raise the user's cashback tier (1+ trips: returning, 3+ trips: frequent). Only with the user's go-ahead to send that email. The email itself is not kept. params: haggl_id*, raw_mime_b64* |
haggl_hotel_cashback_claim | After the user booked the hotel whose agent's offer they accepted, before its reference code expired: claim the cashback with the hotel's booking confirmation email, exactly as received. Show the user these conditions first, and call this only if they agree: "haggl.ai (MOOJO.ID, INC.) pays cashback on stays at independent and boutique hotels in San Francisco booked while your quote holds (72 hours params: haggl_id*, raw_mime_b64*, terms_version*, statement*, channel, payout_email* |
haggl_hotel_cashback_stay | After the user checked out: send the hotel's post-stay email (final receipt or folio, thank-you for staying, or review request), exactly as received. It shows the stay happened, and haggl.ai sends the cashback within 2 business days. params: haggl_id*, claim_id*, raw_mime_b64* |
haggl_hotel_cashback_get | Read a hotel cashback claim made with the user's haggl ID: its status and what comes next. params: haggl_id*, claim_id* |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.