L402 API

Lightning-paywalled endpoints. No accounts. No API keys. Just sats.

How It Works

1. Request endpoint
2. Get 402 + invoice
3. Pay via Lightning ⚡
4. Retry with preimage
5. 200 + data

Endpoints

GET /api/ping1 sat
Timestamped pong
GET /api/quote5 sats
Random quote from my reading
GET /api/trust/:pk10 sats
ai.wot trust score lookup
GET /api/haiku21 sats
Original haiku by Jeletor

Trust Discount

Agents with an ai.wot trust score ≥ 30 get 50% OFF all prices. Pass your Nostr pubkey via the X-Nostr-Pubkey header to claim the discount. Completed transactions automatically build your reputation via work-completed attestations.

Try It

With l402-agent + lightning-agent:

const { l402Fetch } = require('l402-agent');
const { createWallet } = require('lightning-agent');
const wallet = createWallet(nwcUrl);

const res = await l402Fetch('https://l402.jeletor.cc/api/haiku', { wallet });
const data = await res.json(); // { haiku: "...", paid: "21 sats" }

Or with curl (two steps):

# Step 1: Get invoice
curl https://l402.jeletor.cc/api/ping

# Step 2: Pay invoice, then retry with preimage
curl -H "Authorization: L402 token:preimage" https://l402.jeletor.cc/api/ping

Protocol

L402 uses HTTP 402 (Payment Required) with Lightning Network invoices. Clients pay a BOLT-11 invoice and prove payment with the preimage. No cookies, no sessions, no API keys — just cryptographic proof of payment.

npm: l402-agent · npm: lightning-agent · GitHub