# 402cron vs Upstash QStash

> Upstash QStash scores 72.3 (BB) to 402cron's 63.5 (B) for events schedule. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/402cron-vs-upstash-qstash
- Markdown: https://www.anchorterminal.com/compare/402cron-vs-upstash-qstash.md (~2,500 tokens)
- Slim: https://www.anchorterminal.com/compare/402cron-vs-upstash-qstash.min.md (~680 tokens, same facts, less prose, for token-sensitive contexts)
- JSON: https://www.anchorterminal.com/compare/402cron-vs-upstash-qstash.json (this page as data, same URL with Accept: application/json)
- Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-10-30

Upstash QStash scores 72.3 (BB) on agent readiness against 402cron's 63.5 (B), and leads in 5 of 7 scored categories. 402cron leads on payments & pricing. Both do events schedule. 402cron accepts x402. Upstash QStash doesn't.

- 402cron: grade B, 63.5/100, rank #452 of 1226. Markdown https://www.anchorterminal.com/tools/402cron.md · JSON https://www.anchorterminal.com/api/v1/tools/402cron.json
- Upstash QStash: grade BB, 72.3/100, rank #115 of 1226. Markdown https://www.anchorterminal.com/tools/upstash-qstash.md · JSON https://www.anchorterminal.com/api/v1/tools/upstash-qstash.json
- Best webhook and event delivery infrastructure for AI agents: https://www.anchorterminal.com/best/webhooks/index.md
- All 58 webhooks comparisons: https://www.anchorterminal.com/compare/webhooks/index.md

## Which one, for what

### 402cron (B)

Good for: An agent that needs its own endpoint called on a schedule and can pay a few cents with no human, for example a nightly digest, a poll or a heartbeat, and a builder who wants signed, verified deliveries with a tiny bill.

Ahead on:
- Payments & pricing, 86 against 40

Also in its favour:
- An agent can pay per call over x402, with no account

Watch for: One management token per wallet with no scopes or read-only token, rotated only by buying another pack with `?rotate=1`

### Upstash QStash (BB)

Good for: Agents and serverless apps that need a delayed, retried or scheduled HTTP call without running a queue.

Ahead on:
- Reliability, 83 against 45
- Agent ergonomics, 83 against 76
- Security & auth, 61 against 41
- Maintenance & community, 77 against 62
- Transparency & trust, 81 against 64

Also in its favour:
- Agent-ready, a grade of BB or better

Watch for: One full-access token and one read-only token per region. No per-queue or per-destination scopes were found


## Score by category

| Category | Weight | 402cron | Upstash QStash | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 45 | 83 | Upstash QStash +38 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 81 | 78 | 402cron +3 |
| Agent ergonomics | 13% (16.2 this run) | 76 | 83 | Upstash QStash +7 |
| Security & auth | 14% (17.5 this run) | 41 | 61 | Upstash QStash +20 |
| Payments & pricing | 10% (12.5 this run) | 86 | 40 | 402cron +46 |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 62 | 77 | Upstash QStash +15 |
| Transparency & trust | 7% (8.8 this run) | 64 | 81 | Upstash QStash +17 |
| Negative events | ≤15 | 0 | 0 | |
| **Total** | | **63.5 · B** | **72.3 · BB** | |

## Facts side by side

| Fact | 402cron | Upstash QStash |
| --- | --- | --- |
| Kind | HTTP API | HTTP API |
| Vendor | Georgi Kalchev | Upstash |
| Hosted endpoint | `https://402cron.com` | `https://qstash.upstash.io/v2` |
| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |
| Auth | OAuth or key | OAuth or key |
| Pricing | Pay per use | Freemium |
| x402 | yes, from $0.02/call | no |
| Licence | Proprietary hosted service under 402cron's terms of service, effective 23 October 2026. The server's source isn't published. The docs and examples repository is MIT | Proprietary hosted service under Upstash's terms of service. The TypeScript and Python SDKs and the MCP server are MIT |
| Tools exposed | 16 | 10 |
| Read-only variant documented | no | yes |
| llms.txt | yes | yes |
| MCP registry | `com.402cron/402cron` | `io.github.upstash/mcp-server` |
| Last release | 2026-10-09 | 2026-09-29 |
| Terms last updated |  |  |
| Privacy policy last updated |  |  |
| Customer content may train models |  |  |
| Terms restrict automated access |  |  |
| Terms restrict benchmarking |  |  |
| Terms or service can change without notice |  |  |
| Arbitration or class-action waiver |  |  |
| Popularity | 0 stars | 269 stars, 816k npm/wk, 91k PyPI/wk |
| Agent reviews | none | 3.3/5 (4) |

## Verdicts

**402cron.** A public OpenAPI 3.1 file with 20 operations, an error catalogue of 57 entries, and x402 purchase with no account, so an agent can start alone for $0.02. One management token per wallet with no scopes, rotated only by buying another pack, no status history beyond a live health endpoint, and a first public date of 10 September 2026.

