---
title: "Plan catalogue and pricing"
method: GET
path: "/plans"
tags: ["Account"]
---

# Plan catalogue and pricing

`GET /plans`

## Request

- Base URL: `https://api.griffnode.com/v1`
- URL: `https://api.griffnode.com/v1/plans`
- Auth: HTTP bearer

## Response `200`

Plans.

- object
  - `success` unknown, required
  - `data` object, required
    - `plans` Plan[]
      - `tier` 'starter' | 'business' | 'professional' | 'enterprise'
      - `monthly_price_usd` number, nullable
      - `yearly_price_usd` number, nullable
      - `monthly_transaction_limit` integer, nullable
      - `overage_cost_per_tx` number: Always 0. Plans have a hard monthly limit and no overage.
      - `webhook_support` boolean
      - `webhook_limit` integer, nullable
      - `ip_whitelist` boolean
      - `api_rate_limit_per_minute` integer
      - `api_rate_limit_per_hour` integer
      - `custom_pricing` boolean
    - `billing_cycles` string[]

## Other responses

- `401`: Missing or invalid API key (UNAUTHORIZED).
- `403`: Key lacks permission — e.g. a publishable key on a secret-only endpoint, or plan too low (FORBIDDEN, USE_PAY_ENDPOINT, PLAN_UPGRADE_REQUIRED, NO_ACTIVE_PLAN).

---

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