Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "complete_checkout"
⟨5 unchanged words⟩ the shopper has approved the total from update_checkout.Pays withWith the shopper's Stripe shared payment token (spt_...), issued for at least the ordertotal.total, JENNi charges it and places the order now. Never send card numbers. Delivered by JENNi. payment_token is optional. Without an spt_token,givecall with only checkout_id: theshopperresult carries continue_url,sothetheyshopper's payonlink,JENNi'sandpage.the order is placed when they pay there. With a Link Agent Wallet, make a ⟨18 unchanged words⟩
⟨37 unchanged words⟩ :"string"},"payment_token":{"description":"Optional. Stripe shared payment token, starting spt_. Leave it out to get the shopper's pay link (continue_url).","maxLength":254,"pattern":"^spt_[A-Za-z0-9_ ⟨3 unchanged words⟩ type":"string"}},"required":["checkout_id","payment_token"],"type":"object"}
Changed the definition of "complete_checkout"
⟨28 unchanged words⟩ total. Never send card numbers. Delivered by JENNi. Without an spt_ token, give the shopper continue_url so they pay on JENNi's page. With a Link Agent Wallet, make a spend request (credential_type shared_payment_token, the network_id and amount_cents from this checkout's payment block) and pass the spt_ here.
Changed the definition of "get_product" and "search_catalog"
⟨162 unchanged words⟩ {"color":{"type":"string"},"label":{"description":"The source's own option text, word for word, when the variant has no size or colour.","type":"string"},"product_id":{"type":"string"},"size" ⟨17 unchanged words⟩
⟨162 unchanged words⟩ {"color":{"type":"string"},"label":{"description":"The source's own option text, word for word, when the variant has no size or colour.","type":"string"},"product_id":{"type":"string"},"size" ⟨43 unchanged words⟩
Changed the definition of "start_checkout"
⟨7 unchanged words⟩ product and selected fulfillment mode using the delivery ZIP or address. For several products, pass items instead of product_id: one checkout_url puts them all in one basket. JENNi selects the source internally. The buyer reviews ⟨34 unchanged words⟩
⟨71 unchanged words⟩ ,"ship_to_home"],"type":"string"},"items":{"description":"Several products in one link, instead of product_id. Same fulfillment_mode and ZIP for all.","items":{"additionalProperties":false,"properties":{"product_id":{"description":"The exact item: a variant's product_id when it has variants.","type":"string"},"quantity":{"description":"How many (default 1).","maximum":10000,"minimum":1,"type":"integer"}},"required":["product_id"]
Changed the definition of "search_catalog"
⟨64 unchanged words⟩ query and match it against size or title. Put a price limit in max_price, not the query; keep the query to brand, product type and size. If it returns product_not_found, search once more with fewer words before telling the shopper nothing matched. Pass fulfillment_mode to search one mode. More results: ⟨8 unchanged words⟩
⟨47 unchanged words⟩ is given.","type":"string"},"max_price":{"description":"Highest price the shopper will pay, in US dollars, e.g. 120. Put a price limit here, not in the query.","exclusiveMinimum":0,"type":"number"},"page":{"description":"1-based results page; call ⟨44 unchanged words⟩
Changed the definition of "get_buying_options", "get_product", "search_catalog" and 1 more
Read-only fulfillment eligibilityPrice,pricedelivery promise anddeliverytotaldetailsbefore tax for oneexact productproduct_id, ZIP, quantity and mode (local_delivery or ship_to_homemode. The response contains no source-shop details. available means orderable only; same-day is).verifiedCallonly
Changed the definition of "complete_checkout", "create_checkout", "get_buying_options" and 5 more
⟨16 unchanged words⟩ shopper's Stripe shared payment token (spt_...),whoseissuedlimitformustatcoverleast the order total. Never send card numbers. Delivered by JENNi.
Added "complete_checkout", "create_checkout" and "update_checkout"; changed the definition of "get_buying_options", "get_product", "search_catalog" and 1 more (5 tools before, 8 now)
⟨16 unchanged words⟩ ship_to_home mode. The response contains no source-shop details.Anavailablelocal_deliverymeansresultorderableverifiesonly; same-dayeligibilityisforverifiedthatonlycontext.when fulfillment_option.delivery_promise is Get it today. A failed check means unknown eligibility, not unavailable.
Removed "find_stores"; changed the definition of "get_buying_options", "get_product", "search_catalog" and 1 more (6 tools before, 5 now)
⟨20 unchanged words⟩ and quantity.","type":"boolean"},"delivery_promise":{"description":"\"Get it today\" (local_delivery) or \"Ships to you\" (ship_to_home) when available.","type":["string","null"]},"fulfilled_by":{"const":"Delivered by JENNi","type":"string"},"fulfillment_mode":{"enum":["local_delivery","ship_to_home"],"type":"string"},"note":{"type":"string"},"quote":{"description":"The price an agent may state before checkout: unit price x quantity + the flat fee for the mode = total (before sales tax, which checkout adds). Null when the price could not be read; reason_code says why.","properties":{"currency":{"const":"USD","type":"string"},"eta":{"description":"same_day for local delivery; a display-only date window for ship_to_home. Null when no window is known.","properties":{"earliest_date":{"type":["string","null"]},"kind":{"enum":["same_day","window"],"type":"string"},"latest_date":{"type":["string","null"]}},"type":["object","null"]},"fee":{"type":["string","null"]},"fee_cents":{"type":["integer","null"]},"fee_kind":{"enum":["local_delivery_fee","shipping"],"type":"string"},"fulfilled_by":{"const":"Delivered by JENNi","type":"string"},"fulfillment_mode":{"enum":["local_delivery","ship_to_home"],"type":"string"},"note":{"type":"string"},"quantity":{"type":"integer"},"reason_code":{"enum":["no_price","no_live_offer","out_of_stock","not_served_locally","variant_required","product_not_found","invalid_input","fee_unavailable","quote_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer"],"type":"string"},"subtotal":{"type":"string"},"subtotal_cents":{"type":"integer"},"tax":{"const":"added_at_checkout","type":"string"},"total":{"description":"subtotal + fee before tax; null when the fee could not be read.","type":["string","null"]},"total_cents":{"type":["integer","null"]},"
Changed the definition of "start_checkout"
RechecksReturns a hosted checkout_url for an exact product,ZIP, quantityand selected fulfillment modeand returnsusingathehosteddeliverycheckout_url.address. JENNi selects the source internally. The buyer reviews ⟨17 unchanged words⟩ read-only tool creates no order, reservation or charge. The final checkout page verifies current price and availability.
Changed the definition of "find_stores", "get_buying_options", "get_order_status" and 3 more
OnlyRead-onlywhendirectorytheforshopperexplicitnamesshop-nameaquestions,specificnearshop;aforUSanythingZIP
Changed the definition of "find_stores", "get_buying_options", "get_product" and 2 more
⟨66 unchanged words⟩ verified mode they want; never ask them tochooseselect a source shop. For same-day, require an available local_deliveryresult and never count concierge.result. For ship-to-home, require an available ship_to_home result. ⟨34 unchanged words⟩
⟨42 unchanged words⟩ JENNi folded into this same physical shop. Displayonly; refer to the shop by store_id.only.","items":{"type":"string"}, ⟨40 unchanged words⟩
Added "get_order_status"; changed the definition of "find_stores", "get_buying_options", "get_product" and 2 more (5 tools before, 6 now)
⟨43 unchanged words⟩ stock, price or delivery. Then call get_buying_options for both local_delivery and ship_to_home with the exact product_id, zip,quantityandfulfillment_mode.quantity.AfterAsk thebuyershopperchooseswhichaverifiedreturnedmodeofferthey
Changed the definition of "find_stores", "get_product" and "search_catalog"
Find a shop by nameOnly when the shopper names a specific shop; for anything they want to buy, use search_catalog. Read-only shop directory by name. A listing proves ⟨92 unchanged words⟩
⟨37 unchanged words⟩ },"alias_store_ids":{"description":"Other storerowsidsofJENNi
Changed the definition of "find_stores" and "start_checkout"
⟨47 unchanged words⟩ :{"description":"5-digit US ZIP code:matchingsearches the shopsnearestwithin 15 miles of itcomefirst,first.then the national list. Pass it for any shop outside San Antonio.","type":"string"}},"required": ⟨3 unchanged words⟩
⟨34 unchanged words⟩ "type":["string","null"]},"
Certificate recorded, valid to 2026-12-28
Authorization not required
Changed the definition of "find_stores", "get_buying_options", "get_product" and 2 more
⟨35 unchanged words⟩ the exact product_id, zip, quantity and fulfillment_mode.OnlyAfterusethe buyer chooses a returned offer with is_eligible_checkout true,anduse its store_id with start_checkoutafterfor direct checkout. An offer explicitly marked fulfillment concierge may also use start_checkout for a hosted request handoff even when that flag is false. Retain thebuyerexactchoosesbuyingit.
Changed the definition of "find_stores", "get_product" and "search_catalog"
LocalRead-onlyshopsshop directory byname,name.nearAalistingUSprovesZIPnocodestock, price, delivery oracheckout
Added "get_buying_options"; changed the definition of "get_product", "search_catalog" and "start_checkout" (4 tools before, 5 now)
OneComplete canonical productbydiscovery,theread-only.product_idUsesearch_catalogget_buying_optionsreturned:for themerchant'sselecteddescriptionexactandproduct.
Changed the definition of "start_checkout"
{"additionalProperties":false,"properties":{"fulfillment_mode":{"description":"Retain the mode chosen from get_buying_options.","enum":["local_delivery","ship_to_home"],"type":"string"},"product_id":{"description":"The exact item: ⟨58 unchanged words⟩
Removed "complete_checkout" (5 tools before, 4 now)
Complete agent checkout — Execute zero-click autonomous checkout directly using a tokenized payment method (pm_*, virtual card token). Never send raw card numbers. Programmatically verifies stock, locks quote, and authorizes payment.
Unknown → Live
First tool surface recorded: 5 tools (server version 2026-08-25)
https://shop.jennipro.com/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 25 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨34 unchanged words⟩ ,"item":{"type":"string"},"items":{"items":{"type":"object"},"type":"array"},"next_step":{"type":"string"},"pricing" ⟨122 unchanged words⟩
before
{"properties":{"fulfillment_option":{"properties":{"available":{"description":"True only when the requested mode was verified as orderable for this exact product, ZIP and quantity.","type":"boolean"},"deliver_by":{"description":"Local delivery only: YYYY-MM-DD JENNi delivers by (cutoff-aware), when known.","type":"string"},"delivery_promise":{"description":"Local delivery: \"Get it today\" only when the order cutoff allows same-day, otherwise \"We'll deliver by <Month D>\"; with no known date no same-day claim is made. ship_to_home: \"Ships to you\".","type":["string","null"]},"fulfilled_by":{"const":"Delivered by JENNi","type":"string"},"fulfillment_mode":{"enum":["local_delivery","ship_to_home"],"type":"string"},"note":{"type":"string"},"pricing":{"description":"The price an agent may state before checkout: unit price x quantity + the flat fee for the mode = total_before_tax (sales tax is added at checkout). Null when the price could not be read; reason_code says why.","properties":{"currency":{"const":"USD","type":"string"},"eta":{"description":"Local delivery: same_day only when today is truly deliverable (before the cutoff), otherwise a window whose dates are the delivery date. ship_to_home: a display-only date window. Null when no date is known (no same-day claim).","properties":{"deliver_by_text":{"description":"Local delivery only: the date JENNi delivers by, e.g. October 23.","type":"string"},"earliest_date":{"type":["string","null"]},"kind":{"enum":["same_day","window"],"type":"string"},"latest_date":{"type":["string","null"]}},"type":["object","null"]},"fee":{"type":["string","null"]},"fee_cents":{"type":["integer","null"]},"fee_kind":{"enum":["local_delivery_fee","shipping"],"type":"string"},"fulfilled_by":{"const":"Delivered by JENNi","type":"string"},"fulfillment_mode":{"enum":["local_delivery","ship_to_home"],"type":"string"},"note":{"type":"string"},"quantity":{"type":"integer"},"reason_code":{"enum":["no_price","no_live_offer","out_of_stock","not_served_locally","variant_required","product_not_found","invalid_input","fee_unavailable","price_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer"],"type":"string"},"subtotal":{"type":"string"},"subtotal_cents":{"type":"integer"},"tax":{"const":"added_at_checkout","type":"string"},"total_before_tax":{"description":"subtotal + fee before tax; null when the fee could not be read.","type":["string","null"]},"total_before_tax_cents":{"type":["integer","null"]},"unit_price":{"type":"string"},"unit_price_cents":{"type":"integer"}},"type":["object","null"]},"reason_code":{"description":"Present when available is false: why this mode cannot be bought here now.","enum":["no_price","no_live_offer","out_of_stock","not_served_locally","variant_required","product_not_found","invalid_input","fee_unavailable","price_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer"],"type":"string"},"ship_estimate":{"description":"Display-only arrival window for a shipped order. An estimate, not a promise.","properties":{"earliest_date":{"type":"string"},"latest_date":{"type":"string"},"source":{"type":"string"}},"type":"object"},"shipping_price":{"description":"USD, e.g. \"$7.99\". The flat shipping fee for this order, present only on an offer the storefront can sell (an offer that ships from JENNi) when a fee is set. Absent means unstated, never free. Added at checkout on top of `price`.","type":"string"},"unit_price":{"type":["string","null"]}},"required":["fulfillment_mode","available"],"type":"object"},"product":{"properties":{"brand":{"type":["string","null"]},"category":{"type":["string","null"]},"color":{"description":"Colour of the variant product_id names; null when it has none.","type":["string","null"]},"description":{"description":"Product description from the source catalog, when returned.","type":["string","null"]},"image":{"type":["string","null"]},"note":{"type":"string"},"offers":{"description":"JENNi's single best offer for this product (price, delivery_promise, fulfilled_by, is_eligible_checkout), without source-shop details.","items":{"properties":{"availability":{"description":"NULL when we have no shelf read under 24 hours old (shelf_observed_at says when). Null is not evidence of in-stock or out-of-stock state; checkout eligibility is independent.","enum":["in_stock","out_of_stock",null],"type":["string","null"]},"delivery_promise":{"description":"Shopper-facing delivery promise: \"Get it today\" only when the cutoff allows same-day, else \"We'll deliver by <Month D>\" (local delivery); \"Ships to you\" for ship_to_home.","type":["string","null"]},"fulfilled_by":{"description":"Shopper-facing fulfiller line: \"Delivered by JENNi\".","type":["string","null"]},"fulfillment":{"description":"`local_delivery`: delivered locally by JENNi (same-day only when delivery_promise says so). `ship_to_home`: shipped to the shopper by JENNi. `in_store_only`: observed, but it cannot be ordered through JENNi for this destination. Ordering happens with create_checkout and complete_checkout, or on the storefront link.","enum":["local_delivery","ship_to_home","in_store_only"],"type":"string"},"is_eligible_checkout":{"description":"True when this offer is currently eligible for ordering through JENNi; false otherwise. Eligibility and price are checked again at hosted checkout. Nothing is charged until the buyer places the order on the checkout page.","type":"boolean"},"is_eligible_search":{"type":"boolean"},"note":{"description":"A fulfillment disclosure, when applicable.","type":"string"},"price":{"description":"USD, e.g. \"$12.50\". Null when we have no current price.","type":["string","null"]},"product_id":{"description":"The exact variant this offer covers.","type":["string","null"]},"shelf_observed_at":{"description":"When the shelf was last read. Null means never.","type":["string","null"]},"shelf_price":{"description":"Observed shelf price for browsing, not a checkout price. Purchase price and checkout eligibility are separate fields.","type":["string","null"]},"ship_estimate":{"description":"Display-only arrival window for a shipped order. An estimate, not a promise.","properties":{"earliest_date":{"type":"string"},"latest_date":{"type":"string"},"source":{"type":"string"}},"type":"object"},"shipping_label":{"description":"Plain-language label for shipping_price, e.g. \"$7.99 flat shipping\".","type":"string"},"shipping_price":{"description":"USD, e.g. \"$7.99\". The flat shipping fee for this order, present only on an offer the storefront can sell (an offer that ships from JENNi) when a fee is set. Absent means unstated, never free. Added at checkout on top of `price`.","type":"string"},"url":{"description":"Storefront page for this exact product.","type":["string","null"]}},"required":["product_id","is_eligible_search","is_eligible_checkout","fulfillment","availability"],"type":"object"},"maxItems":1,"type":"array"},"price":{"description":"Headline price in USD; null when there is none.","type":["string","null"]},"product_id":{"type":"string"},"reason_code":{"description":"Present when offers is empty: not_checked (no fulfillment mode was verified for this result) or not_served_locally.","enum":["no_price","no_live_offer","out_of_stock","not_served_locally","variant_required","product_not_found","invalid_input","fee_unavailable","price_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer"],"type":"string"},"shelf_price":{"description":"Observed shelf price for browsing, not a checkout price. Purchase price and checkout eligibility are separate fields.","type":["string","null"]},"size":{"description":"Size of the variant product_id names; null when none is recorded. Many items are listed one size per product, so a null size may be in the title (e.g. \"..., Size 8\"): match the shopper's size against it.","type":["string","null"]},"title":{"type":"string"},"url":{"description":"Storefront product page, where the buyer picks size/colour, checks out as a guest (email, no account) and pays. Null when no storefront is configured.","type":["string","null"]},"variants":{"description":"Buyable size/colour variants and their product URLs. Search responses contain at most 30; detail responses may include all variants.","items":{"properties":{"color":{"type":["string","null"]},"product_id":{"type":"string"},"size":{"type":["string","null"]},"url":{"description":"Storefront page opened on this variant.","type":["string","null"]}},"required":["product_id"],"type":"object"},"type":"array"}},"required":["product_id","title","offers"],"type":"object"},"requested_context":{"properties":{"fulfillment_mode":{"enum":["local_delivery","ship_to_home"],"type":"string"},"postal_code":{"type":"string"},"product_id":{"type":"string"},"quantity":{"type":"integer"}},"required":["product_id","postal_code","quantity","fulfillment_mode"],"type":"object"}},"required":["product","requested_context","fulfillment_option"],"type":"object"}after
{"properties":{"available":{"description":"True when this mode can be ordered for this product, ZIP and quantity.","type":"boolean"},"delivery_promise":{"description":"Local delivery: \"Get it today\" or \"We'll deliver by <Month D>\". Ship-to-home: \"Ships to you\".","type":"string"},"fulfillment_mode":{"enum":["local_delivery","ship_to_home"],"type":"string"},"note":{"type":"string"},"pricing":{"description":"unit_price x quantity + fee = total_before_tax. Sales tax is added at checkout.","properties":{"eta":{"properties":{"earliest_date":{"type":"string"},"latest_date":{"type":"string"}},"type":"object"},"fee":{"description":"Local delivery fee or flat shipping.","type":"string"},"note":{"type":"string"},"quantity":{"type":"integer"},"reason_code":{"description":"Machine-readable reason, alongside the prose note.","enum":["no_price","no_live_offer","out_of_stock","not_served_locally","variant_required","product_not_found","invalid_input","fee_unavailable","price_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer"],"type":"string"},"subtotal":{"description":"unit_price x quantity, when quantity > 1.","type":"string"},"total_before_tax":{"type":"string"},"unit_price":{"type":"string"}},"type":"object"},"product_id":{"type":"string"},"reason_code":{"description":"Why this mode cannot be bought here now.","enum":["no_price","no_live_offer","out_of_stock","not_served_locally","variant_required","product_not_found","invalid_input","fee_unavailable","price_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer"],"type":"string"},"title":{"type":"string"},"unit_price":{"type":"string"}},"required":["product_id","fulfillment_mode","available"],"type":"object"}Read-only productDetailsdetailsforbyone product_id, without source-shop details. Product facts do not verify fulfillment:eligibility.description,Whenimages,sizesizesisandnullcolours,theandsizeitsmaypricebeandindelivery at thetitle.ZIP.
⟨2 unchanged words⟩ :{"properties":{"brand":{"type":["string","null"]},"category":{"type":["string","null"]},"color":{"description":"Colour of the variant product_id names; null when it has none.","type":["string","null"]},"description":{"description":"Product description from the source catalog, when returned.","type":["string","null"]},"image":{"type":["string","null"]},"note":{"type":"string"},"offers":{"description":"JENNi's single best offer for this product (price,delivery_promise, fulfilled_by, is_eligible_checkout), without source-shop details.","items":{"properties":{"availability":{"description":"NULL when we have no shelf read under 24 hours old (shelf_observed_at says when). Null is not evidence of in-stock or out-of-stock state; checkout eligibility is independent.","enum":["in_stock","out_of_stock",null],"type":["string","null"]},"delivery_promise":{"description":"Shopper-facingLocal deliverypromise: \"Get it today\"only when the cutoff allows same-day, elseor \"We'll deliver by <Month D>\"(local.
Searchproductsin-stockacrossproductstheJENNiUnitedcanStatesdeliverbyto a 5-digit US ZIP:codelocal delivery first, then ship-to-home. Every product returned can be ordered; price is per unit, before the delivery orservedshippingmarket.fee.Read-onlyA productfactswith variants andJENNi'snobestpriceoffer,iswithoutasource-shopsizedetails.or colour family: buy one of its variants. Sized goods are often listed one size per product:includeput the size in thequery; when sizequeryisandnullmatch itmay beagainstinsizetheor title.Search results doPassnotfulfillment_modeverifytofulfillmentsearcheligibility.oneListsmode.localMoredeliveryresults:first,callfilledagain withship-to-home;page+1fulfillment_modewhilesearchespageone<mode.paging.total_pages.
⟨47 unchanged words⟩ is given.","type":"string"},"page":{"description":"1-based results page; call again with page+1 while page < paging.total_pages.","maximum":42,"minimum":1,"type":"integer"},"query":{"description":"What the shopper wants ⟨25 unchanged words⟩
{"properties":{"delivers_herenote":{"description":"The market we deliver in atWhatthatcouldlocation;notnullbewhencheckedwe(fordeliverexampleinlocalnone.","type":["string","null"]},"location":{"description"delivery):"Theplace searched around;thatnullavailabilityforisnone.","type":["string","null"]}
⟨2 unchanged words⟩ {"type":"string"},"delivery_promise":{"typedescription":["string","null"]},Local delivery: \"fulfilled_byGet it today\":{or \"constWe'll deliver by <Month D>\". Ship-to-home: \"DeliveredShipsbytoJENNiyou\".","type":"string"},"fulfillment_mode":{" ⟨5 unchanged words⟩ ,"item":{"type":"string"},"kind":{"enum":["basket"],"type":"string"},"next_step":{"type":"string"},"pricing":{"description":"The price an agent may state before checkout: unit priceunit_price x quantity +the flatfeefor the mode=total_before_taxtotal_before_tax.(salesSales tax is added atcheckout). Null when the price could not be read; reason_code says why.checkout.","properties":{"currency":{"const":"USD","type":"string"},"eta":{"description":"Local delivery: same_day only when today is truly deliverable (before the cutoff), otherwise a window whose dates are the delivery date. ship_to_home: a display-only date window. Null when no date is known (no same-day claim).","properties":{"deliver_by_text":{"description":"Local delivery only: the date JENNi delivers by, e.g. October 23.","type":"string"},"earliest_date":{"type":["string","null"]},"kind":{"enum":["same_day","window"],"type":"string"},"latest_date":{"type":["string","null"]}},"type":["object","null"]},"fee":{"type":["string","null"]},"fee_cents":{"type":["integer","null"]},"fee_kind":{"enum":["local_delivery_fee","shipping"],"type":"string"},"fulfilled_by":{"constdescription":"DeliveredLocalbydeliveryJENNifee or flat shipping.","type":"string"},"fulfillment_modenote":{"enum":["local_delivery","ship_to_home"],"type":"string"},"notequantity":{"type":"stringinteger"},"quantityreason_code":{"typedescription":"integer"}Machine-readable reason,"reason_codealongside the prose note.":{,"enum":["no_price","no_live_offer","out_of_stock" ⟨10 unchanged words⟩ ,"type":"string"},"subtotal":{"type":"string"},"subtotal_cents":{"type":"integer"},"tax":{"const":"added_at_checkout","type":"string"},"total_before_tax":{"description":"subtotal + fee beforeunit_pricetax;xnullquantity, whenthe fee could notquantitybe>read.1.","type":["string","null"]},"total_before_tax_centstotal_before_tax":{"type":["integer","nullstring"]},"unit_price":{"type":"string"},"unit_price_cents":{"type":"integer"}},"type":["object","null"]},"product_id":{"type":"string"}, ⟨25 unchanged words⟩ ,"type":"string"},"unit_price":{"description":"The unit price the page shows; null when it could not be read (reason_code says why).","type":["string","null"]}},"required":["kind","checkout_url","next_step"],"type":"object"}
⟨92 unchanged words⟩ ,"note":{"type":"string"},"quotepricing":{"description":"The price an agent ⟨8 unchanged words⟩ + the flat fee for the mode =totaltotal_before_tax (beforesales tax,whichischeckoutaddedaddsat checkout). Null when the price could not be ⟨120 unchanged words⟩ variant_required","product_not_found","invalid_input","fee_unavailable","quote_unavailableprice_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer ⟨10 unchanged words⟩ ":"added_at_checkout","type":"string"},"totaltotal_before_tax":{"description":"subtotal + fee before ⟨9 unchanged words⟩ "type":["string","null"]},"total_centstotal_before_tax_cents":{"type":["integer","null"] ⟨29 unchanged words⟩ variant_required","product_not_found","invalid_input","fee_unavailable","quote_unavailableprice_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer ⟨337 unchanged words⟩ , e.g. \"$12.50\". Null when weholdhave no current price.","type":["string" ⟨160 unchanged words⟩ description":"Headline price in USD; null whennonethere isheld.none.","type":["string","null"]} ⟨26 unchanged words⟩ variant_required","product_not_found","invalid_input","fee_unavailable","quote_unavailableprice_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer ⟨26 unchanged words⟩ Size of the variant product_id names; null whenitnonehasisnone.recorded. Many items are listed one size per product, so a null size may be in the title (e.g. \"..., Size 8\"): match the shopper's size against it.","type":["string","null"]} ⟨119 unchanged words⟩
⟨10 unchanged words⟩ known, courier tracking and whether the cardholdwascaptured or released.charged. Requires the private order_token from the shopper’s JENNi ⟨11 unchanged words⟩
⟨37 unchanged words⟩ null"]},"payment":{"properties":{"amount_held_centspending_amount_cents":{"type":["integer","null"]},"hold_expires_at":{"type":["string","null"]},"state":{"enum":["heldpending","capturedcharged","hold_releasednot_charged","none","unavailable"],"type":" ⟨3 unchanged words⟩ ,"refund_state":{"enum":["none","hold_releasednot_charged","unknown"],"type":"string"}, ⟨53 unchanged words⟩
⟨7 unchanged words⟩ details. Product facts do not verify fulfillment eligibility. When size is null, the size may be in the title.
⟨253 unchanged words⟩ , e.g. \"$12.50\". Null when weholdhave no current price.","type":["string" ⟨160 unchanged words⟩ description":"Headline price in USD; null whennonethere isheld.none.","type":["string","null"]} ⟨26 unchanged words⟩ variant_required","product_not_found","invalid_input","fee_unavailable","quote_unavailableprice_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer ⟨26 unchanged words⟩ Size of the variant product_id names; null whenitnonehasisnone.recorded. Many items are listed one size per product, so a null size may be in the title (e.g. \"..., Size 8\"): match the shopper's size against it.","type":["string","null"]} ⟨93 unchanged words⟩
⟨18 unchanged words⟩ and JENNi's best offer, without source-shop details. Sized goods are often listed one size per product: include the size in the query; when size is null it may be in the title. Search results do not verify fulfillment eligibility. Lists local delivery first, filled with ship-to-home; fulfillment_mode searches one mode.
{"additionalProperties":false,"properties":{"fulfillment_mode":{"description":"Search one mode only. Omit to list local delivery first, filled with ship-to-home.","enum":["local_delivery","ship_to_home"],"type":"string"},"limit":{"description":"Products to return ( ⟨54 unchanged words⟩
⟨297 unchanged words⟩ , e.g. \"$12.50\". Null when weholdhave no current price.","type":["string" ⟨160 unchanged words⟩ description":"Headline price in USD; null whennonethere isheld.none.","type":["string","null"]} ⟨26 unchanged words⟩ variant_required","product_not_found","invalid_input","fee_unavailable","quote_unavailableprice_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer ⟨26 unchanged words⟩ Size of the variant product_id names; null whenitnonehasisnone.recorded. Many items are listed one size per product, so a null size may be in the title (e.g. \"..., Size 8\"): match the shopper's size against it.","type":["string","null"]},"title ⟨113 unchanged words⟩ variant_required","product_not_found","invalid_input","fee_unavailable","quote_unavailableprice_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer ⟨7 unchanged words⟩
⟨29 unchanged words⟩ ,"next_step":{"type":"string"},"product_id":{"type":"string"},"quantity":{"type":"integer"},"quotepricing":{"description":"The price an agent ⟨8 unchanged words⟩ + the flat fee for the mode =totaltotal_before_tax (beforesales tax,whichischeckoutaddedaddsat checkout). Null when the price could not be ⟨120 unchanged words⟩ variant_required","product_not_found","invalid_input","fee_unavailable","quote_unavailableprice_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer ⟨10 unchanged words⟩ ":"added_at_checkout","type":"string"},"totaltotal_before_tax":{"description":"subtotal + fee before ⟨9 unchanged words⟩ "type":["string","null"]},"total_centstotal_before_tax_cents":{"type":["integer","null"] ⟨6 unchanged words⟩ "type":["object","null"]},"product_id":{"type":"string"},"quantity":{"type":"integer"},"reason_code":{"description":"Machine-readable reason, alongside ⟨8 unchanged words⟩ variant_required","product_not_found","invalid_input","fee_unavailable","quote_unavailableprice_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer ⟨30 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Start checkout"}
⟨19 unchanged words⟩ with only checkout_id to re-read it. Returns themaximumorder total once a delivery option is chosen.
⟨21 unchanged words⟩ ":"string"},"quantity":{"maximum":9910000,"minimum":1,"type":"integer"}, ⟨15 unchanged words⟩
⟨20 unchanged words⟩ and quantity.","type":"boolean"},"deliver_by":{"description":"Local delivery only: YYYY-MM-DD JENNi delivers by (cutoff-aware), when known.","type":"string"},"delivery_promise":{"description":"Local delivery: \"Get it today\"(local_delivery)onlyorwhen the order cutoff allows same-day, otherwise \"ShipsWe'lltodeliveryou\by <Month D>\";(with no known date no same-day claim is made. ship_to_home):when\"Shipsavailable.to you\".","type":["string","null"]}, ⟨62 unchanged words⟩ :"string"},"eta":{"description":"Local delivery: same_dayforonlylocalwhendelivery;todayaisdisplay-onlytrulydatedeliverable (before the cutoff), otherwise a windowforwhoseship_to_home.dates are the delivery date. ship_to_home: a display-only date window. Null when nowindowdate isknown.known (no same-day claim).","properties":{"deliver_by_text":{"description":"Local delivery only: the date JENNi delivers by, e.g. October 23.","type":"string"},"earliest_date":{"type":["string","null" ⟨320 unchanged words⟩ ,"delivery_promise":{"description":"Shopper-facing delivery promise, e.g.: \"Get it today\" only when the cutoff allows same-day, else \"We'll deliver by <Month D>\" (local delivery)or; \"Ships to you\".for ship_to_home.","type":["string","null"]} ⟨13 unchanged words⟩ ,"fulfillment":{"description":"`local_delivery`: deliveredthelocallysamebydayJENNiby(same-dayJENNi.only when delivery_promise says so). `ship_to_home`: shipped to the shopper by JENNi. `in_store_only` ⟨3 unchanged words⟩ cannot be ordered through JENNi for this destination.These areOrderingnothappensexecutablewithMCPcreate_checkoutmethods:andorderingcomplete_checkout,happensor on thestorefront.storefront link.","enum":["local_delivery","ship_to_home"," ⟨437 unchanged words⟩
⟨102 unchanged words⟩ ,"delivery_promise":{"description":"Shopper-facing delivery promise, e.g.: \"Get it today\" only when the cutoff allows same-day, else \"We'll deliver by <Month D>\" (local delivery)or; \"Ships to you\".for ship_to_home.","type":["string","null"]} ⟨13 unchanged words⟩ ,"fulfillment":{"description":"`local_delivery`: deliveredthelocallysamebydayJENNiby(same-dayJENNi.only when delivery_promise says so). `ship_to_home`: shipped to the shopper by JENNi. `in_store_only` ⟨3 unchanged words⟩ cannot be ordered through JENNi for this destination.These areOrderingnothappensexecutablewithMCPcreate_checkoutmethods:andorderingcomplete_checkout,happensor on thestorefront.storefront link.","enum":["local_delivery","ship_to_home"," ⟨411 unchanged words⟩
⟨146 unchanged words⟩ ,"delivery_promise":{"description":"Shopper-facing delivery promise, e.g.: \"Get it today\" only when the cutoff allows same-day, else \"We'll deliver by <Month D>\" (local delivery)or; \"Ships to you\".for ship_to_home.","type":["string","null"]} ⟨13 unchanged words⟩ ,"fulfillment":{"description":"`local_delivery`: deliveredthelocallysamebydayJENNiby(same-dayJENNi.only when delivery_promise says so). `ship_to_home`: shipped to the shopper by JENNi. `in_store_only` ⟨3 unchanged words⟩ cannot be ordered through JENNi for this destination.These areOrderingnothappensexecutablewithMCPcreate_checkoutmethods:andorderingcomplete_checkout,happensor on thestorefront.storefront link.","enum":["local_delivery","ship_to_home"," ⟨448 unchanged words⟩
⟨45 unchanged words⟩ :{"description":"Selected fulfillment mode: local_deliveryisarrivessame-day;on the delivery date the buying-options read returns (delivery_promise / deliver_by); ship_to_home ships to the delivery address.","enum ⟨24 unchanged words⟩
⟨84 unchanged words⟩ :"string"},"eta":{"description":"Local delivery: same_dayforonlylocalwhendelivery;todayaisdisplay-onlytrulydatedeliverable (before the cutoff), otherwise a windowforwhoseship_to_home.dates are the delivery date. ship_to_home: a display-only date window. Null when nowindowdate isknown.known (no same-day claim).","properties":{"deliver_by_text":{"description":"Local delivery only: the date JENNi delivers by, e.g. October 23.","type":"string"},"earliest_date":{"type":["string","null ⟨157 unchanged words⟩
Place the order — Place the order. Only after the shopper has approved the total from update_checkout. Pays with the shopper's Stripe shared payment token (spt_...), whose limit must cover the total. Never send card numbers. Delivered by JENNi.
Start an order — Start an order JENNi will deliver, without leaving the chat. Give the exact product_id, the delivery address and the shopper's contact details. Returns the delivery options and the maximum total. Nothing is charged until complete_checkout. Delivered by JENNi.
Update an order — Choose local_delivery or ship_to_home, or change the quantity, address or contact details of an order started with create_checkout. Call with only checkout_id to re-read it. Returns the maximum total once a delivery option is chosen.
⟨41 unchanged words⟩ "type":["string","null"]},"note":{"type":"string"},"offers":{"description":"JENNi's single best offer ⟨83 unchanged words⟩ ,"fulfillment":{"description":"`local_delivery`: deliveredlocally. `concierge`: JENNi collects it fromtheshop and delivers or ships itsametodaythebyshopper.JENNi. `ship_to_home`: shipped to theshopper.shopper by JENNi. `in_store_only`: observedon the shelf, but it cannot be ordered throughJENNi. `pickup` is store-owned capability metadata, not aJENNicustomer reservation/ready/handoff flow, and isforneverthisreturned.destination. These are not executable MCP methods: ordering happens on the storefront.","enum":["pickup","local_delivery","ship_to_home","concierge","in_store_only"],"type":"string"},"is_eligible_checkout" ⟨111 unchanged words⟩ "type":["string","null"]},"ship_estimate":{"description":"Display-only arrival window for a shipped order. An estimate, not a promise.","properties":{"earliest_date":{"type":"string"},"latest_date":{"type":"string"},"source":{"type":"string"}},"type":"object"},"shipping_label":{"description":"Plain-language label for shipping_price, e.g. \"$7.99 flat shipping\".","type":"string"},"shipping_price":{"description":"USD, e.g. \"$7.99\". The flat shipping fee for this order, present only on an offer the storefront can sell (an offer that ships from JENNi) when a fee is set. Absent means unstated, never free. Added at checkout on top of `price`.","type":"string"},"url":{"description":"Storefront page for this ⟨29 unchanged words⟩ ["string","null"]},"product_id":{"type":"string"},"reason_code":{"description":"Present when offers is empty: not_checked (no fulfillment mode was verified for this result) or not_served_locally.","enum":["no_price","no_live_offer","out_of_stock","not_served_locally","variant_required","product_not_found","invalid_input","fee_unavailable","quote_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer"],"type":"string"},"shelf_price":{"description ⟨129 unchanged words⟩
⟨29 unchanged words⟩ "type":["string","null"]},"note":{"description":"Plain-language context for an empty or ship-only result.","type":"string"},"products":{"items":{"properties":{"brand ⟨37 unchanged words⟩ "type":["string","null"]},"note":{"type":"string"},"offers":{"description":"JENNi's single best offer ⟨83 unchanged words⟩ ,"fulfillment":{"description":"`local_delivery`: deliveredlocally. `concierge`: JENNi collects it fromtheshop and delivers or ships itsametodaythebyshopper.JENNi. `ship_to_home`: shipped to theshopper.shopper by JENNi. `in_store_only`: observedon the shelf, but it cannot be ordered throughJENNi. `pickup` is store-owned capability metadata, not aJENNicustomer reservation/ready/handoff flow, and isforneverthisreturned.destination. These are not executable MCP methods: ordering happens on the storefront.","enum":["pickup","local_delivery","ship_to_home","concierge","in_store_only"],"type":"string"},"is_eligible_checkout" ⟨111 unchanged words⟩ "type":["string","null"]},"ship_estimate":{"description":"Display-only arrival window for a shipped order. An estimate, not a promise.","properties":{"earliest_date":{"type":"string"},"latest_date":{"type":"string"},"source":{"type":"string"}},"type":"object"},"shipping_label":{"description":"Plain-language label for shipping_price, e.g. \"$7.99 flat shipping\".","type":"string"},"shipping_price":{"description":"USD, e.g. \"$7.99\". The flat shipping fee for this order, present only on an offer the storefront can sell (an offer that ships from JENNi) when a fee is set. Absent means unstated, never free. Added at checkout on top of `price`.","type":"string"},"url":{"description":"Storefront page for this ⟨31 unchanged words⟩ ,"product_id":{"type":"string"},"reason_code":{"description":"Present when offers is empty: not_checked (no fulfillment mode was verified for this result) or not_served_locally.","enum":["no_price","no_live_offer","out_of_stock","not_served_locally","variant_required","product_not_found","invalid_input","fee_unavailable","quote_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer"],"type":"string"},"shelf_price":{"description":"Observed shelf price for ⟨121 unchanged words⟩ },"type":"array"},"query":{"type":"string"},"reason_code":{"description":"Present when products is empty: no_buyable_offer (matches exist, none orderable now) or product_not_found.","enum":["no_price","no_live_offer","out_of_stock","not_served_locally","variant_required","product_not_found","invalid_input","fee_unavailable","quote_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer"],"type":"string"}},"required":[" ⟨4 unchanged words⟩
{"properties":{"checkout_url":{"type":"string"},"delivery_promise":{"type":["string","null"]},"fulfilled_by":{"const":"Delivered by JENNi","type":"string"},"fulfillment_mode":{"enum":["local_delivery","ship_to_home"],"type":"string"},"item":{"type":"string"},"kind":{"enum":["basket"],"concierge_requesttype":"string"},"next_step":{"type":"string"},"product_id":{"type":"string"},"quantity":{"type":"integer"},"quote":{"description":"The price an agent may state before checkout: unit price x quantity + the flat fee for the mode = total (before sales tax, which checkout adds). Null when the price could not be read; reason_code says why.","properties":{"currency":{"const":"USD","type":"string"},"eta":{"description":"same_day for local delivery; a display-only date window for ship_to_home. Null when no window is known.","properties":{"earliest_date":{"type":["string","null"]},"kind":{"enum":["same_day","window"],"type":"string"},"next_steplatest_date":{"type":["string","null"]}},"type":["object","null"]},"fee":{"type":["string","null"]},"fee_cents":{"type":["integer","null"]},"fee_kind":{"enum":["local_delivery_fee","shipping"],"type":"string"},"fulfilled_by":{"const":"Delivered by JENNi","type":"string"},"fulfillment_mode":{"enum":["local_delivery","ship_to_home"],"type":"string"},"note":{"type":"string"},"quantity":{"type":"integer"},"reason_code":{"enum":["no_price","no_live_offer","out_of_stock","not_served_locally","variant_required","product_not_found","invalid_input","fee_unavailable","quote_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer"],"type":"string"},"subtotal":{"type":"string"},"subtotal_cents":{"type":"integer"},"tax":{"const":"added_at_checkout","type":"string"},"total":{"description":"subtotal + fee before tax; null when the fee could not be read.","type":["string","null"]},"total_cents":{"type":["integer","null"]},"unit_price":{"type":"string"},"unit_price_cents":{"type":"integer"}},"type":["object","null"]},"reason_code":{"description":"Machine-readable reason, alongside the prose note.","enum":["no_price","no_live_offer","out_of_stock","not_served_locally","variant_required","product_not_found","invalid_input","fee_unavailable","quote_unavailable","catalog_unavailable","rate_limited","not_checked","no_buyable_offer"],"type":"string"},"unit_price":{"description":"Theshelfunit price the page shows;checkoutnullstateswhentheittotal.could not be read (reason_code says why).","type":["string","null"]} ⟨6 unchanged words⟩
Find a shop by name — Read-only directory for explicit shop-name questions, near a US ZIP code or served market. Returns shop identifiers, addresses and storefront URLs. A listing proves no product stock, price, delivery or checkout eligibility.
{"additionalProperties":false,"properties":{"fulfillment_modedelivery_address":{"additionalProperties":false,"description":"Requested fulfillment mode.DeliveryEligibilitydestination.isAddresscheckeddetailsforarethenotexactplacedproduct,inZIPtheandcheckoutquantity.URL.","enumproperties":[{"local_deliveryaddress1":{"type":"string"},"ship_to_homeaddress2"]:{"type":"string"},"city":{"type":"string"},"product_idpostal_code":{"description":"The exact item: a variant's product_id5-digitwhenUSitdeliveryhasZIPvariants.code.","type":"string"},"quantitystate":{"type":"string"}},"required":["postal_code"],"type":"object"},"fulfillment_mode":{"description":"HowSelectedmanyfulfillment(defaultmode:1).local_delivery is same-day; ship_to_home ships to the delivery address.","maximumenum":99["local_delivery","minimumship_to_home":1],"type":"integerstring"},"zipproduct_id":{"description":"5-digit USTheZIPexactcodeitem:theaordervariant'sisproduct_iddeliveredwhento,ite.g.has78205.variants.","type":"string"}},"required":["product_id","zip","quantityfulfillment_mode","fulfillment_modedelivery_address"],"type":"object"}
⟨57 unchanged words⟩ miles of it first, then the national list.Pass it for any shop outside San Antonio.","type":"string"}},"required": ⟨3 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Find a shop by name"}
Verify whether the exact product can be fulfilled by local_delivery or ship_to_homeRead-onlyforfulfillmentthiseligibility,ZIPprice andquantity. Calldeliveryoncedetails foreach mode before asking the shopper which available modeonetheyexactwant.product,Same-dayZIP,requiresquantityverifiedand local_delivery("Get it today", "Deliveredorbyship_to_homeJENNi").mode. The response contains no source-shop details.A failed check is unknown, not unavailable. After the shopper chooses anAn availablemode, start_checkout with the samelocal_deliverycontext;resultJENNiverifiesselectssame-daytheeligibilitysourceforinternallythatandcontext.theAbuyerfailedapprovescheckandmeanspaysunknownineligibility,hostednotcheckout.unavailable.
⟨64 unchanged words⟩ "null"]},"description":{"description":"TheProductmerchant'sdescriptionownfromdescriptionthe(get_productsourceonly).catalog, when returned.","type":["string","null"]} ⟨32 unchanged words⟩ 24 hours old (shelf_observed_at says when).DoNull is notcallevidenceitofinin-stock orout ofout-of-stockstock;state;whencheckout
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Check price and delivery"}
⟨14 unchanged words⟩ whether the card hold was captured or released.Pass the order_tokenRequires theshopperprivatecopiesorder_token fromtheirthe shopper’s JENNi order page (starts jos1_). Read-only; ⟨5 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Check an order"}
OneRead-only productbydetailstheby product_idsearch_catalog returned: product facts only, without source-shop details.Read-only. Return products without source-shop details. If aProductcityfactsisdo nota served market, ask for a 5-digit ZIP; never present national fallback as local. After a product is chosen, call get_buying_options for both local_delivery and ship_to_home with its exact product_id, zip and quantity. Offer only verified modes; same-day requires a verified local_delivery result. If neither mode is available, say so without asking the shopper to choose. Then call start_checkout with that product_id, zip, quantity and chosen fulfillment_mode; JENNi selects theverifysourcefulfillmentinternally.eligibility.
⟨26 unchanged words⟩ "null"]},"description":{"description":"TheProductmerchant'sdescriptionownfromdescriptionthe(get_productsourceonly).catalog, when returned.","type":["string","null"]} ⟨32 unchanged words⟩ 24 hours old (shelf_observed_at says when).DoNull is notcallevidenceitofinin-stock orout ofout-of-stockstock;state;whencheckout
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Product details"}
Search products across the United Statesforbyanya 5-digit US ZIP code oraservedmarket (e.g. san-antonio-tx). Read-only.market.ReturnsRead-only product facts and JENNi's best offer, without source-shop details.After the shopper chooses a product, verify local_delivery and ship_to_home separately with get_buying_options. Product details contain no source-shop names. To buy, give the shopper the url: they pick size/colour and check out as a guest, no account. Return products without source-shop details. If aSearchcityresultsisdo nota served market, ask for a 5-digit ZIP; never present national fallback as local. After a product is chosen, call get_buying_options for both local_delivery and ship_to_home with its exact product_id, zip and quantity. Offer only verified modes; same-day requires a verified local_delivery result. If neither mode is available, say so without asking the shopper to choose. Then call start_checkout with that product_id, zip, quantity and chosen fulfillment_mode; JENNi selects theverifysourcefulfillmentinternally.eligibility.
⟨58 unchanged words⟩ "null"]},"description":{"description":"TheProductmerchant'sdescriptionownfromdescriptionthe(get_productsourceonly).catalog, when returned.","type":["string","null"]} ⟨32 unchanged words⟩ 24 hours old (shelf_observed_at says when).DoNull is notcallevidenceitofinin-stock orout ofout-of-stockstock;state;whencheckout
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Search products"}
Call after the shopper choosesRechecks anavailable fulfillment mode: theexactproduct_id (a variant's when it has sizes or colours)product,fulfillment_modeZIP, quantity andtheir ZIP. JENNi selects the source internally. Re-checks the offer at thatfulfillmentquantitymode and returnscheckout_url: JENNi checkout withathathosteditemcheckout_url.addedJENNitoselects theshopper's basket, where they enter email, name, addresssourceandinternally.cardTheandbuyerseereviews delivery, tax and thetotal; nothingtotal,isenterschargedpaymentuntildetails,theyandplaceplaces theorder.orderGiveon theshopperhostedcheckout_url.page.AfterThisget_buying_optionsread-onlyretaintoolitscreatesexactnoquantityorder,ZIPreservationandorfulfillment_mode.charge.
{"additionalProperties":false,"properties":{"fulfillment_mode":{"description":"RetainRequested fulfillment mode. Eligibility is checked for themodeexactchosenproduct,fromZIPget_buying_options.and quantity.","enum":["local_delivery","ship_to_home"], ⟨51 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Start checkout"}
⟨26 unchanged words⟩ which available mode they want. Same-day requires verifiedlocal_delivery;local_deliveryconcierge("Getisitnevertoday",same-day."Delivered by JENNi"). The response contains no source-shop details. A failed ⟨31 unchanged words⟩
⟨80 unchanged words⟩ "null"]},"offers":{"description":"Always emptyJENNi'sinsingleproductbestdiscovery.offerThisforfieldthisdoesproductnot(price,verifydelivery_promise,orfulfilled_by,ruleis_eligible_checkout),outwithoutfulfillmentsource-shopavailability.details.","items":{"properties":{"availability": ⟨38 unchanged words⟩ "type":["string","null"]},"delivery_promise":{"description":"Shopper-facing delivery promise, e.g. \"Get it today\" (local delivery) or \"Ships to you\".","type":["string","null"]},"fulfilled_by":{"description":"Shopper-facing fulfiller line: \"Delivered by JENNi\".","type":["string","null"]},"fulfillment":{"description":"`local_delivery`: deliveredfrom the shop.locally. `concierge`: JENNi collects it from the shop ⟨6 unchanged words⟩ start_checkout like any orderable offer. `ship_to_home`: shippedfromto theshop.shopper. `in_store_only`:theobservedshoponcarriestheitshelf, but it cannot be ordered throughJENNi; tell the shopper to visit the shop.JENNi. `pickup` is store-owned capability metadata, not a ⟨133 unchanged words⟩ ":{"description":"The exact variant thisshopofferholds.covers.","type":["string","null"]} ⟨13 unchanged words⟩ "null"]},"shelf_price":{"description":"StoreObserved shelfprice observed at the named store.price. Browse information only; not a checkout price. Use ⟨25 unchanged words⟩ "],"type":"object"},"maxItems":01,"type":"array"},"price":{" ⟨15 unchanged words⟩ :"string"},"shelf_price":{"description":"StoreObserved shelfprice observed at the named store.price. Browse information only; not a checkout price. Use ⟨148 unchanged words⟩
⟨55 unchanged words⟩ and quantity. Offer only verified modes; same-day requireslocal_delivery andaneververifiedincludeslocal_deliveryconcierge.result. If neither mode is available, say so ⟨22 unchanged words⟩
⟨23 unchanged words⟩ US ZIP code, for local prices anddistances.delivery options.","type":"string"}},"required": ⟨3 unchanged words⟩
⟨42 unchanged words⟩ "null"]},"offers":{"description":"Always emptyJENNi'sinsingleproductbestdiscovery.offerThisforfieldthisdoesproductnot(price,verifydelivery_promise,orfulfilled_by,ruleis_eligible_checkout),outwithoutfulfillmentsource-shopavailability.details.","items":{"properties":{"availability": ⟨38 unchanged words⟩ "type":["string","null"]},"delivery_promise":{"description":"Shopper-facing delivery promise, e.g. \"Get it today\" (local delivery) or \"Ships to you\".","type":["string","null"]},"fulfilled_by":{"description":"Shopper-facing fulfiller line: \"Delivered by JENNi\".","type":["string","null"]},"fulfillment":{"description":"`local_delivery`: deliveredfrom the shop.locally. `concierge`: JENNi collects it from the shop ⟨6 unchanged words⟩ start_checkout like any orderable offer. `ship_to_home`: shippedfromto theshop.shopper. `in_store_only`:theobservedshoponcarriestheitshelf, but it cannot be ordered throughJENNi; tell the shopper to visit the shop.JENNi. `pickup` is store-owned capability metadata, not a ⟨133 unchanged words⟩ ":{"description":"The exact variant thisshopofferholds.covers.","type":["string","null"]} ⟨13 unchanged words⟩ "null"]},"shelf_price":{"description":"StoreObserved shelfprice observed at the named store.price. Browse information only; not a checkout price. Use ⟨25 unchanged words⟩ "],"type":"object"},"maxItems":01,"type":"array"},"price":{" ⟨15 unchanged words⟩ :"string"},"shelf_price":{"description":"StoreObserved shelfprice observed at the named store.price. Browse information only; not a checkout price. Use ⟨122 unchanged words⟩
⟨16 unchanged words⟩ (e.g. san-antonio-tx). Read-only. Returns product factsonlyand JENNi's best offer, without source-shop details. After the shopper chooses ⟨6 unchanged words⟩ separately with get_buying_options. Product details contain no source-shopoffers.names. To buy, give the shopper the url: ⟨52 unchanged words⟩ and quantity. Offer only verified modes; same-day requireslocal_delivery andaneververifiedincludeslocal_deliveryconcierge.result. If neither mode is available, say so ⟨22 unchanged words⟩
⟨74 unchanged words⟩ "null"]},"offers":{"description":"Always emptyJENNi'sinsingleproductbestdiscovery.offerThisforfieldthisdoesproductnot(price,verifydelivery_promise,orfulfilled_by,ruleis_eligible_checkout),outwithoutfulfillmentsource-shopavailability.details.","items":{"properties":{"availability": ⟨38 unchanged words⟩ "type":["string","null"]},"delivery_promise":{"description":"Shopper-facing delivery promise, e.g. \"Get it today\" (local delivery) or \"Ships to you\".","type":["string","null"]},"fulfilled_by":{"description":"Shopper-facing fulfiller line: \"Delivered by JENNi\".","type":["string","null"]},"fulfillment":{"description":"`local_delivery`: deliveredfrom the shop.locally. `concierge`: JENNi collects it from the shop ⟨6 unchanged words⟩ start_checkout like any orderable offer. `ship_to_home`: shippedfromto theshop.shopper. `in_store_only`:theobservedshoponcarriestheitshelf, but it cannot be ordered throughJENNi; tell the shopper to visit the shop.JENNi. `pickup` is store-owned capability metadata, not a ⟨133 unchanged words⟩ ":{"description":"The exact variant thisshopofferholds.covers.","type":["string","null"]} ⟨13 unchanged words⟩ "null"]},"shelf_price":{"description":"StoreObserved shelfprice observed at the named store.price. Browse information only; not a checkout price. Use ⟨25 unchanged words⟩ "],"type":"object"},"maxItems":01,"type":"array"},"price":{" ⟨15 unchanged words⟩ :"string"},"shelf_price":{"description":"StoreObserved shelfprice observed at the named store.price. Browse information only; not a checkout price. Use ⟨128 unchanged words⟩
⟨21 unchanged words⟩ quantity and their ZIP. JENNi selects the sourceshopinternally. Re-checks the offer at that quantity and ⟨48 unchanged words⟩
Read verified buying optionsVerifyforwhether the exact product,destination,canquantitybeandfulfilledfulfillmentbymode.local_deliveryEmptyoroffersship_to_homemeanfornothisoptionsZIPverifiedand quantity. Call once forthiseachrequest,modenotbeforethatasking theproductshopperdoeswhich available mode they want. Same-day requires verified local_delivery; concierge is never same-day. The response contains no source-shop details. A failed check is unknown, notexist.unavailable.ChooseAfter the shopper chooses aneligibleavailablestoremode,thenstart_checkout with the same context; JENNi selects the source internally and the buyer approves and pays in hosted checkout.
{"properties":{"fulfillment_option":{"properties":{"available":{"description":"True only when the requested mode was verified as orderable for this exact product, ZIP and quantity.","type":"boolean"},"fulfillment_mode":{"enum":["local_delivery","ship_to_home"],"type":"string"},"unit_price":{"type":["string","null"]}},"required":["fulfillment_mode","available"],"type":"object"},"product":{"properties":{"brand":{"type":["string ⟨34 unchanged words⟩ "type":["string","null"]},"offer_countoffers":{"description":"How manyAlwaysoffersemptythisin producthas. search_catalogdiscovery.listsThisatfieldmostdoes5,notorderable
One product by the product_id search_catalog returned:the merchant'sproductdescriptionfactsandonly,everywithoutshop'ssource-shopoffer.details. Read-only.BeforeReturnstart_checkoutproducts without source-shop details. If a city is not a served market, ask for a 5-digit ZIP; never present national fallback as local. After a product is chosen, call get_buying_options for both local_delivery and ship_to_home withtheits exact product_id,(azipvariant'sandproduct_idquantity.whenOfferitonlyhasverifiedsizesmodes;orsame-daycolours)requires local_delivery and never includes concierge. If neither mode is available, say so without asking the shopper to choose. Then call start_checkout with that product_id, zip, quantity andfulfillment_mode,chosenandfulfillment_mode;useJENNiaselectsstore_idtheitsourcereturns.internally.
⟨40 unchanged words⟩ "type":["string","null"]},"offer_countoffers":{"description":"How manyAlwaysoffersemptythisin producthas. search_catalogdiscovery.listsThisatfieldmostdoes5,notorderableverifyonesorfirst;ruleget_productoutlistsfulfillment
Search products across the United States for any 5-digit US ZIP code(local delivery near physical shops plus nationwide ship-to-home fallback)or a served market (e.g. san-antonio-tx). Read-only. Returnsproductsproduct facts only, without source-shop details. After theshopsshopperthatchoosesholdathemproduct, verify local_delivery and,pership_to_homeoffer,separatelywhetherwithitget_buying_options.canProductbedetailsorderedcontainthroughnoJENNi.source-shop offers. To buy, give the shopper the url: they pick size/colour and check out as a guest, no account.EachReturnproductproductslistswithoutatsource-shopmostdetails.5Ifoffers,aorderablecityonesisfirst;notcallaget_productserved market, ask forallaof5-digitthem.ZIP;Beforeneverstart_checkoutpresent national fallback as local. After a product is chosen, call get_buying_options for both local_delivery and ship_to_home withtheits exact product_id,(azipvariant'sandproduct_idquantity.whenOfferitonlyhasverifiedsizesmodes;orsame-daycolours)requires local_delivery and never includes concierge. If neither mode is available, say so without asking the shopper to choose. Then call start_checkout with that product_id, zip, quantity andfulfillment_mode,chosenandfulfillment_mode;useJENNiaselectsstore_idtheitsourcereturns.internally.
⟨72 unchanged words⟩ "type":["string","null"]},"offer_countoffers":{"description":"How manyAlwaysoffersemptythisin producthas. search_catalogdiscovery.listsThisatfieldmostdoes5,notorderableverifyonesorfirst;ruleget_productoutlistsfulfillment
Callwhenafter the shopperhaschooseschosenantoavailablebuyfulfillment mode: the exact product_id (a variant's when it has sizes or colours),the store_id of an offer withfulfillment_mode,is_eligible_checkoutquantitytrueandortheirfulfillmentZIP.concierge,JENNiaselectsquantitytheandsourcetheirshopZIP.internally. Re-checks the offer at that quantity and returns ⟨26 unchanged words⟩ nothing is charged until they place the order.For a concierge offer it returns a product page handoff, whereGive the shoppersets quantity and the page checks request availability. This handoff does not create a durable quote, reserve stock or purchase anything.checkout_url. After get_buying_options retain its exact quantity, ZIP and fulfillment_mode.
⟨39 unchanged words⟩ "minimum":1,"type":"integer"},"store_id":{"description":"store_id of an offer with is_eligible_checkout true, or a concierge offer.","type":"string"},"zip":{"description":"5-digit US ZIP code ⟨7 unchanged words⟩ type":"string"}},"required":["product_id","store_id","zip","quantity","fulfillment_mode"],"type":"object"}
⟨16 unchanged words⟩ ,"quantity":{"type":"integer"},"store_name":{"type":["string","null"]},"unit_price":{"description":"The shelf price the ⟨15 unchanged words⟩
Check an order — Read where a JENNi order stands: status, delivery ETA when known, courier tracking and whether the card hold was captured or released. Pass the order_token the shopper copies from their JENNi order page (starts jos1_). Read-only; it shows no personal details.
Complete canonicalOne productfacts, read-only. Nullable titles, empty images/offers and unknown stock remain visible. Discovery never authorizes checkout; completion is unavailable. Store filters are rejected; postal context never filtersbyfacts.theUseproduct_id search_catalogforreturned:productthefactsmerchant'swithoutdescriptionstoreandfilters;everyitshop'sdoesoffer.notRead-only.verifyBeforestockstart_checkout,price or delivery. Thencall get_buying_options with the exact product_id,zip, quantity and fulfillment_mode. After the buyer chooses a returned offer with is_eligible_checkout true, use its store_id with start_checkout for direct checkout. An offer explicitly marked fulfillment concierge may also use start_checkout for(ahosted request handoffvariant'sevenproduct_id whenthat flag is false. Retain the exactitbuyinghascontext.sizesAorhandoffcolours),doeszip,notquantityreserveandstockfulfillment_mode,create a durableandquoteuseoracompletestore_idaitpurchase.returns.
{"additionalProperties":false,"properties":{"postal_codemarket":{"description":"OptionalMarketechoedkey,callere.g.contextsan-antonio-tx.only;Usedneverwhenfiltersnofacts.","pattern":"^[0-9]{5}(?:-[0-9]{4})?$zip is given.","type":"string"},"product_id":{"maxLength":128,"type":"string"},"zip":{"description":"Optional5-digitechoedUScallerZIPcontextcode,only;
{"additionalProperties":false,"properties":{"catalog_authorityproduct":{"additionalProperties":false,"properties":{"kindbrand":{"consttype":["jenni_catalog_factsstring","null"]},"category":{"type":["string","null"]},"policy_hashcolor":{"constdescription":"1340ae7f5b87d590b5107d90c6ace904a0b38419101e211f39f5bbaa84e704a1Colour of the variant product_id names; null when it has none.","type":["string","null"]},"versiondescription":{"constdescription
Searchlocal shopsproducts
CompleteSearchcanonicalproductsproductacrossfacts,theread-only.UnitedNullableStatestitles,foremptyanyimages/offers5-digitandUSunknownZIPstockcoderemain(localvisible.deliveryDiscoverynearneverphysicalauthorizesshopscheckout;pluscompletionnationwideisship-to-homeunavailable.fallback)Storeorfiltersaareservedrejected;marketpostal(e.g.contextsan-antonio-tx).neverRead-only.filtersReturnsfacts.products,Usethesearch_catalogshopsforthatproductholdfactsthemwithoutand,storeperfilters;offer,itwhetherdoesitnotcanverifybestock,orderedpricethroughorJENNi.delivery.ToThenbuy,callgiveget_buying_optionsthewithshopper theexacturl:product_id,theyzip,pickquantitysize/colour andfulfillment_mode. After thecheckbuyeroutchoosesas areturned offer with is_eligible_checkout trueguest,use its store_id with start_checkoutnoforaccount.directEachcheckout.productAnlistsofferatexplicitlymostmarked5fulfillmentoffers,conciergeorderablemayonesalsofirst;usecallstart_checkoutget_product fora hosted request handoffallevenofwhenthem.thatBeforeflagstart_checkout,iscallfalse.get_buying_optionsRetainwith the exactbuyingproduct_idcontext.(aAvariant'shandoffproduct_iddoeswhennotitreservehasstocksizes or colours),createzip,aquantitydurableandquotefulfillment_mode,orandcompleteuse apurchase.store_id it returns.
{"additionalProperties":false,"properties":{"brand":{"maxLength":256,"type":"string"},"cursorlimit":{"description":"Confidential opaque upstream continuation; forward unchanged with the sameProductsselectorstoandreturnlimit.","maxLength":8192,"type":"string"},"gtin":{"pattern":"^[0-9]{8,14}$","type":"string"},"limit":{"(default 10).":20,"maximum":10020,"minimum":1,"type":"integer"},"postal_code":{"description":"Optional echoed caller context only; never filters facts.","pattern":"^[0-9]{5}(?:-[0-9]{4})?$","type":"string"},"product_id":{"maxLength":128,"type":"string"},"querymarket":{"description":"Optional title,Marketbrandkey,UPC or GTIN keyword.e.g.Omitsan-antonio-tx.
{"additionalProperties":false,"properties":{"catalog_authoritydelivers_here":{"additionalPropertiesdescription":false"The market we deliver in at that location; null when we deliver in none.","propertiestype":{["kindstring","null"]},"location":{"constdescription":"jenni_catalog_factsThe place searched around; null for none.","type":["string","null"]},"policy_hashproducts":{"constitems":{"1340ae7f5b87d590b5107d90c6ace904a0b38419101e211f39f5bbaa84e704a1properties
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":falsetrue}
⟨136 unchanged words⟩ the shop and buys it on the buyer'sbehalf andbehalf.itstart_checkoutCANreturnsbeaboughthostedthroughrequestthelink,url;eventhewhenitemis_eligible_checkout isnot reserved and may not be there,false; thepaymentpageisdeterminesonlywhether apending holdrequestuntilcanaproceed.JENNiTheshopperlinkbuysisitnotatathestockstorereservation,and the page takes the request only insidedurablethequoteshop'sorowncompletedhours.purchase. `ship_to_home`: shipped from the shop. `in_store_only`: the ⟨105 unchanged words⟩ , and start_checkout re-checks with them. False forbidscheckout.directNevercheckout.trueAnforexplicitly `concierge`,whichofferthemayproductstillpageusedecidesstart_checkoutagainstfor a hosted request handoff; theshop'sproductownpagehours.checksTruewhetherplacesanorequestorder:istheavailable.buyerNeitherconfirmseligibilityonnortheaproducthandoffpagereserves stock,whichcreatesre-checksaprice,quoteshelforandplacesdelivery.an order.","type":"boolean"},"is_eligible_search":{ ⟨293 unchanged words⟩
⟨50 unchanged words⟩ the exact product_id, zip, quantity and fulfillment_mode.OnlyAfterusethe buyer chooses a returned offer with is_eligible_checkout true,anduse its store_id with start_checkoutafterfor direct checkout. An offer explicitly marked fulfillment concierge may also use start_checkout for a hosted request handoff even when that flag is false. Retain thebuyerexactchoosesbuyingit.context. A handoff does not reserve stock, create a durable quote or complete a purchase.
⟨50 unchanged words⟩ the exact product_id, zip, quantity and fulfillment_mode.OnlyAfterusethe buyer chooses a returned offer with is_eligible_checkout true,anduse its store_id with start_checkoutafterfor direct checkout. An offer explicitly marked fulfillment concierge may also use start_checkout for a hosted request handoff even when that flag is false. Retain thebuyerexactchoosesbuyingit.context. A handoff does not reserve stock, create a durable quote or complete a purchase.
⟨19 unchanged words⟩ the store_id of an offer with is_eligible_checkout true or fulfillment concierge, a quantity and their ZIP. Re-checks the ⟨38 unchanged words⟩ the order. For a concierge offer it returnsthea product page,whichhandoff,placeswhereathe shopper sets quantity and the page checks requestasavailability. This handoff does not create apendingdurableholdquote,duringreservethestockshop'sorhours.purchase anything. After get_buying_options retain its exact quantity, ZIP and fulfillment_mode.
Complete canonical productdiscoveryfacts, read-only.Use get_buying_options for the selected exact product.Nullable titles, empty images/offers,and unknown stock remain visible. Discovery never authorizes checkout; completion is unavailable. Store filters are rejected; postal context never filters facts. Use search_catalog for product facts without store filters; it does not verify stock, price or delivery. Then call get_buying_options with the exact product_id, zip, quantity and fulfillment_mode. Only use a returned offer with is_eligible_checkout true and its store_id with start_checkout after the buyer chooses it.
Complete canonical productdiscoveryfacts, read-only.Use get_buying_options for the selected exact product.Nullable titles, empty images/offers,and unknown stock remain visible. Discovery never authorizes checkout; completion is unavailable. Store filters are rejected; postal context never filters facts. Use search_catalog for product facts without store filters; it does not verify stock, price or delivery. Then call get_buying_options with the exact product_id, zip, quantity and fulfillment_mode. Only use a returned offer with is_eligible_checkout true and its store_id with start_checkout after the buyer chooses it.
{"additionalProperties":false,"properties":{"marketpostal_code":{"description":"Market key, e.g.Optionalsan-antonio-tx.echoedUsedcallerwhencontextnoonly;zipneverisfiltersgiven.facts.","pattern":"^[0-9]{5}(?:-[0-9]{4})?$","type":"string"},"product_id":{"maxLength":128,"type":"string"},"zip":{"description":"5-digit USOptionalZIPechoedcode,callerforcontextlocalonly;pricesneverandfiltersdistances.facts.","pattern":"^[0-9]{5}(?:-[0-9]{4})?$","type":"string"}},"required": ⟨3 unchanged words⟩
{"additionalProperties":false,"properties":{"productcatalog_authority":{"propertiesadditionalProperties":{false,"brandproperties":{"typekind":[{"stringconst",:"nulljenni_catalog_facts"]},"category":{"type":["string","null"]},"colorpolicy_hash":{"descriptionconst":"Colour of the variant product_id names; null when it has none.1340ae7f5b87d590b5107d90c6ace904a0b38419101e211f39f5bbaa84e704a1","type":["string","null"]},"descriptionversion":{"descriptionconst":"The merchant's own description (get_product only).2026-10-16.v1","type":["string","null"]}},"imagerequired":{["typekind":[,"stringversion","nullpolicy_hash"],"type":"object"},"offer_countcontract_version":{"descriptionconst":"How many offers this product has. search_catalog lists at most 5, orderable ones first; get_product lists all.catalog_facts_v1","type":"integerstring"},"offersexhausted":{"itemstype":{"propertiesboolean":{},"availabilityitems":{"descriptionitems":{"NULL when we cannot read that shop's shelf, or the last read is over 24 hours old (shelf_observed_at says when). Null is not 'out of stock' — it means unknown, and must not be presented as either availability state.additionalProperties":false,"enumproperties":["in_stock",{"out_of_stockbrand",null],:{"type":["string","null"]},"citycategory":{"typeadditionalProperties":["string"false,"nullproperties"]},:{"distance_milesid":{"type":["numberstring","null"]},"fulfillmentname":{"description":"`local_delivery`: delivered from the shop. `concierge`: a person goes to the shop and buys it on the buyer's behalf and it CAN be bought through the url; the item is not reserved and may not be there, the payment is only a pending hold until a JENNi shopper buys it at the store, and the page takes the request only inside the shop's own hours. `ship_to_home`: shipped from the shop. `in_store_only`: the shop carries it, but it cannot be ordered through JENNi; tell the shopper to visit the shop. `pickup` is store-owned capability metadata, not a JENNi customer reservation/ready/handoff flow, and is never returned. These are not executable MCP methods: ordering happens on the storefront.","enumtype":["pickupstring","local_deliverynull"]}},"ship_to_homerequired",:["conciergeid","in_store_onlyname"],"type":"stringobject"},"is_eligible_checkoutcheckout_eligible":{"description":const"True when the storefront offers this exact offer for order:ordering on, a checkout price quote, a shelf in stock, a courier or shipping, and a stated delivery fee. Local delivery is also refused when the shop's own hours show no opening within the week; a search result may not carry hours, and start_checkout re-checks with them. False forbids checkout. Never true for `concierge`, which the product page decides against the shop's own hours. True places no order: the buyer confirms on the product page, which re-checks price, shelf and delivery."false,"type":"boolean"},"is_eligible_searchgtin":{"type":["booleanstring","null"]},"noteid":{"descriptionpattern":"The disclosure a shopper sees for this shop; relay it.^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","type":"string"},"priceimages":{"descriptionitems":{"USD, e.g. \type"$12.50\:". Null when we hold no current price.string"},"typemaxItems":[0,"stringtype",:"nullarray"]},"product_idoffers":{"descriptionitems":"The exact variant this shop holds.",{"type":["string","null"]},"shelf_observed_at":{"descriptionmaxItems":"When the shelf was last read. Null means never."0,"type":["string","nullarray"]},"shelf_pricestock_state":{"descriptionconst":"Store shelf price observed at the named store. Browse information only; not a checkout price. Use `price` and is_eligible_checkout for purchase.unknown","type":["string","null"]},"store_idtitle":{"type":["string"},"store_name":{"type":"stringnull"]},"urlupc":{"description":"Storefront page for this exact offer.","type":["string","null"]}},"required":["store_idid","is_eligible_searchtitle","is_eligible_checkoutbrand","fulfillmentupc","availabilitygtin"],"type":"objectcategory"},"type":"arrayimages"},"priceoffers":{,"descriptionstock_state":,"Headline price in USD; null when none is held.checkout_eligible"],"type":["string","nullobject"]},"product_id":{"type":"stringarray"},"shelf_pricemode":{"descriptionconst":"Store shelf price observed at the named store. Browse information only; not a checkout price. Use `price` and is_eligible_checkout for purchase.canonical_discovery","type":["string","null"]},"sizenext_cursor":{"description":"Size of the variant product_id names; null when it has none.","type":["string","null"]},"titleoffer_policy":{"typeadditionalProperties":false,"stringproperties"},:{"urlstate":{"descriptionconst":"Storefront product page, where the buyer picks size/colour, checks out as a guest (email, no account) and pays. Null when no storefront is configured.not_requested","type":["string"}},"nullrequired":["state"]},"variantstype":{"descriptionobject"},"requested_context":{"Buyable size/colour variants. Give the shopper the variant url so the page opens on that choice. search_catalog lists at most 30; get_product lists all.additionalProperties":false,"itemsproperties":{"propertiespostal_code":{"colorpattern":"^[0-9]{5}(?:-[0-9]{4})?$","type":["string","null"]}},"product_idrequired":{["postal_code"],"type":"stringobject"},"sizesnapshot_semantics":{"typeconst":["stringlive_keyset","nulltype"]:"string"},"urlsource_observed_at":{"descriptionformat":"Storefront page opened on this variant.date-time","type":["string","null"]}},"required":["product_idmode"],"type":"objectcontract_version"},"type":"arrayitems"}},"required":["product_idnext_cursor","titleexhausted","offerscatalog_authority"],"typeoffer_policy":,"objectrequested_context"}},"requiredsource_observed_at":[,"productsnapshot_semantics"],"type":"object"}
Search products across the United States for any 5-digit US ZIP code (local delivery near physical shops plus nationwide ship-to-home fallback) or aCompleteservedcanonicalmarketproduct(e.g.discovery,san-antonio-tx).read-only.Read-only.UseReturnsget_buying_optionsproducts,for theshops that holdselectedthemexactand,product.perNullableoffertitles,whether it can be ordered through JENNi. Toemptybuyimages/offers,give the shopper the url: they pick size/colour and check out as aunknownguest,stocknoremainaccount.visible.EachDiscoveryproductneverlistsauthorizesatcheckout;mostcompletion5isoffers,unavailable.orderableStoreonesfiltersfirst;arecallrejected;get_productpostalforcontextallneveroffiltersthem.facts.
{"additionalProperties":false,"properties":{"limitbrand":{"maxLength":256,"type":"string"},"cursor":{"description":"ProductsConfidentialtoopaquereturnupstream(defaultcontinuation;10).forward unchanged with the same selectors and limit.","maximummaxLength":8192,"type":"string"},"gtin":{"pattern":"^[0-9]{8,14}$","type":"string"},"limit":{"default":20,"maximum":100,"minimum":1,"type":"integer"},"marketpostal_code":{"description":"Market key, e.g.Optionalsan-antonio-tx.echoedUsedcallerwhen
{"propertiesadditionalProperties":{false,"delivers_hereproperties":{"descriptioncatalog_authority":"The market we deliver in at that location; null when we deliver in none.",{"typeadditionalProperties":["string"false,"nullproperties"]},:{"locationkind":{"descriptionconst":"The place searched around; null for none.jenni_catalog_facts","type":["string","null"]},"products":{"items":{"properties":{"brand
⟨88 unchanged words⟩ as a pending hold during the shop's hours. After get_buying_options retain its exact quantity, ZIP and fulfillment_mode.
⟨73 unchanged words⟩ "required":["product_id","store_id","zip","quantity","fulfillment_mode"],"type":"object"}
Check price and delivery — Read verified buying options for the exact product, destination, quantity and fulfillment mode. Empty offers mean no options verified for this request, not that the product does not exist. Choose an eligible store, then start_checkout with the same context; the buyer approves and pays in hosted checkout.