Autumn Customer Setup
Always consult docs.useautumn.com for code examples and latest API.
Quick Reference
Environment Variables
- AUTUMN_SECRET_KEY
- Required. Get one at app.useautumn.com
Installation
npm install autumn-js # Node.js pip install autumn-py # Python
Integration Paths
Stack Path
React + Node.js Mount handler + AutumnProvider
Backend only Initialize client + call API
Path A: React + Node.js
Handler Setup
Framework File Import
Next.js App Router app/api/autumn/[...all]/route.ts
autumn-js/next
React Router app/routes/api.autumn.tsx
autumn-js/react-router
Hono Any file autumn-js/hono
Express Any file autumn-js/express
Fastify Any file autumn-js/fastify
import { autumnHandler } from "autumn-js/next";
export const { GET, POST } = autumnHandler({ identify: async (request) => { const session = await getSession(request); return { customerId: session.user.id, // or session.org.id for B2B customerData: { name: session.user.name, email: session.user.email }, }; }, });
Client Setup
import { AutumnProvider } from "autumn-js/react";
<AutumnProvider>{children}</AutumnProvider>
// Different backend URL: <AutumnProvider backendUrl={process.env.NEXT_PUBLIC_API_URL} />
Verify
import { useCustomer } from "autumn-js/react";
const { customer } = useCustomer(); console.log("Autumn customer:", customer);
Path B: Backend Only
Initialize
import { Autumn } from "autumn-js";
const autumn = new Autumn({ secretKey: process.env.AUTUMN_SECRET_KEY });
from autumn import Autumn
autumn = Autumn('am_sk_test_xxx')
Create Customer
const { data } = await autumn.customers.create({ id: "user_id_from_auth", name: "Test User", email: "test@example.com", });
Common Gotchas
-
B2C vs B2B - Decide if customerId is user ID or org ID before integrating
-
Idempotent - customers.create returns existing customer if ID exists
-
Backend URL - Pass backendUrl to provider if API is on different domain
-
Secret key - Keep AUTUMN_SECRET_KEY server-side only
Resources
-
Setup Docs
-
React Setup
-
LLMs.txt