Client libraries are supported for React and Node.js apps. Please use our Server-side SDK for other frameworks and languages.
- A Free plan that gives users 5 chat messages per month for free
- A Pro plan that gives users 100 chat messages per month for $20 per month.
1. Create your pricing plans
Create a product for each plan that your app offers. In our example we’ll create a “Free” and “Pro” plan.- Dashboard
- CLI
Create your Autumn account, and the Free and Pro plans in the Plans tab.


Free Plan
Free Plan
- On the Plans page, click Create Plan.
- Name the plan (eg, “Free”) and select plan type
Free - Toggle the
auto-enableflag, so that the plan is assigned whenever customers are created - In the plan editor, click Add Feature to Plan, and create a
Metered,Consumablefeature for “messages” - Configure the plan to grant
5messages, and set the interval toper month - Click Save
Your Free plan should look like this

Pro Plan
Pro Plan
- On the Plans page, click Create Plan.
- Name the plan (eg, “Pro”) and select plan type
Paid,Recurring, and set the price to$20per month - In the plan editor, click Add Feature to Plan, and add the
messagesfeature that you created in the Free plan - Configure the plan to grant
100messages, and set the interval toper month - Click Save
Your Pro plan should look like this

2. Installation
Create an Autumn Secret key, and paste it in your.env variables. Then, install the Autumn SDK.
.env
If you’re using a separate backend and frontend, make sure to install the
library in both.
Add Endpoints Server-side
Server-side, mount the Autumn handler. This will create endpoints in the/api/autumn/* path, which will be called by Autumn’s frontend React hooks. These endpoints in turn call Autumn’s API.
The handler takes in an identify function where you should pass in the user ID or organization ID from your auth provider.
Autumn will automatically create a customer if the customer ID is new, and enable the Free plan for them.
Add Provider Client-side
Client side, wrap your application with the<AutumnProvider> component.
If your backend is hosted on a separate URL (eg, when using Vite), pass it into the backendUrl prop.
The Provider component can also take in a
getBearerToken function, which should be used
for auth frameworks with separate backend and frontend, eg using Clerk with
Express.This will pass the auth token in the Authorization header from the request to the
backend, which can be used in the autumnHandler identify function.3. Stripe Payment Flow
Callcheckout to redirect the customer to a Stripe checkout page when they want to purchase the Pro plan. Once they’ve paid, Autumn will grant access to “100 messages per month” defined in Step 1.
For subsequent payments, no Checkout URL is required. You can pass in Autumn’s <CheckoutDialog /> component to the function, which will automatically open instead if there’s no checkout URL returned.
Use Stripe’s test card
4242 4242 4242 4242 to make a purchase in sandbox. You can enter any Expiry and CVV.React
Next step: Gating and Usage Limits Now that the plan is enabled and you’ve handled payments, you can now make sure that customers have the correct access and limits based on their plan.
Gating Features
Enforce usage limits and feature permissions using Autumn’s
check and track functions



