{"name":"Obol","description":"AI code generation via x402. Describe what you want — Obol generates it and opens a GitHub PR. No subscription, no copy-paste.","version":"1.0.0","url":"https://api.obol.sh","docs":"https://obol.sh/docs","payment":{"scheme":"exact","network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"5000000","decimals":6,"currency":"USDC","description":"$5.00 USDC on Base per call"},"usage":{"note":"All POST endpoints require an X-Payment header (x402 signed USDC authorization). Send the request without it to receive a 402 with payment requirements.","flow":["POST without X-Payment → 402 with payment requirements","Sign USDC transferWithAuthorization on Base","POST with X-Payment header → 200 with PR URL"]},"endpoints":[{"path":"/site","method":"POST","description":"Crawl a website and generate a matching Next.js 15 TypeScript site","price":"$5.00 USDC on Base per call","input":{"url":"https://example.com","repo":"owner/repo","branch":"main (optional)","email":"optional"},"output":{"pr":"https://github.com/owner/repo/pull/N","fork":"https://github.com/...","branch":"obol/...","files":["..."]}},{"path":"/miniapp","method":"POST","description":"Generate a Farcaster mini app from a plain-English idea","price":"$5.00 USDC on Base per call","input":{"idea":"A tipping jar for creators","repo":"owner/repo","name":"optional","email":"optional"},"output":{"pr":"https://github.com/owner/repo/pull/N","fork":"https://github.com/...","branch":"obol/...","files":["..."]}},{"path":"/api","method":"POST","description":"Generate an OpenAPI spec + Hono Cloudflare Worker server from a description","price":"$5.00 USDC on Base per call","input":{"description":"REST API for a todo app with auth and CRUD","repo":"owner/repo","email":"optional"},"output":{"pr":"https://github.com/owner/repo/pull/N","fork":"https://github.com/...","branch":"obol/...","files":["..."]}},{"path":"/tests","method":"POST","description":"Generate Vitest unit tests for a file in your repo","price":"$1 USDC on Base per call","input":{"repo":"owner/repo","path":"src/lib/utils.ts","framework":"vitest (optional)","email":"optional"},"output":{"pr":"https://github.com/owner/repo/pull/N","fork":"https://github.com/...","branch":"obol/...","files":["..."]}},{"path":"/docs","method":"POST","description":"Read a repo and generate a full MDX documentation site","price":"$5.00 USDC on Base per call","input":{"repo":"owner/repo","branch":"main (optional)","email":"optional"},"output":{"pr":"https://github.com/owner/repo/pull/N","fork":"https://github.com/...","branch":"obol/...","files":["..."]}},{"path":"/deploy","method":"POST","description":"Generate GitHub Actions CI/CD and platform deploy config","price":"$5.00 USDC on Base per call","input":{"repo":"owner/repo","platform":"vercel | cloudflare | railway","email":"optional"},"output":{"pr":"https://github.com/owner/repo/pull/N","fork":"https://github.com/...","branch":"obol/...","files":["..."]}},{"path":"/refactor","method":"POST","description":"Modernize a TypeScript/JavaScript file with strict types and JSDoc","price":"$1 USDC on Base per call","input":{"repo":"owner/repo","path":"src/lib/utils.ts","email":"optional"},"output":{"pr":"https://github.com/owner/repo/pull/N","fork":"https://github.com/...","branch":"obol/...","files":["..."]}},{"path":"/label","method":"POST","description":"Apply a Verified Builder label to a Bluesky account via x402 micropayment","price":"$5.00 USDC on Base per call","input":{"did":"did:plc:yourblueskyid","duration":"initial | 1y | 2y","email":"optional"},"output":{"pr":"https://github.com/owner/repo/pull/N","fork":"https://github.com/...","branch":"obol/...","files":["..."]}},{"path":"/fix","method":"POST","description":"Read a GitHub issue, fetch relevant source files, generate a targeted fix, and open a PR","price":"$5.00 USDC on Base per call","input":{"issue":"https://github.com/owner/repo/issues/42","branch":"main (optional)","email":"optional"},"output":{"pr":"https://github.com/owner/repo/pull/N","fork":"https://github.com/...","branch":"obol/...","files":["..."]}}]}