---
title: "The published plan catalog"
method: GET
path: "/v2/plans"
tags: ["Billing"]
---

# The published plan catalog

`GET /v2/plans`

## Request

- Base URL: `https://api.infolang.ai`
- URL: `https://api.infolang.ai/v2/plans`
- Auth: none declared

Every plan the product sells, cheapest first: its display name, its price, whether it can be bought without talking to a human, and what it includes on each capped meter. This is the ONLY supported source for those numbers — do not hard-code a price or an inclusion in a client. A copy in a client drifts, and the last one did: the console's hand-written price map grew two plan ids that exist nowhere in the product.

**Public — no credential, and the response never varies by caller.** It is a catalog, not account data; every number here is already on the pricing page. It is served as a frozen constant with `cache-control: public`, so a shared cache may hand one caller's copy to the next. To find out which plan a particular account is ON, use `GET /v2/billing` or `GET /v2/workspaces/{id}/billing`.

`price` is a discriminated union on `kind`. `listed` carries `amount_cents` (minor units) and `interval`. `quoted` carries neither — `enterprise` ships on dedicated capacity and is priced per deal, so render it as "Contact sales". Its `from_cents` is a documented FLOOR, not a monthly charge; it is spelled differently from `amount_cents` precisely so a client cannot pick it up by accident.

`inclusions` has one entry per CAPPED meter, keyed by the SAME meter id `GET /v2/workspaces/{id}/usage` reports, so a "used / included" bar is a join and not a mapping table. `included: null` means UNLIMITED — never zero. `hard_cap` says whether exceeding the inclusion REFUSES the operation (`storage`, `recall`) or merely records it (`memorize`, `ingest`); drawing an advisory number as a hard wall tells a customer they will be cut off on a dimension nothing enforces. `is_stock` marks a LEVEL (the current resident set) rather than a per-month flow — a stock does not reset at the month boundary and must not be drawn against a monthly period.

The metered dimensions with NO inclusion (`egress`, `chunks_ingested`) are deliberately absent rather than listed as zero: they are billed or informational, and pricing has published no allowance for them.

## Response `200`

Every published plan, cheapest first

- object
  - `plans` object[], required
    - `id` 'free' | 'developer' | 'pro' | 'enterprise', required
    - `name` string, required
    - `self_serve` boolean, required
    - `price` union, required
      - object
        - `kind` 'listed', required
        - `currency` 'usd', required
        - `amount_cents` integer, required
        - `interval` 'month', required
      - object
        - `kind` 'quoted', required
        - `currency` 'usd', required
        - `from_cents` integer, required
    - `inclusions` object, required
      - `recall` object, required
        - `included` integer, nullable, required
        - `hard_cap` boolean, required
        - `is_stock` boolean, required
        - `unit` 'calls' | 'writes' | 'tokens' | 'chunks', required
      - `memorize` object, required
        - `included` integer, nullable, required
        - `hard_cap` boolean, required
        - `is_stock` boolean, required
        - `unit` 'calls' | 'writes' | 'tokens' | 'chunks', required
      - `ingest` object, required
        - `included` integer, nullable, required
        - `hard_cap` boolean, required
        - `is_stock` boolean, required
        - `unit` 'calls' | 'writes' | 'tokens' | 'chunks', required
      - `storage` object, required
        - `included` integer, nullable, required
        - `hard_cap` boolean, required
        - `is_stock` boolean, required
        - `unit` 'calls' | 'writes' | 'tokens' | 'chunks', required
    - `overage` object, nullable, required
      - `storage_cents_per_1k` integer, required
      - `recall_cents_per_1k` integer, required
    - `capabilities` string[], required

---

[API](https://skmtc.dev/infolang/apis/infolang-api.md) · [All operations](https://skmtc.dev/infolang/apis/infolang-api/llms.txt) · [OpenAPI document](https://skmtc.dev/infolang/apis/infolang-api/revisions/d04bf6de72c8?raw)