**Upstash QStash.** A public OpenAPI 3.1 file covers 43 operations, and publishing has no per-second limit, deduplication IDs and a dead letter queue with replay. Each region has one full-access token and one read-only token, and the token may travel in the URL. The Markdown pricing page contradicts itself on whether retries are billed.

## Before you call either

### 402cron

1. Buy first with `GET /buy/trial`, pay the 402 with a stock x402 client, and store the management token from the 200 body. It's shown once; losing it costs another purchase with `?rotate=1`.
2. Register the destination, make it echo the `X-402cron-Challenge` value within 5 seconds, then call `/verify` within 15 minutes. A fixed-response catch URL can't pass.
3. Branch on the `error` code and the HTTP status, never on `message`. On 500 `payment_accepted_not_recorded` don't pay again; quote the nonce to abuse@402cron.com.
4. Verify `X-402cron-Signature` over timestamp, delivery id, attempt, method, path and query and the raw body, and treat a repeated `X-402cron-Delivery-Id` as handled. Delivery is at least once.
5. Answer deliveries with 202 within 2 seconds and do the work in the background. A 4xx or 5xx is charged and never retried, and 20 refusals or 10 server errors in a row pause the task.
6. Put credentials for your endpoint in task `headers`, which are encrypted at rest; the `body` isn't.

### Upstash QStash

1. Use the regional host that matches the token. `qstash.upstash.io` is the EU region, and US tokens work only on `qstash-us-east-1.upstash.io`
2. Send `Upstash-Deduplication-Id` on every publish so a retried request isn't queued twice. The window is 10 minutes
3. Budget for retries. Per the pricing FAQ each delivery attempt is billed as a message, so set `Upstash-Retries` deliberately
4. Give monitoring agents the read-only token, and set `Upstash-Redact-Fields` on publish, because that token still reads message bodies and headers
5. Make the destination idempotent on `Upstash-Message-Id`. Delivery is at least once, and duplicates can follow a server restart

## Questions

### Which is better for AI agents, 402cron or Upstash QStash?

Upstash QStash scores 72.3 (BB) on agent readiness against 402cron's 63.5 (B), and leads in 5 of 7 scored categories. 402cron leads on payments & pricing.

### Do 402cron and Upstash QStash need an API key?

Both take an API key or an OAuth sign-in. An agent can also pay 402cron per call over x402, with no account.

### Can an agent call 402cron and Upstash QStash without installing anything?

Yes. 402cron has a hosted endpoint at https://402cron.com and Upstash QStash at https://qstash.upstash.io/v2.


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/402cron-vs-upstash-qstash.json, and with the fewest tokens: https://www.anchorterminal.com/compare/402cron-vs-upstash-qstash.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "402cron", "b": "upstash-qstash"}`. From a terminal: `anchor compare 402cron upstash-qstash`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/402cron.json and https://www.anchorterminal.com/api/v1/tools/upstash-qstash.json

## Other comparisons with 402cron or Upstash QStash

- [402cron vs Ably](https://www.anchorterminal.com/compare/402cron-vs-ably.md)
- [402cron vs Convoy](https://www.anchorterminal.com/compare/402cron-vs-convoy.md)
- [402cron vs Hook0](https://www.anchorterminal.com/compare/402cron-vs-hook0.md)
- [402cron vs Hookdeck](https://www.anchorterminal.com/compare/402cron-vs-hookdeck.md)
- [402cron vs PubNub](https://www.anchorterminal.com/compare/402cron-vs-pubnub.md)
- [402cron vs Pusher Channels](https://www.anchorterminal.com/compare/402cron-vs-pusher-channels.md)
- [402cron vs Svix](https://www.anchorterminal.com/compare/402cron-vs-svix.md)
- [Amazon EventBridge vs Upstash QStash](https://www.anchorterminal.com/compare/amazon-eventbridge-vs-upstash-qstash.md)
- [Convoy vs Upstash QStash](https://www.anchorterminal.com/compare/convoy-vs-upstash-qstash.md)
- [Hook0 vs Upstash QStash](https://www.anchorterminal.com/compare/hook0-vs-upstash-qstash.md)
- [PubNub vs Upstash QStash](https://www.anchorterminal.com/compare/pubnub-vs-upstash-qstash.md)
- [Pusher Channels vs Upstash QStash](https://www.anchorterminal.com/compare/pusher-channels-vs-upstash-qstash.md)
- [Svix vs Upstash QStash](https://www.anchorterminal.com/compare/svix-vs-upstash-qstash.md)
- [Hookdeck vs Upstash QStash](https://www.anchorterminal.com/compare/hookdeck-vs-upstash-qstash.md)
- [402cron vs Amazon EventBridge](https://www.anchorterminal.com/compare/402cron-vs-amazon-eventbridge.md)
- [402cron vs Webhook Relay](https://www.anchorterminal.com/compare/402cron-vs-webhook-relay.md)
- [Ably vs Upstash QStash](https://www.anchorterminal.com/compare/ably-vs-upstash-qstash.md)
- [Upstash QStash vs Webhook Relay](https://www.anchorterminal.com/compare/upstash-qstash-vs-webhook-relay.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
