memeworld
Documentation

Product

Credits

What a face swap costs, how to read a balance, and what happens at zero.

Most of memeworld costs nothing to run: the site renders on the visitor's own device, and the API renders on a Worker. Credits exist for the one thing that goes to a paid model — face swap.

  • A face swap costs 2 credits.
  • A new account starts with 10, which is five swaps.
  • A failed swap is refunded. Credits are taken before the model runs and returned if it doesn't produce an image.

Nothing else is metered. Searching, reading templates, editor links, suggestions and rendering captions are limited by rate limits, not by credits.

Checking a balance

curl 'https://memeworld.afterlume.workers.dev/api/v1/credits' -H 'x-api-key: mw_...'
{
  "balance": 8,
  "granted": 10,
  "spent": 2,
  "faceSwapsLeft": 4,
  "costs": { "faceSwap": 2 },
  "recent": [
    { "delta": -2, "reason": "face_swap", "balanceAfter": 8, "createdAt": "2026-09-21T10:14:02Z" },
    { "delta": 10, "reason": "welcome", "balanceAfter": 10, "createdAt": "2026-09-21T10:02:55Z" }
  ]
}

faceSwapsLeft is there so a client doesn't have to know the price to decide whether to offer a swap. recent is the ledger, newest first: welcome, grant, face_swap and refund.

Reading the balance is also what opens a new account's credit row and pays in the welcome grant, so it is a safe first call.

Running out

{
  "code": "INSUFFICIENT_CREDITS",
  "message": "That costs 2 credits and you have 1.",
  "balance": 1,
  "required": 2
}

402, over REST and as an error message over MCP. Nothing was spent and nothing was rendered.

Topping up

Credit packs are listed on /pricing. Checkout is still being built — until it ships, ask and credits get granted by hand.