{"name":"markedet shopify launch watch","version":"0.3.0","provider":"markedet","what":"Shopify launch watch for e-commerce and product-research agents: send up to 20 store domains and get, per store, whether it runs Shopify, its product count, the newest products (title, URL, created and published dates, price range, tags) and flags: fresh_launch (published inside your window), held_then_published (created 14+ days before going live), long_survivor (listed for over 12 months), recently_updated (updated in the last 24 h, a hint not proof of inventory movement) and telling tags such as winner, test, tiktok or upsell. Plus a cross-store section: similar product titles launched by 2 or more of your stores in the same window. Reads only each store's public /products.json, politely.","price":{"per_store_usd":"0.01","per_store_atomic_usdc":"10000","max_stores_per_call":20,"asset":"USDC","network":"eip155:8453","protocol":"x402 v2, scheme exact","testnet":false,"note":"amount = number of unique stores x price; invalid input sent with a payment is a free 422 (never settled); if every store fails you are not charged"},"endpoints":{"check":{"method":"POST","url":"https://shopify-launch-watch.onrender.com/check","paid":true},"demo":"https://shopify-launch-watch.onrender.com/demo","stats":"https://shopify-launch-watch.onrender.com/stats","openapi":"https://shopify-launch-watch.onrender.com/openapi.json","x402_discovery":"https://shopify-launch-watch.onrender.com/.well-known/x402","health":"https://shopify-launch-watch.onrender.com/health","llms_txt":"https://shopify-launch-watch.onrender.com/llms.txt","mcp":"https://shopify-launch-watch.onrender.com/mcp","agent_card":"https://shopify-launch-watch.onrender.com/.well-known/agent-card.json","a2a":"https://shopify-launch-watch.onrender.com/a2a","mcp_server_json":"https://shopify-launch-watch.onrender.com/server.json","guide":"https://shopify-launch-watch.onrender.com/guide"},"mcp":{"url":"https://shopify-launch-watch.onrender.com/mcp","transport":"streamable-http (stateless, JSON)","paid_tool":"watch_shopify_launches","free_tool":"demo","payment":"x402 MCP transport: params._meta['x402/payment']","client_config":{"mcpServers":{"shopify-launch-watch":{"url":"https://shopify-launch-watch.onrender.com/mcp"}}}},"input_schema":"https://shopify-launch-watch.onrender.com/openapi.json#/components/schemas/CheckRequest","example_input":{"stores":["allbirds.com","deathwishcoffee.com"],"since_days":7},"how_to_pay":["1. POST https://shopify-launch-watch.onrender.com/check with the JSON body and no payment header. You get 402 with a PAYMENT-REQUIRED header (base64 JSON) and the same challenge in the body: accepts[0] has amount (atomic USDC), payTo, asset, network.","2. Sign an EIP-3009 transferWithAuthorization for that amount with an x402 client (Python package x402, TypeScript @x402/fetch or @x402/axios). Nothing moves until the server settles.","3. Repeat the same POST with header PAYMENT-SIGNATURE: <base64 payload>. The result comes back with a PAYMENT-RESPONSE header carrying the settlement transaction. If every store fails, you are not charged."],"curl_example":"curl -si -X POST https://shopify-launch-watch.onrender.com/check -H 'content-type: application/json' -d '{\"stores\": [\"allbirds.com\", \"deathwishcoffee.com\"], \"since_days\": 7}'","python_example":"import asyncio, os\nfrom eth_account import Account\nfrom x402 import x402Client\nfrom x402.http.clients import x402HttpxClient\nfrom x402.mechanisms.evm.exact import register_exact_evm_client\nfrom x402.mechanisms.evm.signers import EthAccountSigner\n\nasync def main():\n    c = x402Client()\n    register_exact_evm_client(c, EthAccountSigner(Account.from_key(os.environ[\"EVM_PRIVATE_KEY\"])))  # wallet with USDC on Base\n    async with x402HttpxClient(c, timeout=90) as http:\n        r = await http.post(\"https://shopify-launch-watch.onrender.com/check\", json={'stores': ['allbirds.com', 'deathwishcoffee.com'], 'since_days': 7})\n        print(r.status_code, r.json()[\"summary\"], r.json()[\"cross_store\"][:3])\n\nasyncio.run(main())","limits":["Reads only public /products.json. Stores can disable or hide it, password-protect the shop or block bots; you then get status products_json_disabled, password_protected or blocked (charged, it is an answer).","products.json lists published products only. Drafts, unlisted and deleted products are invisible.","updated_at changes for many reasons (edits, apps, images, metafields), so recently_updated hints at inventory or price movement but does not prove it. No sales or stock numbers.","At most 4 pages of 250 products per store; bigger catalogues are marked product_count_capped.","Polite fetching: 1 request per second per store, 10 minute cache, robots.txt respected. A call with 20 stores can take 10 to 30 seconds.","Cross-store matching compares title words (Jaccard >= 0.6), not images; renamed products are missed and generic titles can match by chance.","Runs on Render Free: after ~15 minutes idle the first call takes ~30-60 s (cold start)."],"source":"https://bitbucket.org/markedet/shopify-launch-watch","license":"MIT"}