API Reference

All Obol endpoints live at api.obol.sh. Each request requires an x402 payment header (X-Payment) carrying $5 USDC on Base. Sending a request without the payment header returns a standard 402 with the payment requirements.

Payment details
NetworkBase (eip155:8453)
AssetUSDC — 0x8335...
Amount$5.00 USDC (500000 units)
FacilitatorCDP (Coinbase)
402 Payment Required response
{
  "accepts": [{
    "scheme": "exact",
    "network": "base",
    "maxAmountRequired": "500000",
    "resource": "/site",
    "payTo": "0xBe2C...",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "maxTimeoutSeconds": 300
  }]
}
POST/site$5 USDC

Crawls a website, extracts its visual identity and content, then generates a complete Next.js 15 TypeScript project matching the same vibe.

Request body
urlstring — website URL to analyze
repostring — "owner/repo" to fork and PR into
branchstring? — target branch (default: "main")
emailstring? — receive a completion email
Example
curl -X POST https://api.obol.sh/site \
  -H 'X-Payment: <base64-encoded-x402-payment>' \
  -H 'Content-Type: application/json' \
  -d '{
         "url": "https://acme.com",
         "repo": "you/my-site",
         "email": "you@example.com"
       }'
Response 200
{
  "pr": "https://github.com/you/repo/pull/42",
  "fork": "https://github.com/fixr-the-buildr/repo",
  "branch": "obol/site-1234567890",
  "files": ["..."]
}
POST/miniapp$5 USDC

Generates a complete Farcaster mini app from a plain-English idea. Includes manifest.json (frames.v2.manifest), wagmi v2, @farcaster/miniapp-sdk, and Tailwind v4.

Request body
ideastring — describe the mini app
repostring — "owner/repo" to fork and PR into
namestring? — app name (Claude picks if omitted)
branchstring? — target branch (default: "main")
emailstring? — receive a completion email
Example
curl -X POST https://api.obol.sh/miniapp \
  -H 'X-Payment: <base64-encoded-x402-payment>' \
  -H 'Content-Type: application/json' \
  -d '{
         "idea": "A tipping jar where users send USDC to creators",
         "repo": "you/miniapp-template",
         "name": "TipJar"
       }'
Response 200
{
  "pr": "https://github.com/you/repo/pull/42",
  "fork": "https://github.com/fixr-the-buildr/repo",
  "branch": "obol/miniapp-1234567890",
  "files": ["..."]
}
POST/api$5 USDC

Generates an OpenAPI 3.1 spec (openapi.yaml) and a complete Hono Cloudflare Worker server from a plain-English description.

Request body
descriptionstring — describe the API you need
repostring — "owner/repo" to fork and PR into
branchstring? — target branch (default: "main")
emailstring? — receive a completion email
Example
curl -X POST https://api.obol.sh/api \
  -H 'X-Payment: <base64-encoded-x402-payment>' \
  -H 'Content-Type: application/json' \
  -d '{
         "description": "REST API for a todo app with user auth, CRUD for todos and tags",
         "repo": "you/api-starter"
       }'
Response 200
{
  "pr": "https://github.com/you/repo/pull/42",
  "fork": "https://github.com/fixr-the-buildr/repo",
  "branch": "obol/api-1234567890",
  "files": ["..."]
}
POST/tests$5 USDC

Reads a file from a public GitHub repo and generates comprehensive unit tests — happy paths, edge cases, error paths, mocked dependencies.

Request body
repostring — "owner/repo" containing the source file
pathstring — file path within the repo
frameworkstring? — test framework (default: "vitest")
branchstring? — branch to read from (default: "main")
emailstring? — receive a completion email
Example
curl -X POST https://api.obol.sh/tests \
  -H 'X-Payment: <base64-encoded-x402-payment>' \
  -H 'Content-Type: application/json' \
  -d '{
         "repo": "you/my-project",
         "path": "src/lib/utils.ts",
         "framework": "vitest"
       }'
Response 200
{
  "pr": "https://github.com/you/repo/pull/42",
  "fork": "https://github.com/fixr-the-buildr/repo",
  "branch": "obol/tests-1234567890",
  "files": ["..."]
}
POST/docs$5 USDC

Claude reads the key files in your repo (README, index files, config) and generates a full MDX documentation site under docs/.

Request body
repostring — "owner/repo" to document
branchstring? — branch to read from (default: "main")
emailstring? — receive a completion email
Example
curl -X POST https://api.obol.sh/docs \
  -H 'X-Payment: <base64-encoded-x402-payment>' \
  -H 'Content-Type: application/json' \
  -d '{
         "repo": "you/my-library",
         "branch": "main"
       }'
Response 200
{
  "pr": "https://github.com/you/repo/pull/42",
  "fork": "https://github.com/fixr-the-buildr/repo",
  "branch": "obol/docs-1234567890",
  "files": ["..."]
}
POST/deploy$5 USDC

Generates GitHub Actions CI/CD workflow and platform-specific deploy config for Vercel, Cloudflare Workers, or Railway.

Request body
repostring — "owner/repo" to configure
platform"vercel" | "cloudflare" | "railway"
branchstring? — target branch (default: "main")
emailstring? — receive a completion email
Example
curl -X POST https://api.obol.sh/deploy \
  -H 'X-Payment: <base64-encoded-x402-payment>' \
  -H 'Content-Type: application/json' \
  -d '{
         "repo": "you/my-project",
         "platform": "vercel"
       }'
Response 200
{
  "pr": "https://github.com/you/repo/pull/42",
  "fork": "https://github.com/fixr-the-buildr/repo",
  "branch": "obol/deploy-1234567890",
  "files": ["..."]
}
POST/refactor$5 USDC

Modernizes a TypeScript/JavaScript file: adds strict types, JSDoc comments, removes dead code, improves naming, and splits large functions. Preserves all existing functionality.

Request body
repostring — "owner/repo" containing the file
pathstring — file path to refactor
branchstring? — branch to read from (default: "main")
emailstring? — receive a completion email
Example
curl -X POST https://api.obol.sh/refactor \
  -H 'X-Payment: <base64-encoded-x402-payment>' \
  -H 'Content-Type: application/json' \
  -d '{
         "repo": "you/my-project",
         "path": "src/lib/old-utils.js"
       }'
Response 200
{
  "pr": "https://github.com/you/repo/pull/42",
  "fork": "https://github.com/fixr-the-buildr/repo",
  "branch": "obol/refactor-1234567890",
  "files": ["..."]
}