# Kraftify pricing

Machine-readable. Intended rates, not recovered ones: no region is funded,
so nothing here has been validated against a live bill.

currency: USD
billing_unit: target_month
free_tier: none
egress_per_gb: 0.02

## targets

One object per kind and size combination. `monthly` is the full price for
one target at that size.

```json
[
{"kind":"postgres","label":"Postgres","connection":"dsn","env_var":"DATABASE_URL","ports":[5432],"size":"small","size_label":"Small","compute":"2 cores, 4 GB","disk":"10 GB","monthly":7,"currency":"USD"}
{"kind":"postgres","label":"Postgres","connection":"dsn","env_var":"DATABASE_URL","ports":[5432],"size":"medium","size_label":"Medium","compute":"4 cores, 8 GB","disk":"40 GB","monthly":14,"currency":"USD"}
{"kind":"postgres","label":"Postgres","connection":"dsn","env_var":"DATABASE_URL","ports":[5432],"size":"large","size_label":"Large","compute":"8 cores, 16 GB","disk":"160 GB","monthly":28,"currency":"USD"}
{"kind":"redis","label":"Redis","connection":"dsn","env_var":"REDIS_URL","ports":[6379],"size":"small","size_label":"Small","compute":"2 cores, 4 GB","disk":"10 GB","monthly":7,"currency":"USD"}
{"kind":"redis","label":"Redis","connection":"dsn","env_var":"REDIS_URL","ports":[6379],"size":"medium","size_label":"Medium","compute":"4 cores, 8 GB","disk":"40 GB","monthly":14,"currency":"USD"}
{"kind":"redis","label":"Redis","connection":"dsn","env_var":"REDIS_URL","ports":[6379],"size":"large","size_label":"Large","compute":"8 cores, 16 GB","disk":"160 GB","monthly":28,"currency":"USD"}
{"kind":"minecraft","label":"Minecraft","connection":"address","env_var":null,"ports":[25565],"size":"small","size_label":"Small","compute":"2 cores, 4 GB","disk":"10 GB","monthly":7,"currency":"USD"}
{"kind":"minecraft","label":"Minecraft","connection":"address","env_var":null,"ports":[25565],"size":"medium","size_label":"Medium","compute":"4 cores, 8 GB","disk":"40 GB","monthly":14,"currency":"USD"}
{"kind":"minecraft","label":"Minecraft","connection":"address","env_var":null,"ports":[25565],"size":"large","size_label":"Large","compute":"8 cores, 16 GB","disk":"160 GB","monthly":28,"currency":"USD"}
{"kind":"container","label":"Container","version_default":"latest","connection":"url","env_var":"SERVICE_URL","ports":[],"size":"small","size_label":"Small","compute":"2 cores, 4 GB","disk":"10 GB","monthly":7,"currency":"USD"}
{"kind":"container","label":"Container","version_default":"latest","connection":"url","env_var":"SERVICE_URL","ports":[],"size":"medium","size_label":"Medium","compute":"4 cores, 8 GB","disk":"40 GB","monthly":14,"currency":"USD"}
{"kind":"container","label":"Container","version_default":"latest","connection":"url","env_var":"SERVICE_URL","ports":[],"size":"large","size_label":"Large","compute":"8 cores, 16 GB","disk":"160 GB","monthly":28,"currency":"USD"}
]
```

## spend_ceiling

A create that would take the account past this is refused, not queued.
Neither the CLI nor the MCP tool surface can raise it.

```json
{
  "default_monthly": 200,
  "auto_approve_under": 25,
  "adjustable_by": [
    "account_owner"
  ],
  "adjustable_by_agent": false
}
```

## notes

- No volume discount. The rate is the rate, for everyone.
- A stopped target still bills until it is deleted.
- No free tier. See /docs/billing for why.
- Egress is metered separately and is not subject to the ceiling.
- To change a ceiling: kraftify ceiling set <monthly>

Source of truth: https://kraftify.net/docs/billing