> For the complete documentation index, see [llms.txt](https://docs.frayme.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.frayme.ai/resources/pricing.md).

# Pricing

Flat monthly plans with hard generation caps — no credits, no metering maze, no overage charges.

## Plans

|                                | Free      | Hobby     | Starter | Pro      | Scale    | Enterprise      |
| ------------------------------ | --------- | --------- | ------- | -------- | -------- | --------------- |
| **Price / mo**                 | $0        | $9        | $29     | $99      | $299     | Custom          |
| **Generations / mo**           | 500       | 3,000     | 12,000  | 60,000   | 200,000  | Unlimited       |
| **Streaming**                  | ✓         | ✓         | ✓       | ✓        | ✓        | ✓               |
| **Full 189-component catalog** | ✓         | ✓         | ✓       | ✓        | ✓        | ✓               |
| **Support**                    | Community | Community | Email   | Priority | Priority | Dedicated + SLA |

Prices in USD. Every plan gets **every feature** — streaming, the full catalog, edit mode, journeys, custom components, the SDK, idempotent retries. The only lever between tiers is volume.

{% hint style="info" %}
Plans open with the public launch on **August 24, 2026**. Until then there is no self-serve signup — [join the waitlist](https://frayme.ai).
{% endhint %}

## What counts as a generation

One call to [`POST /v1/compose`](/api-reference/compose.md) that ends in a **validated success** — a spec that passed catalog validation and reached `compose.completed` (or a `200` envelope). That's the whole billing model:

* **Failures are free.** A compose that errors — validation failure, model unavailability, anything — bills nothing.
* **Replays are free.** Retrying with an [idempotency key](/api-reference/idempotency.md) replays the stored result without a second charge.
* **Utility calls are free.** `/v1/me` and `/v1/health` never bill.

You are never charged for output you didn't receive.

## Hard caps, by design

When a plan's monthly generations are spent, compose returns [`429 QUOTA_EXCEEDED`](/api-reference/errors.md#the-two-429s) until the cycle resets or you upgrade. There is no overage billing and no usage-based surprise at month end — the price on the table is the price on the invoice.

If you're regularly close to the cap, upgrading mid-cycle moves you to the larger allowance; monitor headroom with [`GET /v1/me`](/api-reference/me-and-health.md):

```ts
const me = await frayme.me();
console.log(`${me.plan.generationsRemaining} generations left this cycle`);
```

## Enterprise

Unlimited generations, a dedicated team, and an SLA, shaped around your deployment — [talk to us](https://frayme.ai/pricing).

## Related

* [Rate limits](/api-reference/rate-limits.md) — how the caps and burst limits are enforced
* [Idempotency](/api-reference/idempotency.md) — why retries can't double-bill
* [Production checklist](/resources/production-checklist.md) — quota monitoring before launch


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.frayme.ai/resources/pricing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
