---
title: "Boundary pricing"
description: "Starter, Team, and Enterprise limits for Norcaster Boundary, protected-flow definition, and enforcement vs marketing notes."
canonical: https://www.norcaster.com/docs/boundary-pricing
---
<!-- Generated at build time from the rendered page by portal/scripts/generate-llms.mjs. The page is the source of truth; edit it, not this file. -->

Commercial

# Boundary pricing

Norcaster Boundary is packaged as Starter, Team, and Enterprise plans, sized by workspaces, protected flows, seats, protected runs per month, and trace retention. This page is the canonical reference for those limits, the protected-flow definition, and what the API enforces versus what is arranged with sales.

## Plan limits (Boundary packaging)

**Starter:** 1 workspace, 3 protected flow, 3 seat, 150,000 protected runs/month, 90 days trace retention.

**Team:** 1 workspaces, 10 protected flows, 10 seats, 500,000 protected runs/month, 180 days trace retention.

**Enterprise:** custom across workspaces, flows, seats, volume, and retention — sales-led.

## Protected flow

Protected flow = one configured AI request path protected by Boundary (e.g. a deployment + preset pack on supported /run).

## Enforcement status

By default the API enforces **workspace subscription** limits from `api/entitlements.py` (evaluated requests, deployments, retention). Ops can set `BOUNDARY_LIMITS_ENFORCEMENT=true` to align those caps with Boundary Starter/Team numbers using the same monthly counter. `GET /usage` and `GET /entitlements` return a `metering` object so the dashboard can label workspace vs Boundary-aligned quotas. Use dashboard **Usage** as the hard cap for your account.

## Sales-led vs self-serve

**Enterprise** stays sales-led. **Team** uses Stripe checkout when the portal sets `NEXT_PUBLIC_BOUNDARY_TEAM_SELF_SERVE=true` (and the API has a Team Stripe Price ID). Otherwise the public Team card stays contact-led — see `docs/boundary-pricing.md`.
