Skip to content
Calcrivo

AppSync Request Calculator

Price AppSync GraphQL operations, real-time subscription updates, connection minutes and caching from your client behaviour.

Inputs

operations
updates
clients
hours
USD
USD
USD
USD

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

  1. 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

  2. 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.

  3. Subscription connection time

    connection minutes = concurrent clients × connected hours per day × 60 × 30.

  4. Estimated Monthly Cost

    = 182.30

  5. Query and Mutation Cost

    = 80.00

  6. Real-time Update Cost

    = 100.00

  7. Connection Minute Cost

    = 2.30

  8. Cache Cost

    = 0.00

  9. 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.

You might also need