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

# Paying for model usage

Every Pullfrog run spends model tokens, and there are four ways to pay for them. This page is the decision: pick a route, then follow the link for setup. If a run fails with a credentials or balance error, the fix is almost always to complete one of these four.

This is separate from [the Pro plan](/billing#the-plan), which is what lets an organization run on private repositories. Pro does not include model tokens, and paying for model tokens does not require Pro.

## Pick a route

| Route                                                     | What you pay                                       | Set it up                              |
| --------------------------------------------------------- | -------------------------------------------------- | -------------------------------------- |
| [Free models](#free-models)                               | Nothing                                            | Pick the model — no credentials at all |
| [Pullfrog Router](#pullfrog-router)                       | A prepaid balance, at provider cost with no markup | Add a card in the console              |
| [Your own API key](#your-own-api-key)                     | Your provider bills you directly                   | Paste the key in the console           |
| [Your existing subscription](#your-existing-subscription) | Nothing extra — you already pay for it             | One CLI command                        |

The last two are both **BYOK** (bring your own key). BYOK and Router are an account-wide toggle in the **Model usage** section of the **Billing** card; free models work under either.

## Free models

Some models cost nothing to run. Pick one in the [model selector](/models#selecting-a-model) and you skip the card, the balance and the provider bill entirely.

They are free, not credential-free: OpenCode Zen still authenticates the request, so `OPENCODE_API_KEY` has to be set the same way [any other provider key](/keys) is. What you save is the bill, not the key.

For a repository that is failing on cost rather than credentials, this is the fastest route back to green, and a reasonable permanent choice for smaller tasks.

## Pullfrog Router

Pullfrog Router reaches every major provider through one billing account, at raw provider cost with no markup. You manage no keys: Pullfrog mints a short-lived proxy key for each run.

You hold a prepaid balance, and **runs stop when it reaches zero**. Add a card and top up in the **Billing** card of your account console, then turn on [auto-reload](/billing#auto-reload) so the balance refills before it runs out. Without auto-reload, an empty wallet stops every run until you top up by hand.

Full detail: [Pullfrog Router](/billing#pullfrog-router).

## Your own API key

Bring a provider API key and the provider bills you directly, at their prices. The key must match the model the repository is set to use — an OpenAI key cannot run an Anthropic model, so check the repository's model setting alongside the key.

Keys live in one of two places:

* **Pullfrog's encrypted store** (recommended) — set on the **BYOK** tab of the **Billing** card. Scope them to the whole account, where every repository inherits them, or to a single repository, which overrides the account-level one.
* **GitHub Actions secrets** — the workflow already wires the standard variable names, so a secret with the right name is picked up automatically.

Full detail, including Bedrock, Vertex, Azure and OpenAI-compatible endpoints: [BYOK](/keys).

## Your existing subscription

If you already pay for a Claude Pro/Max plan, a ChatGPT plan, or a Grok subscription, Pullfrog can run on it instead of buying API tokens. **These are not API keys and there is nothing to paste.** Each is one command, run from inside the repository:

```bash theme={null}
npx pullfrog auth claude   # Claude Pro/Max
npx pullfrog auth codex    # ChatGPT / Codex
npx pullfrog auth grok     # Grok (SuperGrok / X Premium)
```

<Warning>
  Do not put a subscription credential into GitHub Actions secrets. The Codex and Grok credentials rotate as they refresh, and a GitHub secret cannot be written at runtime, so one parked there stops working as soon as its access token expires — hours for Grok, days for Codex. All three belong in Pullfrog's store, which is where the commands above put them.
</Warning>

A subscription has usage limits. When it hits one, runs fail until it resets — so if you want runs to keep going through a limit, add an API key as well and Pullfrog falls back to it.

Two more subscriptions run on Pullfrog through an ordinary key rather than a command, because their vendors issue one: [Kimi Code](/kimi-code) bills Kimi models against a Kimi membership under `KIMI_API_KEY`, and [OpenCode Go](/models#opencode-zen-and-opencode-go) covers its capped monthly catalog under `OPENCODE_API_KEY`. Store either the same way as any other provider key — see [BYOK](/keys).

Full detail: [Claude subscription](/claude-auth), [Codex subscription](/codex-auth), [Grok subscription](/grok-auth), [Kimi Code](/kimi-code), [OpenCode Go](/models#opencode-zen-and-opencode-go).

## Troubleshooting a failing run

Work down this list; each item rules out the one below it.

1. **Does the repository have a model set that you hold credentials for?** Check the repository's model setting in the console. A repository pinned to an OpenAI model needs an OpenAI credential, whichever route you chose.
2. **On Router: is the balance above zero and is a card on file?** An empty balance stops runs even when everything else is correct.
3. **On BYOK: does a key exist at the account, the repository, or in GitHub Actions secrets?** A secret referenced by the workflow but never created resolves to an empty value rather than an error.
4. **On a subscription: has it hit its usage limit?** Runs resume when it resets, and an API key added alongside it prevents the gap.
5. **Is GitHub itself refusing to start the job?** If the run has no steps at all, the problem is your GitHub Actions billing rather than Pullfrog — check your GitHub account's billing settings.
