1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
export type PlanId = 'free' | 'dev' | 'pro' | 'enterprise';
export interface Plan {
id: PlanId;
name: string;
price: number | null; // null = custom / contact us
priceLabel: string;
period: string;
requestsPerMonth: number; // Infinity for enterprise
maxKeys: number; // Infinity for enterprise
features: string[];
cta: string;
}
export const PLANS: Record<PlanId, Plan> = {
free: {
id: 'free',
name: 'Free',
price: 0,
priceLabel: '$0',
period: 'forever',
requestsPerMonth: 1_000,
maxKeys: 1,
features: [
'1,000 requests per month',
'1 API key',
'JSON + JSONL access',
'Community support'
],
cta: 'Switch to Free'
},
dev: {
id: 'dev',
name: 'Developer',
price: 100,
priceLabel: '$100',
period: '/ month',
requestsPerMonth: 50_000,
maxKeys: 5,
features: [
'50,000 requests per month',
'5 API keys',
'All response shapes',
'Email support'
],
cta: 'Switch to Developer'
},
pro: {
id: 'pro',
name: 'Professional',
price: 1000,
priceLabel: '$1,000',
period: '/ month',
requestsPerMonth: 500_000,
maxKeys: 20,
features: [
'500,000 requests per month',
'20 API keys',
'Priority support',
'SLA on uptime'
],
cta: 'Switch to Pro'
},
enterprise: {
id: 'enterprise',
name: 'Enterprise',
price: null,
priceLabel: 'Custom',
period: '',
requestsPerMonth: Number.POSITIVE_INFINITY,
maxKeys: Number.POSITIVE_INFINITY,
features: [
'Unlimited requests',
'Unlimited keys',
'Dedicated support',
'Custom datasets and SLAs'
],
cta: 'Contact us'
}
};
export const PLAN_ORDER: PlanId[] = ['free', 'dev', 'pro', 'enterprise'];
|