PopNowAPI Docs
Main content

Credits, pricing and refunds

How AI image, video and audio generation is priced in credits, why failed tasks are refunded automatically, and when an unused credit pack can be refunded.

PopNow has one balance for everything: the website, the REST API, ChatGPT and Claude and the Blender add-on all spend the same credits at the same prices. This page covers where credits come from, what a generation costs and what you get back. The API mechanics of a single task (holds, quotes, caps) are on Credits and billing.

Credits in one minute

  • 1 credit = $0.01 at the base rate. Larger packs include bonus credits, so each credit costs a little less.
  • No subscription, no API plan, no minimum. A credit pack is a one-time purchase; nothing renews.
  • Every price is shown before you pay. The website shows it on the button, the API returns it from jobs/quote, and the chat tools say it before they start.
  • Failure is free. A generation that fails or expires gives its credits back automatically. You do not need to ask.

Where credits come from

SourceRefundable?Notes
Credit packs (base credits)Yes, within the refund window if the pack is unusedBought on popnow.ai/pricing. Checkout is on the website, not through the API
Bonus credits included in a packRemoved together with the pack if it is refundedShown as a separate line in your history
Free credits for new accountsNoOnce per account, whichever way you sign up
Rewards such as invites, when offeredNoHave their own conditions; invite rewards expire after 90 days

Credits belong to one account and cannot be transferred or exchanged for money.

Which credits are spent first

Free credits are spent first. After that, packs are used from the oldest to the newest. This order matters for refunds: a newer pack stays “unused” for as long as older credits cover what you spend.

How a generation is priced

Each model has its own price list, set per option: per image, per second of video or audio, per song, or per 1,000 characters of speech. The price depends on what you ask for: resolution, length, quality tier and, for some models, how many reference files you send.

A few typical prices, at each model's default settings:

ModelWhat you getCredits
Z-Image TurboOne image2
Nano Banana 2.1One image at 1K / 2K / 4K8 / 11 / 25
Seedream 5.0 ProOne image at 1K / 2K6 / 11
MiniMax H3Image to video, 768p, 5 seconds28
Suno v6One song11
Background RemoverOne transparent PNG1
Image UpscalerOne photo, upscaled2

Every model's page lists its full price table; Models links to all of them, and the API pages on popnow.ai show the same prices with a Playground. Prices are rounded up to whole credits per task, so a model listed at 7.2 credits per image costs 8 for one image.

Ask for the exact amount before you run anything:

curl -X POST "https://api.popnow.ai/api/v1/jobs/quote" \
  -H "Authorization: Bearer $POPNOW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "minimax/h3/image-to-video", "input": {"image_url": "https://media.popnow.ai/movie/lighthouse.webp", "prompt": "The waves roll in slowly", "duration_seconds": 5}}'
Python
import os, requests

quote = requests.post(
    "https://api.popnow.ai/api/v1/jobs/quote",
    headers={"Authorization": f"Bearer {os.environ['POPNOW_API_KEY']}"},
    json={
        "model": "minimax/h3/image-to-video",
        "input": {"image_url": "https://media.popnow.ai/movie/lighthouse.webp", "prompt": "The waves roll in slowly", "duration_seconds": 5},
    },
    timeout=30,
).json()["data"]
print(quote["maxCredits"], "credits at most,", quote["expectedCredits"], "expected")
JavaScript
const res = await fetch('https://api.popnow.ai/api/v1/jobs/quote', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.POPNOW_API_KEY}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    model: 'minimax/h3/image-to-video',
    input: { image_url: 'https://media.popnow.ai/movie/lighthouse.webp', prompt: 'The waves roll in slowly', duration_seconds: 5 },
  }),
});
const { data } = await res.json();
console.log(`${data.maxCredits} credits at most, ${data.expectedCredits} expected`);

What happens when a task fails

When a task is accepted, its highest possible price is set aside from your balance (a hold). When it ends:

OutcomeWhat you pay
succeededWhat it actually used, rounded up, never more than the hold. The rest returns at once
failed or expiredNothing. The whole hold returns automatically
Finished without a usable fileNothing; treated as a failure
Declined on content groundsNothing, except on the few models whose page says the maker charges for refusals
Rejected before it starts (400, 402, 403, 429 …)Nothing; no task, no hold

Refunds of failed tasks do not show up as separate lines in your history: a failed task's hold is simply released, and only successful tasks appear as a charge. On the API, the task record's settled and credits fields show where it stands; see Credits and billing.

Refunding a credit pack

You can ask for a refund of a credit pack when both of these are true:

  1. It is within 7 days of the purchase (consumers in the EU and UK have 14 days).
  2. None of that pack's credits have been used. Credits held by a running task count as used.

How to ask: open Account settings → Usage history on popnow.ai, find the pack under Purchases and choose Request a refund. The button appears only while the pack qualifies. A person checks the request, usually within two business days; when it is approved, the price is returned to the original payment method and the pack's credits, base and bonus, are removed from your balance. If you used part of a pack or the window has passed, email support@popnow.ai and we will take a look.

What cannot be refunded: free credits, rewards, and credits already spent on successful generations. The full rules are in the refund policy.

Disputed payments. If a card payment is disputed or reversed with the bank, the credits from that pack are removed. If they were already spent, the balance can go below zero, and new generations are paused until it is settled.

Errors you may meet

CodeMeaningWhat to do
40201The available balance cannot cover this task's holdBuy a pack, or lower the resolution, length or number of outputs
40202The task would go over one of the key's spend capsRaise or remove the cap in the API console, or wait for it to reset
40901The price changed since your quoteQuote again and show the new price

All codes are listed on Errors.

Do API calls cost more than generating on the website?

No. The same model with the same settings costs the same number of credits on the website, through the API, in ChatGPT or Claude, and in the Blender add-on.

Do I have to ask for my credits back when a generation fails?

No. Failed and expired tasks release their hold automatically, and nothing is charged.

Can I get a refund on a credit pack?

Yes, within 7 days of buying it (14 days for consumers in the EU and UK) as long as none of its credits have been used. Request it from Usage history on popnow.ai; a person reviews it and the money goes back to the original payment method.

Do credits expire?

Purchased credits do not expire. Rewards such as invite credits can have their own expiry, shown when you receive them.

Can I buy credits through the API?

No. Credits are bought on the website. The API only spends and reports them.

On this page