AppSync Request Calculator
Price AppSync GraphQL operations, real-time subscription updates, connection minutes and caching from your client behaviour.
Inputs
Estimated Monthly Cost
$182.30
Query and Mutation Cost
$80.00
Real-time Update Cost
$100.00
Connection Minute Cost
$2.30
Cache Cost
$0.00
Connection Minutes per Month
28,800,000
Step by step
Values used
Queries and mutations per month = 20,000,000 operations; Real-time updates delivered per month = 50,000,000 updates; Average concurrent subscribed clients = 2,000 clients; Hours a client stays connected each day = 8 hours; Price per million queries and mutations = 4 USD; Price per million real-time updates = 2 USD; Price per million connection minutes = 0.0800 USD; Enable the AppSync cache = No; Cache price per hour = 0.0440 USD
AppSync Request
cost = operations ÷ 1 M × query price + real-time updates ÷ 1 M × update price + connection minutes ÷ 1 M × minute price + cache hours × cache price.
Subscription connection time
connection minutes = concurrent clients × connected hours per day × 60 × 30.
Estimated Monthly Cost
= 182.30
Query and Mutation Cost
= 80.00
Real-time Update Cost
= 100.00
Connection Minute Cost
= 2.30
Cache Cost
= 0.00
Connection Minutes per Month
= 28,800,000
How it works
AppSync bills three unrelated meters: the operations your clients send, the messages you push out over subscriptions, and the minutes those subscription WebSockets stay open. The push meter counts per client per message, so a single mutation that fans out to 5,000 subscribers is 5,000 billed updates — that multiplication, not the query volume, is what drives real-time GraphQL bills. Confirm the current per-million rates and cache pricing for your region. A mobile app that keeps a subscription open all day generates connection minutes whether the user is looking at it or not, so the subscriber count and session length matter as much to the bill as actual traffic does.
Formulas
AppSync Request
cost = operations ÷ 1 M × query price + real-time updates ÷ 1 M × update price + connection minutes ÷ 1 M × minute price + cache hours × cache price.
- operation
- One query or mutation resolved by the GraphQL endpoint
- real-time update
- One message pushed to one subscribed client
- connection minute
- One client connected for one minute, billed even when idle
Subscription connection time
connection minutes = concurrent clients × connected hours per day × 60 × 30.
Frequently Asked Questions
How is AppSync Request calculated?
cost = operations ÷ 1 M × query price + real-time updates ÷ 1 M × update price + connection minutes ÷ 1 M × minute price + cache hours × cache price. AppSync bills three unrelated meters: the operations your clients send, the messages you push out over subscriptions, and the minutes those subscription WebSockets stay open. The push meter counts per client per message, so a single mutation that fans out to 5,000 subscribers is 5,000 billed updates — that multiplication, not the query volume, is what drives real-time GraphQL bills. Confirm the current per-million rates and cache pricing for your region.
Why does AppSync Request matter?
A mobile app that keeps a subscription open all day generates connection minutes whether the user is looking at it or not, so the subscriber count and session length matter as much to the bill as actual traffic does.
What values do I need to enter?
This calculator takes 9 inputs: Queries and mutations per month, Real-time updates delivered per month, Average concurrent subscribed clients, Hours a client stays connected each day, Price per million queries and mutations, Price per million real-time updates, Price per million connection minutes, Enable the AppSync cache, Cache price per hour. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
How do I reduce subscription costs?
Narrow the fan-out. Use subscription arguments so each client only receives the updates it actually renders, batch rapid changes into a single push, and disconnect subscriptions when the app is backgrounded so connection minutes stop accruing.