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

# Billing

> Free validation eligibility, credits, compute rates, model charges and billing outcomes.

Validate uses Remyx credits for hosted validation compute and applicable Remyx-funded model calls.

## What costs money

The first completed eligible validation is free per GitHub App installation. Later completed runs use prepaid credits or an applicable grant. A valid inconclusive or no-signal result may still be chargeable.

Calls made through your own model-provider key are billed by that provider. A run that fails before a valid measurement result follows the documented non-charge and error rules.

## See the rate and the charge

Validate posts an estimate before measurement. After a completed run, the result records the actual cost.

Open Studio → Account → Billing to see your current credit balance, usage rates and transactions.

[Open Billing in Studio](https://studio.remyx.ai/account?tab=billing)

![Remyx Studio Billing with a grant-covered balance, CPU and GPU hourly rates, and a recent transactions section.](https://mintcdn.com/remyxai/tTKg7dmpknqQ3oqG/images/docs/r4/billing-credits-and-rates.png?fit=max\&auto=format\&n=tTKg7dmpknqQ3oqG\&q=85\&s=4bf69f6b07a8ccb366eafa5e6b1ec90f)

Studio Billing shows the available credits, current compute rates, and transaction section.

## Details

The tables below define eligibility, rates, usage accounting, grants, failed runs and other charge conditions.

| Case | Billing result |
| - | - |
| Free validation (one completed validation per App installation) | The cost is recorded; nothing is debited; the installation's free run is marked used. |
| Completed run on a balance | The actual cost is debited. |
| Valid abstention (**No signal**, **Inconclusive**) | Charged once, when the measurement run finalizes, the same as a verdict. |
| Smoke run that precedes the measurement | Not charged. |
| Error or infrastructure failure | Not charged; does not consume the free validation. |
| Cancelled before a result | Not charged. |
| Refused at start | Nothing was used. |
| Counted grant | One validation is decremented from the grant. |
| Unlimited grant | The cost is recorded; nothing is debited. |

**Nav:** Account → Billing | **URL:** [`/account?tab=billing`](https://studio.remyx.ai/account?tab=billing)

## What admits a validation

When you mention the bot, the account that owns the repo's App installation is checked, in this order. The first that applies admits the run.

| Order | Basis | What it is |
| - | - | - |
| 1 | **Free validation** | One completed validation per App installation. |
| 2 | **Balance** | A positive Remyx balance. |
| 3 | **Grant** | A grant on the account or on the installation's GitHub login: design partners, sponsored open source, pilots. Counted, unlimited, or expiring. |

Nothing else admits. A refusal is one line on the PR that names what fixes it, and it always ends with "Nothing was used". The gate fails closed: a lookup error is a refusal, never a free run.

## When you are charged

Once, when the measurement run finalizes with a verdict or a valid abstention (**No signal**, **Inconclusive**). Never:

* on the smoke run that precedes the measurement;
* on an error or an infrastructure failure, which also does not consume the free validation;
* mid-run. Everything that could refuse a run is checked before it starts: entitlement, the funded allowance, a run already in flight on the repo, a dead model key.

| Basis | At the verdict |
| - | - |
| Free validation | The cost is recorded; nothing is debited; the installation's free run is marked used. |
| Balance | The actual cost is debited. The balance may go below zero by at most one validation; the next run is refused until you top up. |
| Counted grant | One validation is decremented from the grant. |
| Unlimited grant | The cost is recorded; nothing is debited. |

## What it costs

Check the current rates in Studio before running. CPU, GPU, model calls funded by Remyx, and validation fees may contribute to a charge. Calls made with your own model key are billed by your provider. The example numbers in this guide are not a quote for your run.

| Component | How it is priced |
| - | - |
| Compute | Per second, at the tier's hourly rate (CPU or GPU), with a per-job floor. A first-time environment build is priced on CPU. |
| Model calls on Remyx's allowance | Provider list price times the platform multiplier. Calls on your own connected key are never charged. |
| Flat fee | A per-validation fee per product. |

The current rates are on **Account → Billing → Usage rates** and in the `prices` block of `GET /billing`, which any key with `billing:read` can call. Production sets its own rates (CPU $0.60/h and GPU $4.00/h as of November 3, 2026, multiplier 1.0, fee \$0). The code defaults are lower and are not what you are charged. Do not budget from the defaults or from this page. Read the rates page.

The started comment on the PR quotes a ceiling ("up to \~\$0.90 on CPU, includes first-time environment build"): the per-job cost at the run's own deadline, times arms and seeds, plus a build allowance for each arm with no cached image. The verdict footer shows the actual.

## Free first run

Each App installation gets one free validation. It is used when a validation completes with a verdict or a valid abstention (**No signal**, **Inconclusive**), so a run that dies on infrastructure leaves it intact.

With no model provider connected, the free run's test is designed and repaired on a Remyx-funded model, within caps that are code defaults production may change: $2 per job, $5 per account, \$50 per day across all accounts. When a cap is reached the bot says so and names the two ways on: add credits, or connect your own provider. On a paid run, funded model calls are priced into the debit instead.

## Add credits

**1. Open Account → Billing**

The **Credit balance** section shows the balance and **Add credits**. On a deployment with no Stripe key it says "Top-ups aren't enabled on this deployment".

**2. Pick an amount**

Presets of $20, $50 and $100, or any amount from $10 to \$2,000.

**3. Pay in Stripe Checkout**

Promotion codes are accepted. You return to the account page with `?credits=paid` or `?credits=cancelled`.

**4. The balance updates once Stripe confirms**

Usually within a minute. The credit is keyed on the Stripe event id, so a redelivered event never credits twice.

A refusal on a PR links to `studio.remyx.ai/account?buy=credits`, which opens the same flow signed in. The verdict footer shows **Add credits** when the balance is below the larger of the last debit and \$5.

## Statement

**Account → Billing → Recent transactions** lists every credit and debit. The balance is derived from that ledger, not stored, so it cannot drift from the statement. Each debit names the repo and PR it paid for and the cost breakdown (compute, model calls, fee).

An account covered by a grant sees "Covered by a Remyx grant. Tasks are recorded, not charged."

## What you see on the PR

| Moment | Line |
| - | - |
| Started, free run | *This is this installation's free validation.* |
| Started, balance | *Pay as you go: the actual cost is debited from your Remyx balance (\$18.16 now) when the verdict posts.* |
| Started, counted grant | *This uses 1 of the N validations left on your Remyx grant.* |
| Verdict, free run | 🎁 **That was this installation's free validation.** What it would have cost, then **Add credits** or a team pilot. |
| Verdict, balance | 💳 **$1.84 debited from your Remyx balance, $18.16 left.** |
| Verdict, counted grant | *N validations left on your Remyx grant.* |
| Refused | ⛔ **Not started**, the reason, the fix, "Nothing was used". |

## Grants and teams

Grants are written by the Remyx team, not self-served: design partners, sponsored open-source maintainers, pilots. [Contact us](mailto:hello@remyx.ai) with the repo or GitHub organization. A grant can be counted (N validations), unlimited, or expiring, and it can sit on the account or on the installation's GitHub login so every repo under that organization is covered.

A **trusted** grant also unlocks the Docker-in-Docker sidecar for runs that need to build or run containers inside the measurement. Trust is a property of the account, so it applies to that account's free run too. The free validation and the balance are untrusted by default.

## API

| Route | Scope | Returns |
| - | - | - |
| `GET /api/v1.0/billing` | `billing:read` | Whether top-ups are configured, the checkout URL, the presets and limits, and for a user token the balance summary and whether a grant covers the account. A service token gets the price list instead. |
| `POST /api/v1.0/billing/checkout` | `billing:write` | `{amount_usd, success_url?, cancel_url?}` → `{url, session_id, amount_usd}`. Personal tokens only (`403` for a service token), `409` when Stripe is not configured, `400` when the amount is outside $10 to $2,000. |
| `GET /api/v1.0/validate/entitlement?repo=` | `evals:read` | Whether a validation on that repo would be admitted now, on what basis, how many are left, and the refusal line when not. |

The `billing` scope category (read and write) is new; keys created before it need the scope added under Account → API keys. The Stripe webhook and the grants routes are internal.

## Related

> [card] [Validate](https://docs.remyx.ai/platform/agents/validate.md)
>
> What a validation is and how to run one

> [card] [Account](https://docs.remyx.ai/platform/configure/account.md#billing)
>
> The Billing tab

> [card] [API scopes](https://docs.remyx.ai/api-reference/scopes.md)
>
> `billing:read` and `billing:write`

> [card] [Model providers](https://docs.remyx.ai/platform/configure/connectors.md#choose-a-model-provider)
>
> Outrider bills your provider, not Remyx


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.