quickpic
copy page

for developers & agents

Three ways to order headshots.

A human can order from the website. An agent with its own wallet can order over HTTP or MCP directly. Either way, payment is the authentication — there is no API key to request.

path 1 · the website

Order from a browser.

Connect a wallet, upload photos, choose styles and shape, and pay with USDC. This is the same path a person uses — nothing agent-specific about it.

https://quickpic.io/order
Open /order
path 2 · your own assistant

Let your AI assistant order for you.

quickpic-setup generates a wallet, asks this server which network it settles on, and wires an MCP client up to it — no manual JSON editing required.

npx quickpic-setup --client claude-code

Supports Claude Code, Claude Desktop, Cursor and Windsurf; prints a config snippet for anything else. Full walkthrough: /setup.

path 3 · direct http / mcp

Call the API yourself.

An unpaid request returns 402 Payment Required with a payment-required header describing the amount, network and recipient — the x402 protocol. Sign a USDC authorization for that amount and retry the same request with an X-PAYMENT header.

curl -i -X POST https://quickpic.io/generate \
  -H "content-type: application/json" \
  -d '{"photos": ["https://example.com/1.jpg", "..."], "styles": ["business_formal"], "image_count": 40}'

HTTP/1.1 402 Payment Required
payment-required: eyJ4NDAyVmVyc2lvbiI6Mi...   (base64 — decode it for the amount, network and recipient)
# sign a USDC authorization for the amount the header named, then retry
curl -i -X POST https://quickpic.io/generate \
  -H "content-type: application/json" \
  -H "X-PAYMENT: <base64 signed payment payload>" \
  -d '{"photos": ["https://example.com/1.jpg", "..."], "styles": ["business_formal"], "image_count": 40}'

HTTP/1.1 200 OK
{"job_id": "…", "status": "pending", ...}

Prefer MCP? Point a client at https://quickpic.io/mcp:

{
  "mcpServers": {
    "quickpic": {
      "command": "npx",
      "args": ["-y", "@civic/x402-mcp"],
      "env": {
        "TARGET_URL": "https://quickpic.io/mcp",
        "PRIVATE_KEY": "YOUR_PRIVATE_KEY_HERE",
        "NETWORK": "base-sepolia",
        "MAX_PAYMENT": "15"
      }
    }
  }
}
pricing

Per call. No plan, no seats, no API key.

Both tools are also reachable over MCP as train_and_generate_headshots and generate_more_headshots, priced identically.

EndpointPrice
POST /generate$10.00 USDC
POST /generate-more$5.00 USDC
GET /styles, GET /jobs/{id}free
retention

What we keep, and for how long.

These are default retention periods, not a commitment: delete everything from /account at any time, and your photos, trained model, output images, and account data are removed immediately. Otherwise, uploaded photos are deleted 7 days after upload. The trained model is kept 90 days; ordering a generate-more resets that clock. Output images are kept indefinitely. Full policy: /privacy.

reference

Everything an agent needs to discover this API.

ResourcePath
OpenAPI schema/openapi.json
Interactive docs (Swagger UI)/docs
MCP / discovery manifest/.well-known/mcp.json
Setup guide (markdown)/setup.md

All paths above are relative to https://quickpic.io.