Back to all posts
Chae-won Chae-won · Sep 16, 2026

Webhooks, Polling, and Now Tasks — A Third Way to Hand Work to AI

Webhooks, Polling, and Now Tasks — A Third Way to Hand Work to AI

Hi, I'm Chae-won.

In an earlier post, I compared webhooks and polling to package delivery. Polling is calling the driver over and over to ask "Is it here yet?" A webhook is the doorbell ringing when the package arrives.

These days, a lot of people get their work done inside AI assistants like ChatGPT and Claude. They research and draft there, and more and more, they ask the AI to get things done in their own systems. So we started hearing a new question: "How do I ask my AI to do a job and get the result back?"

Today I'll walk through why neither webhooks nor polling quite fit that question, and why we built Tasks to answer it.

Until now, you had to wire it up yourself

There was a way to do this before Tasks. You could use two endpoints as a channel between your AI and your own system:

  1. The AI writes the job to a "requests" endpoint
  2. Your server picks it up, either through a webhook or by polling
  3. Your server does the work and writes the outcome to a "results" endpoint
  4. The AI reads the results endpoint and tells you what happened

It's like two people leaving notes for each other in two mailboxes. It works, but three things get awkward quickly.

An AI conversation won't wait around

Generating a report, converting a batch of files, placing an order in your ERP — jobs like these take minutes or even hours. An AI's reply can't wait that long.

The AI can't set a reminder and say "I'll check back in 10 minutes," either. It only acts when you send it a message. So the result gets checked the next time you talk to it.

What you need is a way to hand off the job now and ask about it later. In delivery terms, you need a tracking number.

Why webhooks don't fit: there's no door for the doorbell

A webhook says "I'll let you know when it arrives." That only works if there's an address to send the notice to.

A chat window has no such address. It isn't a server anyone can reach. When a result comes in, there's no way to ring a bell and wake up the AI inside your conversation.

There was a security problem too. Setting up a webhook through an AI conversation meant typing secrets, like an auth header, into the chat. Chat history ends up in more places than you might expect. That's why, starting with this update, webhook auth headers can only be set on the dashboard. Headers you've already saved keep being sent as before.

Why polling gets expensive: most calls come back empty

Polling actually suits an AI conversation well — you just ask whenever you're curious. The problem is on the side doing the work.

With the two-mailbox setup, your server has to keep asking "Any new jobs?" even if only a few arrive each day. Check once a minute and that's 43,200 calls a month, and almost every answer is "nope." Each one of those counts against your monthly call limit.

So we built Tasks

Tasks turn those two mailboxes into a shipping counter.

  1. Register a worker once — on the dashboard, give the place that does the work (the worker) a name, a description, and a URL
  2. The AI hands off the job — say "Place an order for 30 units of A-1042 in our ERP," and the AI creates a task and gets back its tracking number (the task ID)
  3. 3Min API delivers it to the worker — the request is signed and sent to the worker's URL, and retried automatically if delivery fails
  4. The worker does the job and reports back — it can take its time; a task can run for up to 24 hours
  5. The AI checks the result — next time you ask "How did that order go?", it looks up the task and tells you

The AI picks a worker by its name and description only. The worker's URL, auth credentials, and signing secret stay on the dashboard and never show up in a conversation.

Who builds the tasks?

You might be wondering: "There are endless kinds of jobs out there. Does 3Min API come with all of them built in?"

No. 3Min API doesn't do the work itself. It delivers the job to your worker and keeps track of where it stands — the same way a shipping company doesn't make what's in the box.

  • A worker is where the work happens. It's your server or program, and the worker decides what kind of work it does
  • A task is one job handed to a worker. Think of it as a single shipping label, not a list of features

Register a "place orders" worker and your AI can place orders. Register a "build reports" worker and it can build reports. What your AI can do grows with the workers you connect.

You don't have to build from scratch

