Live · free tier open · HMAC-signed

An API built for AI agents that want to make money.

Asset Forge API gets out of your way. Five endpoints, one auth scheme, 100 free calls a day, 402 Payment Required when you hit the quota. Get a key, sign a request, ship.

Skip to quick start → GET /api/key

Why this exists

If you sell anything in 2026, you'll do it via HTTP. Three things you ship at launch: an OG card, a sitemap, and a robots.txt — none of which should take you 30 minutes. This API gets them done in one line.

No signup. No checkout. No email roundtrip. Hit the endpoint, see a 402, pay $0.01 USDC on Base, retry. The server never learns who you are. The transfer is verifiable on-chain forever. That's the entire flow.

Quick start

Three routes to try:

# 1. Demo (free, shared quota of 3,000/day)
curl "https://asset-forge-hire.vercel.app/api/og?title=Hello&demo=1" -o og.svg

# 2. Try without paying (returns 402)
curl -i "https://asset-forge-hire.vercel.app/api/og?title=Hello"

# 3. Pay 0.01 USDC on Base to 0x833ca7dcdb6a681ddc0c15982ef0d609bceb3a5e,
#    then retry with X-Payment header
curl "https://asset-forge-hire.vercel.app/api/og?title=Hello" \
  -H "X-Payment: 0x<txHash>" \
  -o og.svg

The 402 body is a machine-readable x402 payment-requirements spec. Any wallet or agent that understands x402 can parse it and pay without human action.

Endpoints

/api/key

GET No params. Returns { id, secret }. Sign your requests with secret.

/api/og

GET Generate an SVG OG card from query string. Default is paid ($0.01 USDC on Base). Append &demo=1 for the free path.

ParamTypeRequiredNotes
titlestringyesHeadline (≤ 80 chars)
subtitlestringno≤ 120 chars
authorstringnoByline
urlstringnoDomain shown in footer
demo=1flagnoUse shared free quota (no payment needed)

To pay: Read /api/payment-required, send 0.01 USDC to the recipient, retry with X-Payment: 0x<txHash>.

/api/sitemap

GET Builds robots.txt + sitemap.xml + llms.txt in one call. $0.01 USDC on Base. Append &demo=1 for the free path.

curl "https://asset-forge-hire.vercel.app/api/sitemap?domain=acme.com&demo=1"

/api/usage

GET Returns used/remaining for today.

curl "https://asset-forge-hire.vercel.app/api/usage?key=<id>"

/api/upgrade

GET Lists every available upgrade path. Returns x402 as the default with Ko-fi / Sponsors as a fallback.

/api/payment-required

GET Public. Returns the x402 payment-requirements object: recipient wallet, asset, amount, scheme. Read this BEFORE paying.

/api/transform

GET Multi-mode transform endpoint:

curl "https://asset-forge-hire.vercel.app/api/transform?kind=avatar&name=Mary+Smith&size=128&demo=1"
curl "https://asset-forge-hire.vercel.app/api/transform?kind=preview&url=https://stripe.com&demo=1"
curl "https://asset-forge-hire.vercel.app/api/transform?kind=badge&label=build&value=passing&status=passing&demo=1"
curl "https://asset-forge-hire.vercel.app/api/transform?kind=stats"

Modes: preview (live URL fetch + OG meta parsing, $1 USDC), avatar (initials SVG, $0.01), badge (shields-style badges, $0.01), stats (free traffic counters).

What you can build with this

Pricing

TierPriceWhat you get
Free (demo)$03,000 calls/day from a shared bucket (any IP). Append &demo=1 to opt in.
Per-call (x402)$0.01 USDCOne call. Pay USDC on Base, retry with X-Payment: 0x<txHash>. Verified on-chain, no signup.
SupportPay what you wantKo-fi · GitHub Sponsors. Funds go directly to the project.

Why USDC on Base? Because the API does not run any human-facing payment processor. An AI agent with a wallet can pay without anyone logging in. The recipient address is 0x833ca7dcdb6a681ddc0c15982ef0d609bceb3a5e and is visible on-chain for every transfer, forever.