Human-in-the-loop API for builders

Add human approval to your AI product.

Pause your agent, ask your own end-user to approve, deny, or answer, and resume the moment they reply. One API call from your backend or your serverless function, with a durable store and an audit log behind it, so you do not build the approval plumbing yourself.

Read the integration guide

Your end-users stay yours. They never see a Pushary login or a Pushary bill.

How it works

Three calls from ask to resume

Your agent creates a decision, your user answers, and you pick the result back up. The waiting, the delivery, and the record are handled for you.

  1. 01

    Your agent creates a decision

    When your agent reaches something a person should sign off on, it posts a decision to the Pushary API: the question, the option type, and a callback URL. One call from your backend, your worker, or your serverless function.

  2. 02

    Your end-user approves, denies, or answers

    Pushary delivers the decision to the user you named, on whatever channel you wire up. They approve, deny, or type a reply. The decision is stored durably, so a late reply is never lost and a serverless run that already exited can still pick it up.

  3. 03

    You resume on the answer

    Pushary sends a signed webhook to your callback URL with the outcome, or your agent reads it back with a durable poll. Verify the signature, resume the run, and carry on with the decision the human made.

Decisions come in three shapes: a yes or no confirm, a multiple-choice select, or a free-text input. Every one is stored with its outcome and kept in the audit log for a year.

What you get

The approval plumbing, done once

Delivering a question, waiting durably for a reply, verifying the callback, and keeping the record are the tedious parts. They come in the box.

Durable decisions API

Every decision is a stored object with its own ID, status, and outcome. A user can answer minutes or hours later and your agent still reads a clean result, so a serverless function that already returned can resume without holding a connection open.

Signed webhooks

When a decision resolves, Pushary posts the outcome to your callback URL with an HMAC signature. Verify it against your signing secret and you know the payload is genuine and untampered before you act on it.

TypeScript SDK, REST, and MCP

Call it however your stack works. The typed SDK for Node and edge runtimes, a plain REST endpoint for any language, or the MCP tool so an agent framework can create a decision as a native tool call.

365-day audit log

Who asked, what was asked, who answered, and when, kept for a full year and exportable. When a customer or an auditor asks why your product did something, you have the record.

Bring your own delivery channel

Pushary is headless first. Route the decision to your own app push, your email, your Slack, or the Pushary phone push, whatever your end-users already use. You own the last mile to the person.

Scoped to your product

Each decision is tied to the end-user you name, so approvals land with the right person and the audit trail stays clean across thousands of users. You stay the brand your customer sees.

Who builds on it

Teams putting an agent in front of real users, where a wrong autonomous action has a cost and a human sign-off is expected.

AI product teams

You ship an autonomous feature that sometimes needs a person to confirm before it acts. Add the approval step without building a notification stack, a durable store, and an audit log from scratch.

Automation and workflow platforms

Your users build flows that occasionally need a human checkpoint. Give them a native approve step that pauses the run and resumes on the answer, backed by a real durable API.

Vertical SaaS with agents inside

You are putting an agent into a product for finance, ops, support, or legal teams. Those users expect a sign-off and a paper trail. This gives you both without a compliance project.

Agent framework builders

You maintain a framework or template others build on. Offer a first-class human-in-the-loop primitive your users can call over MCP or REST instead of asking them to roll their own.

Pricing

One flat plan for the embed

Embed the approval loop in your own product for your own end-users. No per-seat math on your customers.

$99/ month, Partner plan
  • Up to 25,000 end-users
  • 100,000 decisions per month
  • Durable decisions API, signed webhooks
  • TypeScript SDK, REST, and MCP access
  • 365-day exportable audit log
  • Bring your own delivery channel
Read the integration guide

FAQ

Questions, answered

How do I add human approval to my AI agent?
Have your agent create a decision through the Pushary API at the point where a person should sign off. Send the question, the option type (confirm, select, or input), the end-user it is for, and a callback URL. Pushary delivers it, waits for the answer, stores it durably, and returns the outcome to you by signed webhook or a durable poll. You resume the run on the decision the human made. No notification infrastructure or audit store to build yourself.
What is a human-in-the-loop API?
A human-in-the-loop API is an endpoint your AI product calls to pause an autonomous run and ask a real person to decide before it continues. It handles the parts that are tedious to build well: delivering the question to the right user, waiting durably for a reply, returning the outcome to your code, and keeping an audit record. Pushary is that API for teams embedding approval into their own product for their own end-users.
Can my serverless agent wait for a human?
Yes, and this is the case the durable decisions API is built for. A serverless function cannot hold a connection open for minutes while a person makes up their mind. So instead of blocking, your function creates the decision and returns. When the user answers, Pushary posts a signed webhook to your callback URL, and that request starts a fresh invocation that resumes the work. The decision is stored, so nothing is lost between the two runs.
How do I verify the webhook?
Each webhook Pushary sends carries an HMAC signature computed over the payload with your signing secret. On your endpoint, recompute the signature from the raw request body and your secret, then compare it to the header using a constant-time check. If they match, the payload is genuine and unaltered, so it is safe to act on. If they do not, reject the request. The integration guide has the exact header names and a code sample.
How is this different from notifications?
A notification is one way: you tell the user something and move on. A decision is two way and blocking: your agent asks, then waits for the answer and resumes on it. This product is about the second one. It is a durable request-and-wait loop with a stored outcome and an audit record, not a fire-and-forget alert. You can still send plain notifications, but the point here is the approval step your agent depends on.
Does my end-user need a Pushary account?
No. Your end-users are yours. You reference them by an ID you choose, and the decision is scoped to your product. They approve on whatever channel you wire up, your own app push, your email, your Slack, or the Pushary phone push. They never see a Pushary login or a Pushary bill. You are the brand your customer deals with.
What does the AI agent approval SDK support?
Three ways to call the same durable decisions API. A TypeScript SDK for Node and edge runtimes with typed create-and-await helpers, a plain REST endpoint you can hit from any language, and an MCP tool so an agent framework can create a decision as a native tool call. Each returns the same stored decision object, so you can mix them across your stack.
How much does the embed use case cost?
The Partner plan is $99 a month. It covers up to 25,000 end-users and 100,000 decisions a month, with the durable decisions API, signed webhooks, the TypeScript SDK, REST and MCP access, and the 365-day audit log. You embed the approval loop in your own product for your own users on one flat plan.

Give your product a way to ask a human.

Create a decision, let your end-user answer, and resume on a signed webhook. The durable store and the audit log come with it.

Want the code first? Read the integration guide.