{"uid":"cap_ntAJlz05Y67QAD5F3QUFl","slug":"halowerk-webhook-inbox-fdc132fe","name":"Halowerk Webhook Inbox","description":"Gives an agent without a reachable server a place to receive callbacks. create returns a public URL that accepts any POST, GET or PUT from a third party; poll returns the events that arrived since a cursor you carry forward, with headers, parsed body and arrival time. The inbox expires after at most seven days and holds at most 500 events, oldest dropped first. Reading requires the secret returned at creation.","url":"https://agent.halowerk.com/v1/webhook-inbox","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"note":{"type":"string","maxLength":200,"description":"Free label carried through."},"limit":{"type":"integer","default":50,"maximum":200,"minimum":1,"description":"Maximum events per poll."},"action":{"enum":["create","poll","delete"],"type":"string","description":"create makes a new inbox, poll reads events, delete removes it."},"cursor":{"type":"integer","default":0,"minimum":0,"description":"Only events with a higher sequence number are returned."},"secret":{"type":"string","maxLength":128,"minLength":8,"description":"The secret returned by create. Required for poll and delete."},"inbox_id":{"type":"string","maxLength":64,"minLength":8,"description":"Required for poll and delete."},"max_events":{"type":"integer","default":100,"maximum":500,"minimum":1,"description":"How many events the inbox keeps before dropping the oldest."},"ttl_seconds":{"type":"integer","default":3600,"maximum":604800,"minimum":60,"description":"Lifetime of a new inbox, at most seven days."}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","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.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_ZBbynr5Uw_4eMuwBOYa21","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Creates a temporary public URL that receives POST/GET/PUT callbacks from third parties and lets an agent poll for those events by secret key.","exampleAgentPrompt":"Create me a temporary webhook inbox so I can receive POST callbacks from Stripe — then poll it every minute and return any events that arrive, carrying forward the cursor each time.","exampleUseCases":[{"title":"OAuth redirect capture for serverless agent","prompt":"I need a public callback URL right now so I can start an OAuth flow with GitHub — my agent has no server, so create a webhook inbox, give me the URL to use as the redirect URI, and then poll for the incoming GET request so I can extract the auth code from it."},{"title":"Awaiting third-party payment notification","prompt":"Set up a temporary webhook inbox and give me the public URL so I can register it with my payment processor for transaction confirmations — then keep polling it every 30 seconds and report back as soon as a POST arrives with a payment payload."},{"title":"Capturing async job completion callback","prompt":"I've kicked off a long-running export job on an external platform and it will POST back to a URL when it's done — create me a webhook inbox, register the URL with the job, then poll until I see the completion event come in and show me the parsed body."}],"resultDescription":"On creation: a public callback URL and a secret key. On poll: an array of received events each containing the HTTP method, headers, parsed body, arrival timestamp, and an updated cursor to use on the next poll. The inbox holds up to 500 events for at most 7 days; oldest events are dropped first when full.","failureModes":["Inbox not found or secret mismatch — 404 or 401 if the secret is wrong or inbox has expired","Inbox expired — inboxes are deleted after 7 days, returning a 404 on subsequent polls","Event overflow — if more than 500 events arrive, the oldest are silently dropped before polling","Malformed poll cursor — passing a corrupt or stale cursor may return an error or restart the event window","Third-party sends an unsupported HTTP method — only POST, GET, and PUT are accepted by the callback URL"],"whenToPreferThis":"Choose this endpoint when your agent operates without a persistent public server and needs to receive callbacks, webhooks, or redirects from external systems. It is ideal for OAuth flows, async job completion notifications, payment webhooks, or any scenario where a third party must POST/GET/PUT data back to your agent. Prefer it over maintaining your own HTTP server when the interaction is short-lived (under 7 days) and the event volume is moderate (under 500 events).","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-13T18:48:00.236Z","isFirstParty":false}