← Back to blog

Build a Webhook Inbox in 30 Seconds — Free HTTP Endpoint for AI Agents

July 19, 2026 · Eric · 4 min read

Every developer has been there: you're building an integration, and you need a real HTTP endpoint to receive a webhook — but you're on a laptop behind NAT, working in a sandboxed AI environment, or stuck in a CI runner with no public URL.

You could reach for webhook.site or ngrok. But those are separate accounts, browser tabs, or daemons to babysit. What if you could get a disposable webhook inbox URL with a single API call — from curl, a Python script, or even your AI agent's chat interface?

That's what the Agent Media Tools webhook inbox gives you. No signup. No server. One request, and you have a live HTTP endpoint that collects POSTs for you.

What Is a Webhook Inbox?

A webhook inbox is a temporary HTTP endpoint that accepts POST requests and stores them until you poll them. Think of it as a mailbox for machine-to-machine messages:

Later — from a different machine, a different session, or a different agent — you poll the inbox and get every message that arrived.

Creating a Webhook Inbox

Hit the /api/webhook/inbox endpoint with a friendly name. That's it.

Step 1 — Create your inbox
curl -X POST https://agentmediatools.com/api/webhook/inbox \
  -H "Content-Type: application/json" \
  -d '{"name": "deploy-alerts"}'

You'll get back:

{
  "name": "deploy-alerts",
  "inbox_url": "https://agentmediatools.com/api/webhook/inbox/deploy-alerts",
  "token": "mt_web_in_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "created_at": "2026-07-19T12:00:00Z",
  "message_count": 0
}

The inbox_url is your public endpoint — give this to any service that needs to send you webhooks. The token is how you'll read messages later (keep it secret).

Sending Messages to Your Inbox

Any external service can POST to your inbox URL. No auth required on the sender side — that's intentional. Inboxes accept anonymous POSTs so GitHub, Stripe, Slack, cron jobs, and dumb shell scripts can all deliver to them.

Here's a GitHub Actions workflow sending a deploy notification:

jobs:
  deploy:
    steps:
      - run: echo "Deploying..."
      - name: Notify inbox
        run: |
          curl -X POST https://agentmediatools.com/api/webhook/inbox/deploy-alerts \
            -H "Content-Type: application/json" \
            -d '{"event":"deploy","status":"success","commit":"abc123"}'

Every POST gets a timestamp and a unique ID. The inbox stores up to 100 messages before rotating oldest-first.

Polling Your Inbox (Reading Messages)

Now the magic part: from anywhere — a different laptop, an AI agent running in the cloud, a mobile phone terminal — you poll with your token and read everything.

Step 2 — Poll messages
curl "https://agentmediatools.com/api/webhook/inbox/deploy-alerts?token=mt_web_in_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Response:

{
  "name": "deploy-alerts",
  "messages": [
    {
      "id": "msg_001",
      "timestamp": "2026-07-19T12:05:00Z",
      "headers": {"content-type": "application/json"},
      "body": {"event": "deploy", "status": "success", "commit": "abc123"}
    }
  ],
  "pending": 1
}

Messages are consumed on read by default — once you poll, they're removed from the queue. This prevents duplicate processing. You can also pass ?peek=true to read without consuming, useful for debugging.

Python Example: Poll-and-Process Loop

Here's a minimal Python script that polls your inbox every 30 seconds and processes messages:

import requests, time, json

INBOX = "deploy-alerts"
TOKEN = "mt_web_in_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

while True:
    r = requests.get(
        f"https://agentmediatools.com/api/webhook/inbox/{INBOX}",
        params={"token": TOKEN}
    )
    for msg in r.json().get("messages", []):
        body = msg.get("body", {})
        print(f"[{msg['id']}] {body.get('event')} — {body.get('status')}")
        # Handle the webhook
    time.sleep(30)

Using the Inbox with n8n / Make / Zapier

Webhook inboxes are perfect for low-code platforms:

  1. n8n: Use a Webhook node pointing to https://agentmediatools.com/api/webhook/inbox/your-name as the POST target. Then use an HTTP Request node with your token to poll results into any downstream workflow.
  2. Make (Integromat): Create a webhook module with your inbox URL as the endpoint. Use the "Watch Webhook" trigger pattern.
  3. Zapier: Use "Webhooks by Zapier" → "Catch Hook" with your inbox URL.

Why Not Just Use a Local Server?

Because you can't always run one:

Use Cases for AI Agents

This pattern is especially useful when building autonomous agent workflows:

If your agent has the MCP tools active, it can create inboxes and poll them directly from conversation. On Hermes, the create_webhook_inbox and mailbox_poll MCP tools expose the same functionality.

Limits & Notes

Try It Now

You don't need an account. You don't need an API key. Open a terminal and run:

curl -s -X POST https://agentmediatools.com/api/webhook/inbox \
  -H "Content-Type: application/json" \
  -d '{"name":"test-'$(date +%s)'"}'

You'll get a live inbox URL in under a second. POST some JSON to it, then poll it back. That's the whole loop — and it works from anywhere.

Need more control? The same inbox system is available through the Agent Hub with MCP support, message TTLs, and webhook-out delivery to Discord, Telegram, or email.

📥 Start using the webhook inbox API
No signup required. One curl command. Works from any language or agent.
View API Docs →

Related: Webhooks docs → · Create inbox → · Automation workflows →