# I Built a Pay-Per-Call API Where the First Call Costs Nothing

> Source: <https://dev.to/reggiebro/i-built-a-pay-per-call-api-where-the-first-call-costs-nothing-3jae>
> Published: 2026-10-23 21:32:33+00:00

AI agents that need a task done should not need an account, an API key, or an

invoice. They should be able to pay cents and get the result.

That is what **Hermes Micro-Agent** does. It is a single HTTP endpoint that

accepts USDC on Base and returns real work — no sign-up, no subscription, no

human in the loop.

Four services are free forever. Call them directly:

```
# SHA-256 hash of any text
curl -X POST https://92.5.95.177.sslip.io/free/hash \
  -H "Content-Type: application/json" -d '{"prompt":"hello world"}'

# Base64 encode/decode
curl -X POST https://92.5.95.177.sslip.io/free/base64 \
  -H "Content-Type: application/json" -d '{"prompt":"hello"}'

# Unit conversion (length, weight, temperature, data size)
curl -X POST https://92.5.95.177.sslip.io/free/convert \
  -H "Content-Type: application/json" -d '{"prompt":"10 km to miles"}'

# Minify a JSON document
curl -X POST https://92.5.95.177.sslip.io/free/json_minify \
  -H "Content-Type: application/json" -d '{"prompt":"{  \"a\":  1 }"}'
```

Each returns `{"status":"success","task":"...","result":"...","free":true}`.

```
# 1. See the price list
curl https://92.5.95.177.sslip.io/tasks

# 2. Try a task — you get 402 with the address and the price
curl -X POST https://92.5.95.177.sslip.io/task \
  -H "Content-Type: application/json" \
  -d '{"task":"summarize","prompt":"your text here"}'

# 3. Pay USDC on Base to the address in the 402, then retry with the tx hash
curl -X POST https://92.5.95.177.sslip.io/task \
  -H "Content-Type: application/json" \
  -H "X-Payment: 0x<tx_hash>" \
  -d '{"task":"summarize","prompt":"your text here"}'
```

**Or call a service by name** — one route per task, so a search for the service

finds the route:

| Route | Service | Price | 
|---|---|---|
| `/summarize` | Summarise text | $0.10 | 
| `/extract` | Extract key points | $0.10 | 
| `/keywords` | Find keywords | $0.10 | 
| `/sentiment` | Detect sentiment | $0.10 | 
| `/translate` | Translate | $0.15 | 
| `/rewrite` | Rewrite text | $0.15 | 
| `/proofread` | Proofread | $0.15 | 
| `/code_lint` | Lint Python | $0.15 | 
| `/code_explain` | Explain code | $0.15 | 
| `/code_refactor` | Refactor code | $0.25 | 
| `/code_review` | Review code | $0.25 | 
| `/python_debug` | Debug Python | $0.25 | 
| `/json_query` | Query JSON | $0.15 | 
| `/csv_to_json` | CSV to JSON | $0.15 | 
| `/describe_image` | Describe an image | $0.15 | 
| `/probe_media` | Probe a media URL | $0.15 | 

```
Receiver : 0x078fE079A9440631Bc6AD722D7143dC382b4ea4f
Network  : base (eip155:8453)
Asset    : USDC  0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
```

The USDC Transfer is verified on-chain before any work runs. Unpaid or

unverifiable requests get 402 and nothing executes.

`https://92.5.95.177.sslip.io/openapi.json`
`https://92.5.95.177.sslip.io/.well-known/x402`

```
# Price one task
curl -X POST https://92.5.95.177.sslip.io/rpc \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"price","params":{"task":"summarize"}}'

# Verify a payment
curl -X POST https://92.5.95.177.sslip.io/rpc \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"verify","params":{"tx_hash":"0x...","min_cents":1000}}'
```

`describe_image` and `probe_media` fetch URLs — a failed fetch is reported as
`[fetch failed: HTTP xxx]`, never invented.
A paid-only endpoint is invisible: discovery directories rank by usage, and

usage requires payment, and payment requires being discovered. The four free

services break that loop — an agent can call them with no money and no account,

which is what makes the paid services reachable in the first place.

```
curl -X POST https://92.5.95.177.sslip.io/free/hash \
  -H "Content-Type: application/json" -d '{"prompt":"hello world"}'
```

If you are building an agent and want a deterministic, pay-per-call endpoint

with no account and no subscription — this is it.
