specification: API Commons Plans specificationVersion: '0.1' schema: https://raw.githubusercontent.com/api-evangelist/interface-research/main/schema/api-commons.yml#/$defs/Plans provider: Storyblok providerId: storyblok created: '2026-05-04' # Provenance stamped 2026-08-11: this artifact was written by the API Evangelist # bulk sweep dated 2026-05-04, not harvested from the provider. See roadmap#35. method: generated modified: '2026-05-05' reconciled: true tags: - CMS - Content Delivery - Content Management - Headless CMS - Image Optimization - REST API - Visual Editor - Webhooks description: Storyblok uses a tiered subscription model (Starter / Growth / Growth Plus / Premium / Elite) with included quotas for traffic, API requests, AI credits, locales, and seats. Overages are sold as metered add-ons (e.g. $10 per 1M extra API requests, $75 per 250GB extra traffic, $20 per 200k AI credits, $20/locale/month). Premium and Elite are custom-quoted. sources: - https://www.storyblok.com/pricing plans: - id: storyblok-starter name: Starter type: freemium description: Free plan with 1 space and 1 included user seat. 100GB monthly traffic, 100k API requests/month, 2 locales, 25k AI credits, max 2 seats, 20k stories. entries: - label: User Seats Included name: user_seats_included type: quota metric: seat limit: 1 timeFrame: usage geo: global unit: 1 price: '0' userMultiplied: false - label: Additional Seats name: user_seats_additional type: metered metric: seat limit: 1 timeFrame: month geo: global unit: 1 price: '$15/month per additional seat' userMultiplied: true - label: Traffic name: traffic type: quota metric: gb limit: 100 timeFrame: month geo: global unit: 1 price: '0' userMultiplied: false - label: API Requests name: api_requests type: quota metric: request limit: 100000 timeFrame: month geo: global unit: 1 price: '0' userMultiplied: false - label: Locales name: locales type: quota metric: locale limit: 2 timeFrame: usage geo: global unit: 1 price: '0' userMultiplied: false - label: AI Credits name: ai_credits type: quota metric: credit limit: 25000 timeFrame: month geo: global unit: 1 price: '0' userMultiplied: false - label: Stories name: stories type: quota metric: story limit: 20000 timeFrame: usage geo: global unit: 1 price: '0' userMultiplied: false elements: - name: 1 Space - name: Visual Editor - name: Headless CMS - id: storyblok-growth name: Growth type: subscription description: $99/month or $90.75/month annual. 1 space, 5 seats included, 400GB traffic (up to 1TB at $75 per 250GB), 1M API requests (up to 5M at $10 per 1M), 2 locales (unlimited at $20/month each), 100k AI credits (up to 500k at $20 per 200k), max 10 seats, 25k stories. entries: - label: Base Subscription name: base_subscription type: subscription metric: month limit: -1 timeFrame: month geo: global unit: 1 price: '$99/month or $90.75/month billed annually' userMultiplied: false - label: User Seats Included name: user_seats_included type: quota metric: seat limit: 5 timeFrame: usage geo: global unit: 1 price: '0' userMultiplied: false - label: Additional Seats name: user_seats_additional type: metered metric: seat limit: 5 timeFrame: month geo: global unit: 1 price: '$15/month per additional seat' userMultiplied: true - label: Traffic Included name: traffic_included type: quota metric: gb limit: 400 timeFrame: month geo: global unit: 1 price: '0' userMultiplied: false - label: Traffic Overage name: traffic_overage type: metered metric: gb limit: 1000 timeFrame: month geo: global unit: 250 price: '$75 per 250GB' userMultiplied: false - label: API Requests Included name: api_requests_included type: quota metric: request limit: 1000000 timeFrame: month geo: global unit: 1 price: '0' userMultiplied: false - label: API Requests Overage name: api_requests_overage type: metered metric: request limit: 5000000 timeFrame: month geo: global unit: 1000000 price: '$10 per 1M' userMultiplied: false - label: Locales Included name: locales_included type: quota metric: locale limit: 2 timeFrame: usage geo: global unit: 1 price: '0' userMultiplied: false - label: Additional Locales name: locales_additional type: metered metric: locale limit: -1 timeFrame: month geo: global unit: 1 price: '$20/month each' userMultiplied: false - label: AI Credits Included name: ai_credits_included type: quota metric: credit limit: 100000 timeFrame: month geo: global unit: 1 price: '0' userMultiplied: false - label: AI Credits Overage name: ai_credits_overage type: metered metric: credit limit: 500000 timeFrame: month geo: global unit: 200000 price: '$20 per 200k' userMultiplied: false elements: - name: 1 Space - name: Up to 25k Stories - name: Visual Editor - name: Headless CMS - id: storyblok-growth-plus name: Growth Plus type: subscription description: $349/month or $319.91/month annual. 1 space, 15 seats, 1TB traffic (up to 2TB at $75 per 250GB), 4M API requests (up to 15M at $10 per 1M), 10 locales, 200k AI credits (up to 1M at $20 per 200k), max 20 seats, unlimited stories. entries: - label: Base Subscription name: base_subscription type: subscription metric: month limit: -1 timeFrame: month geo: global unit: 1 price: '$349/month or $319.91/month billed annually' userMultiplied: false - label: User Seats Included name: user_seats_included type: quota metric: seat limit: 15 timeFrame: usage geo: global unit: 1 price: '0' userMultiplied: false - label: Additional Seats name: user_seats_additional type: metered metric: seat limit: 5 timeFrame: month geo: global unit: 1 price: '$15/month per additional seat' userMultiplied: true - label: Traffic Included name: traffic_included type: quota metric: gb limit: 1000 timeFrame: month geo: global unit: 1 price: '0' userMultiplied: false - label: Traffic Overage name: traffic_overage type: metered metric: gb limit: 2000 timeFrame: month geo: global unit: 250 price: '$75 per 250GB' userMultiplied: false - label: API Requests Included name: api_requests_included type: quota metric: request limit: 4000000 timeFrame: month geo: global unit: 1 price: '0' userMultiplied: false - label: API Requests Overage name: api_requests_overage type: metered metric: request limit: 15000000 timeFrame: month geo: global unit: 1000000 price: '$10 per 1M' userMultiplied: false - label: Locales Included name: locales_included type: quota metric: locale limit: 10 timeFrame: usage geo: global unit: 1 price: '0' userMultiplied: false - label: Additional Locales name: locales_additional type: metered metric: locale limit: -1 timeFrame: month geo: global unit: 1 price: '$20/month each' userMultiplied: false - label: AI Credits Included name: ai_credits_included type: quota metric: credit limit: 200000 timeFrame: month geo: global unit: 1 price: '0' userMultiplied: false - label: AI Credits Overage name: ai_credits_overage type: metered metric: credit limit: 1000000 timeFrame: month geo: global unit: 200000 price: '$20 per 200k' userMultiplied: false elements: - name: 1 Space - name: Unlimited Stories - name: Visual Editor - name: Headless CMS - id: storyblok-premium name: Premium type: enterprise description: Custom-quoted plan that builds on Growth Plus and adds advanced enterprise features. Pricing not published. entries: - label: Contract name: contract type: subscription metric: varies limit: -1 timeFrame: year geo: global unit: 1 price: contact sales userMultiplied: false elements: - name: All Growth Plus Features - name: GraphQL API - name: SSO - name: Custom Workflows - name: 99.9%+ Uptime SLA - id: storyblok-elite name: Elite type: enterprise description: Custom-quoted top tier with the largest negotiated quotas, dedicated support, and contractual SLAs. entries: - label: Contract name: contract type: subscription metric: varies limit: -1 timeFrame: year geo: global unit: 1 price: contact sales userMultiplied: false elements: - name: All Premium Features - name: Dedicated Support - name: Custom Negotiated Quotas maintainers: - FN: Kin Lane email: kin@apievangelist.com x-canonical: generated: '2026-10-08' vocabulary: all/0-working/economics/plans-canonical.yml models: - seat - subscription units: - credit - data - negotiated - period - request - seat plans: - name: Starter access: freemium model: seat model_how: derived units: - credit - data - other - request - seat periods: - month - per-use - name: Growth access: other model: subscription model_how: stated units: - credit - data - other - period - request - seat periods: - month - per-use - name: Growth Plus access: other model: subscription model_how: stated units: - credit - data - other - period - request - seat periods: - month - per-use - name: Premium access: enterprise model: subscription model_how: derived units: - negotiated periods: - year - name: Elite access: enterprise model: subscription model_how: derived units: - negotiated periods: - year