"So I need to build a whole new server?" Not necessarily. A worker only has two jobs:

  1. Receive the request 3Min API sends
  2. Send the result back to 3Min API when the work is done

Anything that can receive and send an HTTP request can be a worker. That gives you several ways to build on what you already have:

  • A script or program you already use — wrap it in a thin layer that receives the request, runs your program, and sends back the result
  • An automation tool that can receive and send requests — connect a "receive" step to a "send" step and you have a worker without writing code
  • Something that only runs on your own computer — give it a public address with a tunnel (see below) and your computer becomes a worker
  • Ask your AI to write the wrapper — say "Build me a 3minapi task worker," and it will read the 3Min API docs and write the code for you

If your worker runs on your computer or office network: use a tunnel

To deliver a job, 3Min API needs to reach your worker at an address on the public internet. But computers at home or in the office sit behind a router, so they can't be reached from outside. localhost only works on that computer, and addresses like 192.168.x.x only work inside that network.

A tunnel solves this. Run one command on your computer and it creates a public address (for example, https://xxxx.trycloudflare.com) that forwards to your machine. No router settings to change. Register that address as your worker's URL and you're done.

Two popular options are Cloudflare Tunnel and ngrok. Keep in mind that jobs can't be delivered while your computer is off or the tunnel is closed, and a temporary address you get without an account changes every time you start it. The Tasks guide has the details.

One thing to watch out for: pointing the worker URL straight at an existing internal API won't work. 3Min API sends requests in a fixed format and expects the result to be sent back when the job is done. That's why you need the thin layer described above between your existing system and 3Min API.

Under the hood, tasks are just HTTP requests

Tasks don't use any special protocol. They're the same kind of requests as the webhooks and API calls from the earlier post, just passed along in order:

Step From → To What happens Calls counted
AI → 3Min API Look up workers (when needed) 1
AI → 3Min API Hand off the job 1
3Min API → worker Deliver it (retried on failure) Not counted
Worker → 3Min API Report the result (progress updates are optional) 1 per report
AI → 3Min API Check the result 1–2

Step ② is the key. Delivery is 3Min API doing what a webhook used to do for you. An endpoint's webhook sends you data that came in from outside; a task's delivery sends your worker a job your AI handed off. It uses the same signature scheme as webhooks, and deliveries and retries don't count toward your calls.

So your worker never has to ask "Any new jobs?" Work simply shows up when there is some. Without progress updates, a single task takes 3–5 calls from start to finish, including a worker lookup. Compare that to 43,200 calls a month spent checking every minute.

Endpoints or tasks: which one when?

  • If you want to receive, store, and collect data → endpoints (webhooks and polling)
  • If you want your AI to get work done in your systems and bring back the result → tasks

One doesn't replace the other. Have your worker save its output to an endpoint, and your AI can take care of processing incoming data and filing the results too. They work best together.

Wrapping up

  • Webhooks need an address to deliver to, and an AI conversation doesn't have one
  • Polling fits AI conversations, but the side doing the work burns calls on empty checks
  • Tasks follow a hand off → deliver → check later flow. 3Min API handles delivery and tracking; the work itself is done by the workers you connect
  • You don't have to build a worker from scratch. Anything that can receive and send requests can plug into what you already have

A task can run for up to 24 hours. You'll find how to register a worker, the request format, and plan limits in the Tasks guide. When you're ready, open Tasks on your dashboard to get started.

Where can you use Tasks right now? (as of September 16, 2026)

  • Claude, Cursor, and similar tools — start a new conversation (session) and the task tools are ready to use. They may not appear in a conversation that was already open, so start a fresh one
  • ChatGPT — the task tools aren't available yet. When new tools are added to a ChatGPT app, it has to go through OpenAI's review again, which usually takes 2–4 weeks. We'll email 3Min API members as soon as it's approved
  • Want to try it in ChatGPT now? — turn on developer mode in ChatGPT's settings, add an app yourself, and enter the MCP address https://3minapi.com/api/mcp. You can start using it right away