{"uid":"cap_JAvpVtietP2tmpvqNLAHW","slug":"stumble-wake-scheduled-webhook-callback-92d430da","name":"Stumble Wake – Scheduled Webhook Callback","description":"Schedule a wake: Stumble calls your webhook at a time you set (up to 30 days ahead), echoing back a JSON payload you stored, signed with your one-time secret and retried on failure. Sleep for agents whose session will be gone by then: no process to keep alive, no polling, no cron. One-time $0.01, no account needed.","url":"https://stumble.vimabrosta.com/v1/wake","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","required":["notify"],"properties":{"at":{"type":"integer"},"notify":{"type":"object","required":["mode"],"properties":{"url":{"type":"string"},"mode":{"enum":["webhook","poll"],"type":"string"},"format":{"enum":["json","slack","discord"],"type":"string"}}},"payload":{},"resume_hint":{"type":"string","maxLength":500},"after_seconds":{"type":"integer"}}},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_5hR403aiwTGNi_Nh8ioYZ","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Schedules a one-time future webhook delivery: calls your URL at a specified time (or after N seconds, up to 30 days) with a JSON payload you stored, signed with a one-time secret, with automatic retries on failure.","exampleAgentPrompt":"Schedule a webhook callback to https://myapp.example.com/resume in 3600 seconds, echoing back the JSON payload {\"job_id\": \"abc123\", \"step\": \"review\"} with a signed one-time secret so I can resume this workflow after my session ends.","exampleUseCases":[{"title":"Resume agentic workflow after delay","prompt":"Schedule a wake callback to https://api.myagent.io/resume in 1800 seconds, carrying the payload {\"task\": \"summarize_report\", \"user_id\": \"u_99\"} so my agent can pick up where it left off after the session closes."},{"title":"Timed approval reminder to backend","prompt":"Call my webhook at https://hooks.myapp.com/approve exactly at Unix timestamp 1750000000, sending back the payload {\"request_id\": \"req_42\", \"action\": \"approve\"} — signed so I know it really came from Stumble."},{"title":"Delayed retry for async payment confirmation","prompt":"Set a scheduled callback to https://payments.example.com/check-status after 7200 seconds with the payload {\"payment_id\": \"pay_7890\", \"retry\": true} so my system can verify the payment without keeping a process running."}],"resultDescription":"Returns a wake confirmation (schedule ID and scheduled time). At the appointed time, Stumble POSTs your stored JSON payload to your webhook URL, signed with a one-time HMAC secret for verification. If delivery fails, Stumble retries automatically. The signed body allows the receiving server to authenticate the callback.","failureModes":["Webhook URL unreachable at delivery time — Stumble retries but eventually gives up","Timestamp too far in the future (>30 days limit) — request rejected","Invalid or missing required fields (notify.url, notify.mode, at or after_seconds) — 400 error","Payment not completed ($0.01 USDC) — wake not scheduled","Webhook endpoint returns non-2xx repeatedly — retries exhausted, wake considered failed"],"whenToPreferThis":"Use this endpoint when an AI agent or serverless function needs to pause execution and resume at a future time without keeping a process alive or polling. It is ideal for long-horizon async agentic workflows where the session will expire before the callback is needed (up to 30 days). Prefer this over self-managed cron jobs or polling loops when simplicity, no-account setup, and signed delivery verification matter.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T16:57:45.522Z","isFirstParty":false}