> ## Documentation Index
> Fetch the complete documentation index at: https://docs.priceos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# usePricingTable

> Load pricing-table data without rendering the PriceOS component.

Use `usePricingTable` when you want to build your own pricing-table UI. It returns the resolved release, plans, prices, features, display settings, and customer state.

```tsx theme={null}
import { useCheckout, usePricingTable } from "priceos/react";

export function Pricing() {
  const { pricingTable, isLoading } = usePricingTable({
    pricingTableKey: "marketing-pricing",
  });
  const { openCheckout } = useCheckout();

  if (isLoading || !pricingTable) return null;

  return pricingTable.plans.map((plan) => (
    <article key={plan.productKey}>
      <h2>{plan.name}</h2>
      <p>{plan.monthlyPrice?.label}</p>
      <button
        onClick={() => openCheckout({
          productKey: plan.productKey,
          stripePriceId: plan.monthlyPrice?.stripePriceId,
          pricingTableReleaseId: pricingTable.table?.releaseId,
        })}
      >
        Choose {plan.name}
      </button>
    </article>
  ));
}
```

For existing subscribers, call `useCustomerPortal()` from your authenticated application route to let Stripe safely manage plan changes.
