> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fetchin.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Credit Packs

> Buy credits outright, with or without a subscription: rates, expiry and how they are spent

## What a Credit Pack Is

A credit pack is a **one-time purchase of credits**, bought self-serve from
**[Credits](https://fetchin.io/credits)** in your dashboard. It is not a plan and
not a subscription: you pay once, the credits land on your account, and they stay
there for **12 months** from that purchase.

Packs are the pay-as-you-go answer to a month that runs long, a backfill, or a
seasonal spike — the cases where a permanently bigger plan would be the wrong
shape.

<CardGroup cols={2}>
  <Card title="No subscription needed" icon="unlock">
    Buy with a plan, without one, or on top of a dedicated contract. A pack-only
    account calls the same endpoints with the same key.
  </Card>

  <Card title="No integration change" icon="code">
    Same key, same endpoints, same prices per call. Nothing in your code knows
    which balance paid for a request.
  </Card>
</CardGroup>

## Rates

Rates are **progressive**, in units of 1,000 credits. A bigger pack lowers the
price of the credits above each threshold; it does not reprice the ones below it.

| Credits in the pack    | Rate per 1,000 |
| ---------------------- | -------------- |
| First 1,000,000        | \$1.50         |
| 1,000,000 – 5,000,000  | \$1.45         |
| 5,000,000 – 10,000,000 | \$1.40         |
| Above 10,000,000       | \$1.35         |

### What that costs

| Pack       | Total    | Effective rate per 1,000 |
| ---------- | -------- | ------------------------ |
| 50,000     | \$75     | \$1.50                   |
| 250,000    | \$375    | \$1.50                   |
| 1,000,000  | \$1,500  | \$1.50                   |
| 5,000,000  | \$7,300  | \$1.46                   |
| 10,000,000 | \$14,300 | \$1.43                   |
| 50,000,000 | \$68,300 | \$1.37                   |

<Note>
  Because the rates are marginal, a 5,000,000-credit pack costs \*\*$7,300**, not
      5,000 × $1.45 = $7,250: the first million is still billed at $1.50 and only the
  four million above it get the lower rate. The dashboard shows the exact total
  and the effective per-1,000 rate before you confirm, so you never have to
  reproduce the arithmetic.
</Note>

### Sizes

* **Minimum**: 50,000 credits (\$75)
* **Maximum**: 50,000,000 credits in a single pack
* **Increments**: 50,000 up to 1,000,000, then 250,000

Need more than 50,000,000 at once, or an invoice instead of a card? Contact sales.

## How Packs Are Spent

A request always draws from your plan first, and only reaches your packs once the
plan allowance for the period is exhausted. Among packs, the one expiring
**soonest** is drawn down first.

<Steps>
  <Step title="Plan credits">
    Your monthly allowance. It is replaced at each renewal, so anything unspent is
    lost — which is exactly why it is spent first.
  </Step>

  <Step title="Packs, soonest expiry first">
    Then your oldest-expiring pack, until it is empty, then the next one.
  </Step>

  <Step title="402">
    Only when every balance is empty does a request fail with
    `402 QUOTA_EXHAUSTED`.
  </Step>
</Steps>

This order is fixed. There is no setting to reverse it, and there is no way to
reserve a pack for a particular key, endpoint or environment.

## Expiry

Each pack expires **12 months after its own purchase date**. Buying a new pack
never extends an older one — two packs bought six months apart have two different
expiry dates and are consumed in that order.

`paygExpiresAt` on [`GET /api/v1/subscription`](/api-reference/endpoint/get-subscription)
gives the date of the soonest-expiring pack you still hold (`null` if you hold
none), which is the date to watch: it is when your balance can drop without you
having called anything.

<Warning>
  Packs are **non-refundable**, and expired credits are not refunded or restored.
  Size a pack to what you will realistically consume within the year rather than
  buying the largest rate break you can reach.
</Warning>

## What a Pack Does Not Change

* **Your rate limit.** Requests per second is a property of your plan. Buying
  credits never raises it, and no pack size unlocks more throughput — see
  [Rate Limits](/concepts/rate-limits). If you are hitting `429`, credits are not
  the fix.
* **Your plan.** `creditsLimit` keeps reporting the plan allowance, and
  `creditsUsed` keeps counting the plan alone, so both stay meaningful after a
  purchase.
* **Your subscription's fate.** If you later cancel your plan, its credits stop
  renewing and your rate limit falls back to the default 5 requests per second.
  Your pack credits stay, and you can keep spending them until they expire.

## Buying a Pack

<Steps>
  <Step title="Open the Credits page">
    Go to **[fetchin.io/credits](https://fetchin.io/credits)** and open the credit
    pack section.
  </Step>

  <Step title="Pick a volume">
    Choose a preset or enter your own. The total and the effective per-1,000 rate
    update as you go.
  </Step>

  <Step title="Pay">
    Checkout is handled by Stripe. Credits are added to your account as soon as
    the payment clears — normally within seconds.
  </Step>

  <Step title="Verify">
    The dashboard shows the new balance and the pack's expiry date, and
    [`GET /api/v1/subscription`](/api-reference/endpoint/get-subscription) returns
    it as `paygCreditsRemaining` / `paygExpiresAt`. In-flight calls start
    succeeding again with no redeploy.
  </Step>
</Steps>

<Info>
  A past-due subscription does not block a purchase. Packs are prepaid, so you can
  buy one to keep working while a card issue is being sorted out.
</Info>

## Checking Your Pack Balance in Code

```bash theme={null}
curl "https://api.fetchin.io/api/v1/subscription" \
  -H "X-API-Key: your-api-key-here"
```

```json theme={null}
{
  "plan": "custom",
  "active": true,
  "status": "active",
  "creditsRemaining": 684230,
  "subscriptionCreditsRemaining": 184230,
  "paygCreditsRemaining": 500000,
  "paygExpiresAt": "2027-03-02T00:00:00.000Z",
  "creditsLimit": 250000,
  "creditsUsed": 65770,
  "renewalDate": "2026-07-15T00:00:00.000Z",
  "rpsLimit": 20,
  "cancelAtPeriodEnd": false
}
```

`creditsRemaining` is the sum of both balances — the number to gate on. Watch
`paygCreditsRemaining` if you want to know when your packs are running low, and
`paygExpiresAt` to be reminded before a pack lapses.

<Tip>
  Gate your traffic on `creditsRemaining > 0` alone. `active` is about billing
  standing, and an account with no subscription but a live pack reads
  `status: "free"` while being perfectly able to call the API — requiring
  `active` there would stop traffic that would have succeeded.
</Tip>

## Common Questions

<AccordionGroup>
  <Accordion title="Can I buy without a subscription?">
    Yes. A pack works on its own — sign up, buy, call the API. Your rate limit is
    the default 5 requests per second until you take a plan.
  </Accordion>

  <Accordion title="Do packs stack?">
    Yes. You can hold several at once. They are consumed soonest-expiry first, and
    each keeps its own 12-month clock.
  </Accordion>

  <Accordion title="Does buying a pack change what a request costs?">
    No. Every endpoint bills the same credits whichever balance pays — see
    [Quotas](/concepts/quotas) for the per-endpoint table.
  </Accordion>

  <Accordion title="Are packs refundable?">
    No. Packs are non-refundable, including the unused portion, and expired
    credits are not restored.
  </Accordion>

  <Accordion title="Can a pack get me more requests per second?">
    No. Credits and throughput are separate axes. Higher sustained RPS comes from
    a plan — contact sales.
  </Accordion>
</AccordionGroup>
