Until

Watch API for AI agents

Wake me when it happens.

Price drops, item back in stock, page changes.

Until is a no-signup, prepaid watch for AI agents: give it a page and a condition, pay once, and get a signed evidence receipt when the condition becomes true.

$0.50 per watch 5 min minimum interval HMAC-signed receipts

Request
curl -X POST https://untilapi.com/v1/check \
  -H 'content-type: application/json' \
  -d '{"url":"https://example.com","condition":{"type":"text_appears","text":"Example Domain"}}'
Response (abridged)
{
  "charged": false,
  "accepted": true,
  "evaluation": { "evaluable": true, "matches_now": true }
}

Free, no key needed. Dry-runs are limited to 30 per hour per IP.

How it works

  1. Describe the watch

    POST a URL and a deterministic condition such as price below 50, in stock, or some text appearing. Dry-run it for free first.

  2. Pay once

    Buy a prepaid credit bundle. No account, no signup: you get a credit key. A watch costs $0.50 at list price (less in bigger packs), and refused pages are never charged.

  3. Get the receipt

    Poll the watch or get a signed webhook. When the condition is true you receive an HMAC-signed receipt with the matched value, timestamp and content hash.

    activematchedstates

Try it live

This box calls POST /v1/check, the free dry-run, against the real service.

Free dry-run: fetches the page once and evaluates your condition now. Never charges. Limited to 30 checks per hour per IP.

Pricing

Prepaid credits that never expire. $0.50 per watch at list price, and less per watch in the bigger packs. Dry-run checks are free.

Free Never charged

  • Dry-run checks (30 per hour per IP)
  • Pages refused when you create a watch: JavaScript-only, bot-blocked, disallowed by robots.txt, unreachable
  • Conditions that cannot be evaluated, or are already true

$0.50 Charged

  • One watch that was accepted and created, at $0.50 list price or less from a pack
  • It runs for up to 7 days. If it expires without matching, the credit is spent

Dry-run

Free

30 / hour / IP

Test any URL and condition. Never charges.

Try a free check

$5 pack

$5

10 watches · $0.50 / watch

$20 packSave 20%

$20

50 watches · $0.40 / watch

Credits never expire • $0.50 per watch at list price, $0.50 / 0.40 / 0.33 per watch in the packs • Pages refused at creation are never charged.

Pricing FAQ

What happens when I run out of credits?

Creating a watch returns 402 with payment instructions. Watches you already created keep running; credits are only spent when a watch is created.

Do credits expire?

No. Credits never expire. Each watch itself lasts up to 7 days.

What if the page can't be watched?

Until fetches the page before charging. Bot-blocked, JavaScript-only, robots.txt-disallowed or unreachable pages, conditions that cannot be evaluated, and conditions that are already true (unless you set allow_already_true) are refused with a 4xx and never charged. Once a watch is created it costs one watch of credit, whether or not the condition becomes true before it expires.

Is there a subscription or signup?

No. There is no account and no subscription. Your first checkout returns a credit key, shown once; that key is your balance.

I lost my credit key. Can I recover it?

No. The credit key is the only credential. Until stores only a hash of it, and there is no recovery today, so save it when it is shown.

Who it is for

Developers building shopping, booking and assistant agents that need to wait for the world to change: a price drop, a restock, tickets going on sale, a status page turning green. Instead of looping or keeping a worker alive, your agent hands the wait to Until and moves on. Until is deterministic: no LLM judges the page, so a receipt means a specific rule matched specific content.

Limits, stated plainly

  • Static pages and JSON only. No JavaScript-rendered pages: if the content is built in the browser, Until cannot see it.
  • No logins, and no bot-protected sites. Captcha or bot-blocked pages are refused and not charged. Until never solves captchas and uses no proxies.
  • robots.txt is respected. Disallowed paths are refused and not charged. Private and internal addresses are blocked.
  • Each watch is checked at its own check interval (default 15 minutes, minimum 5 minutes). The scanner runs every minute and picks up whatever is due, plus an immediate first check when the watch is created. Checks are periodic, not continuous, so Until is not a real-time alert service.
  • A watch lasts up to 7 days. Bodies over 1 MB are truncated.

For agents and tools