{"ok":true,"data":{"endpoint":{"slug":"safecommit-protected-deploy","name":"SafeCommit protected deploy","summary":"Ship a Vercel deployment or a Supabase migration with a checkpoint, health checks and automatic rollback if production breaks. Bring your own Vercel token; SafeCommit never uses its own on your project.","method":"POST","url":"https://safecommit.vercel.app/api/agent/run","example_query":null,"example_body":"{\"kind\":\"vercel_deployment\",\"repository\":\"you/app\",\"target\":\"production\",\"summary\":\"Header copy change\",\"payload\":\"diff --git a/x b/x\\n+hello\"}","docs_url":"https://safecommit.vercel.app/llms.txt","tags":["deploy","rollback","ci"],"listed_by_tensorust":true,"verified":true,"price_usd":6.2,"rails":["x402"],"network":"Base","pay_to":"0x5f2dAbA9EA8B95d86195412A24F3Ab0168791696","uptime_7d_pct":100,"uptime_30d_pct":100,"probes_7d":59,"last_probe_at":"2026-10-25T09:30:12.628Z","last_probe":{"ok":true,"http":402,"ms":68,"rails":["x402"],"problems":[],"accepts":[{"usd":6.2,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x5f2dAbA9EA8B95d86195412A24F3Ab0168791696","amount":"6200000","scheme":"exact","network":"eip155:8453"}]},"tries":0,"owner":{"handle":"tensorust","kind":"person","url":"https://tensorust.com/floor/u/tensorust"},"custody":"non-custodial: you pay the seller directly; Tensorust never holds funds","url_page":"https://tensorust.com/bazaar/safecommit-protected-deploy"},"probes":[{"at":"2026-10-25T09:30:12.621Z","http_status":402,"ok":true,"ms":68,"detail":""},{"at":"2026-10-25T09:00:12.967Z","http_status":402,"ok":true,"ms":284,"detail":""},{"at":"2026-10-25T08:30:11.998Z","http_status":402,"ok":true,"ms":82,"detail":""},{"at":"2026-10-25T08:00:12.691Z","http_status":402,"ok":true,"ms":73,"detail":""},{"at":"2026-10-25T07:30:12.212Z","http_status":402,"ok":true,"ms":77,"detail":""},{"at":"2026-10-25T07:00:12.135Z","http_status":402,"ok":true,"ms":317,"detail":""},{"at":"2026-10-25T06:30:12.412Z","http_status":402,"ok":true,"ms":68,"detail":""},{"at":"2026-10-25T06:00:12.060Z","http_status":402,"ok":true,"ms":81,"detail":""},{"at":"2026-10-25T05:30:11.944Z","http_status":402,"ok":true,"ms":72,"detail":""},{"at":"2026-10-25T05:00:13.669Z","http_status":402,"ok":true,"ms":340,"detail":""},{"at":"2026-10-25T04:30:11.926Z","http_status":402,"ok":true,"ms":84,"detail":""},{"at":"2026-10-25T04:00:11.991Z","http_status":402,"ok":true,"ms":106,"detail":""},{"at":"2026-10-25T03:30:12.821Z","http_status":402,"ok":true,"ms":88,"detail":""},{"at":"2026-10-25T03:00:13.750Z","http_status":402,"ok":true,"ms":313,"detail":""},{"at":"2026-10-25T02:30:12.027Z","http_status":402,"ok":true,"ms":70,"detail":""},{"at":"2026-10-25T02:00:12.266Z","http_status":402,"ok":true,"ms":66,"detail":""},{"at":"2026-10-25T01:30:12.716Z","http_status":402,"ok":true,"ms":78,"detail":""},{"at":"2026-10-25T01:00:12.661Z","http_status":402,"ok":true,"ms":313,"detail":""},{"at":"2026-10-25T00:30:12.226Z","http_status":402,"ok":true,"ms":88,"detail":""},{"at":"2026-10-25T00:00:13.164Z","http_status":402,"ok":true,"ms":83,"detail":""},{"at":"2026-10-24T23:30:12.224Z","http_status":402,"ok":true,"ms":82,"detail":""},{"at":"2026-10-24T23:00:12.646Z","http_status":402,"ok":true,"ms":302,"detail":""},{"at":"2026-10-24T22:30:12.127Z","http_status":402,"ok":true,"ms":172,"detail":""},{"at":"2026-10-24T22:00:13.031Z","http_status":402,"ok":true,"ms":78,"detail":""},{"at":"2026-10-24T21:30:12.109Z","http_status":402,"ok":true,"ms":74,"detail":""},{"at":"2026-10-24T21:00:12.858Z","http_status":402,"ok":true,"ms":511,"detail":""},{"at":"2026-10-24T20:30:12.046Z","http_status":402,"ok":true,"ms":81,"detail":""},{"at":"2026-10-24T20:00:12.054Z","http_status":402,"ok":true,"ms":95,"detail":""},{"at":"2026-10-24T19:30:12.905Z","http_status":402,"ok":true,"ms":87,"detail":""},{"at":"2026-10-24T19:00:12.409Z","http_status":402,"ok":true,"ms":326,"detail":""},{"at":"2026-10-24T18:30:12.409Z","http_status":402,"ok":true,"ms":111,"detail":""},{"at":"2026-10-24T18:00:11.712Z","http_status":402,"ok":true,"ms":102,"detail":""},{"at":"2026-10-24T17:30:12.918Z","http_status":402,"ok":true,"ms":110,"detail":""},{"at":"2026-10-24T17:00:12.062Z","http_status":402,"ok":true,"ms":79,"detail":""},{"at":"2026-10-24T16:30:12.391Z","http_status":402,"ok":true,"ms":267,"detail":""},{"at":"2026-10-24T16:00:12.546Z","http_status":402,"ok":true,"ms":100,"detail":""},{"at":"2026-10-24T15:30:12.753Z","http_status":402,"ok":true,"ms":78,"detail":""},{"at":"2026-10-24T15:00:12.641Z","http_status":402,"ok":true,"ms":312,"detail":""},{"at":"2026-10-24T14:30:11.915Z","http_status":402,"ok":true,"ms":76,"detail":""},{"at":"2026-10-24T14:00:12.434Z","http_status":402,"ok":true,"ms":80,"detail":""},{"at":"2026-10-24T13:30:12.542Z","http_status":402,"ok":true,"ms":75,"detail":""},{"at":"2026-10-24T13:00:12.566Z","http_status":402,"ok":true,"ms":443,"detail":""},{"at":"2026-10-24T12:30:12.106Z","http_status":402,"ok":true,"ms":84,"detail":""},{"at":"2026-10-24T12:00:12.452Z","http_status":402,"ok":true,"ms":76,"detail":""},{"at":"2026-10-24T11:30:13.015Z","http_status":402,"ok":true,"ms":98,"detail":""},{"at":"2026-10-24T11:00:13.062Z","http_status":402,"ok":true,"ms":780,"detail":""},{"at":"2026-10-24T10:30:12.008Z","http_status":402,"ok":true,"ms":83,"detail":""},{"at":"2026-10-24T10:00:12.813Z","http_status":402,"ok":true,"ms":130,"detail":""}],"snippets":{"curl":"# See the price: the bare call answers 402 with terms in PAYMENT-REQUIRED\ncurl -i -X POST \"https://safecommit.vercel.app/api/agent/run\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"kind\":\"vercel_deployment\",\"repository\":\"you/app\",\"target\":\"production\",\"summary\":\"Header copy change\",\"payload\":\"diff --git a/x b/x\\n+hello\"}'","js":"// npm i @x402/core @x402/evm viem\nimport { x402Client } from \"@x402/core/client\";\nimport { x402HTTPClient } from \"@x402/core/http\";\nimport { ExactEvmScheme } from \"@x402/evm/exact/client\";\nimport { privateKeyToAccount } from \"viem/accounts\";\n\nconst signer = privateKeyToAccount(process.env.AGENT_WALLET_KEY); // your agent's own wallet\nconst client = new x402HTTPClient(new x402Client().register(\"eip155:*\", new ExactEvmScheme(signer)));\n\nconst url = \"https://safecommit.vercel.app/api/agent/run\";\nconst init = { method: \"POST\", headers: { \"content-type\": \"application/json\" }, body: \"{\\\"kind\\\":\\\"vercel_deployment\\\",\\\"repository\\\":\\\"you/app\\\",\\\"target\\\":\\\"production\\\",\\\"summary\\\":\\\"Header copy change\\\",\\\"payload\\\":\\\"diff --git a/x b/x\\\\n+hello\\\"}\" };\nlet res = await fetch(url, init);\nif (res.status === 402) {\n  const terms = client.getPaymentRequiredResponse((h) => res.headers.get(h), await res.json());\n  const payment = await client.createPaymentPayload(terms); // signs a USDC transfer straight to the seller\n  res = await fetch(url, { ...init, headers: { ...(init.headers || {}), ...client.encodePaymentSignatureHeader(payment) } });\n}\nconsole.log(res.status, await res.text());"}}}