Skip Navigation

Azure Cosmos DB pricing

Globally distributed, multi-model database service

Start your Azure free account and get a $200 credit for 30 days, plus get 12 months of free access to Azure Cosmos DB.

Azure Cosmos DB is Microsoft’s globally distributed, multi-model database. Azure Cosmos DB was built from the ground up with global distribution and horizontal scale at its core. It offers turnkey global distribution across any number of Azure regions by transparently scaling and replicating your data wherever your users are. You can elastically scale throughput and storage worldwide, and pay only for the throughput and storage you need. Azure Cosmos DB guarantees single-digit-millisecond latencies at the 99th percentile anywhere in the world, offers multiple well-defined consistency models to fine-tune performance, and guarantees high availability with multi-homing capabilities—all backed by industry leading comprehensive service level agreements (SLAs).

Azure Cosmos DB is truly schema-agnostic—it automatically indexes all the data without requiring you to deal with schema and index management. It is also multi-model, natively supporting document, key-value, graph, and column-family data models. With Azure Cosmos DB, you can access your data using APIs of your choice, as SQL (document), MongoDB (document), Azure Table Storage (key-value), Gremlin (graph), and Cassandra (column-family) are all natively supported.

Azure Cosmos DB capabilities
Turn Key global distribution with multi-master capability Available
Global Availability - all Azure regions, including US Government Available
Multi-model, rich query and automatic indexing with multiple API support

(support for document, key-value, wide-column, and graph model
including Mongo DB and Apache Cassandra API combability)

Available
Single digit millisecond read and write requests at 99th percentile backed by SLA Available
Comprehensive SLAs
  • Availability SLA
  • Throughput SLA
  • Consistency SLA
  • Latency SLA
Available
Security
  • End-to-End Data encryption (at-rest and in-motion)
  • IP and VNET isolation
  • Access control and authorization
Available
Elastic and Limitless Scale
  • No limit on throughput and storage
  • Instant scaling that lowers TCO over on-prem and self-managed cloud NoSQL databases
Available
Comprehensive compliance certifications consistent with Azure compliance Available

Pricing at a glance

Provisioned Throughput

Your Azure Cosmos DB database account is designed to be distributed across one or more Azure regions. While all the regions associated with your database account can serve reads, your database account can also be configured to have all regions to process the writes (multi-master) or exactly one region to process the writes (single-master).

In Azure Cosmos DB, you are billed for the provisioned throughput and consumed storage by the hour. The throughput is expressed in terms of a normalized throughput currency called Request Units per second (RU/s). Once provisioned, RU/s can be used interchangeably across various database operations (e.g., inserts, reads, replaces, upserts, deletes, queries, etc.). You can programmatically (or via Azure Portal) configure the throughput you need and elastically scale the throughput in increments of 100 RU/s.

Provisioning at different granularities

You can provision throughput at different granularities You can provision throughput for:

  1. Cosmos DB container. Depending on the choice of data model or API, a Cosmos DB container can be a collection (e.g., MongoDB, SQL), a graph (e.g., Gremlin), or a table (e.g., Cassandra, Azure Table storage). Containers in Cosmos DB are horizontally partitioned and can elastically scale to deliver unlimited amount of throughput and storage.
  2. Cosmos DB database. The throughput configured on the database is shared across all the containers of the database. You can choose to explicitly exclude certain containers from database provisioning and instead provision throughput for those containers at container level.
Granularity of provisioning Minimum throughput (RU/s) Scale up/down increments (RU/s) Maximum throughput Scope
Single region write Multiple region write Single region write Multiple region write
Container* 400 400 100 100 Unlimited The partitioned container for which the throughput is provisioned
Database** 10K 10K 1,000 1,000 Unlimited All the throughput is shared among all the partitioned-containers within the database (excluding the containers for which the throughput is explicitly provisioned for)

* A Cosmos DB container maps to the following: a Cosmos DB collection while using SQL API, a MongoDB collection while using MongoDB API, a table while using Cassandra or Table storage APIs, or a graph while using Gremlin API.

** A Cosmos DB database maps to the following: a database while using SQL or MongoDB APIs, a keyspace while using Cassandra API or a database account while using Gremlin or Table storage APIs.

Elastically scaling reads and writes across the globe

You can add/remove Azure regions anywhere in the world to your Cosmos DB database account at any time. The throughput that you have configured for various Cosmos DB databases and containers is guaranteed to be reserved in each of the Azure regions associated with your Cosmos DB database account.

SSD-backed storage

Your data and index are durably stored on the SSD-backed storage and replicated (across one or more Azure regions associated with your Cosmos DB database account). In addition to the throughput that you provision every hour, you are also billed for each GB of storage that you actually consume for your data and index.

Pricing details

Unit Price
SSD Storage (per GB) $- GB/month
Reserved RUs/second (per 100 RUs, 400 RUs minimum) $-
Provisioned Throughput (multiple write regions) - 100 RU/sec $-
Standard data transfer rates apply. Monthly price estimates are based on 730 hours per month.

Azure Cosmos DB reserved capacity for additional savings

Reserved capacity based pricing of Cosmos DB offers even more cost savings (up to 65% discount), provides even more stringent availability SLAs (beyond the 99.999) and eases the burden of capacity planning away from you. For a one-time upfront fee, you can reserve provisioned throughput for one or three years at a significant discount. Any throughput that you provision in excess of your reserved capacity is billed at standard provisioned throughput rates. Reserved capacity can be shared for throughput provisioned across all regions, all APIs, all accounts and all subscriptions under a given enrollment. Minimum reserved capacity is 20K RU/s. For more information, see documentation page

1 Year Reservation 3 Year Reservation
Throughput Single region write Multiple region write Single region write Multiple region write
Price/Savings Price per 100 RU/s
(savings over PAYG)
Price per 100 RU/s
(savings over PAYG)
Price per 100 RU/s
(savings over PAYG)
Price per 100 RU/s
(savings over PAYG)
First 50K RU/s $- $- $- $- $- $- $- $-
Next 450k RU/s $- $- $- $- $- $- $- $-
Next 2.5M RU/s $- $- $- $- $- $- $- $-
Over 3M RU/s $- $- $- $- $- $- $- $-

Try Azure Cosmos DB for Free

  • Azure Cosmos DB Local (Downloadable Version): Download the free Azure Cosmos DB Local to develop and test applications using Azure Cosmos DB from your local machine. Once you’re satisfied with how your application works, you can deploy it by just changing your configuration to point to an Azure Cosmos DB instance in the cloud.
  • Azure Free Account: Try Azure Cosmos DB as a part of Azure Free Account.
  • Try Azure Cosmos DB for Free: Enjoy a time-limited, globally distributed Azure Cosmos DB experience without a subscription, free of charge and commitment via Try Azure Cosmos DB for Free.
  • Learn more about TCO savings with Cosmos DB over on-prem and self-managed NoSQL clusters in the cloud.

Where do I learn about the regional presence of Azure Cosmos DB?

Azure Cosmos DB is available in all Azure regions including public, government, and DoD clouds. To learn more, please visit the Azure services availability by region page.

Support & SLA

  • We provide technical support for all Azure services released to General Availability, including Azure Cosmos DB, through Azure Support, starting at $29/month. Billing and subscription management support is provided at no cost.
  • SLA—We guarantee at least 99.99% availability for single-region databases and 99.999% availability for multi-region databases to successfully process requests and perform operations in Azure Cosmos DB. To learn more about our SLA, please visit the SLA page.

FAQ

  • In Azure Cosmos DB, provisioned throughput is specified in terms of request units per second. You can think of request units as throughput currency, whereby you reserve an amount of guaranteed resources (memory, CPU, IOPS) available to your application on per second basis. Each operation in Azure Cosmos DB – write, read, update, query - consumes CPU, memory, and IOPS. That is, each operation consumes resources, which is expressed in request units. Please visit Request Units in Azure Cosmos DB page.

  • You're billed based on the provisioned throughput (RU/s) that has been provisioned for your Azure Cosmos DB container or a set of containers (e.g. database) based on an hourly rate for the time it was provisioned.

    Provisioned throughput for an individual container:

    If you create an Azure Cosmos DB database account in East US 2 with two containers with provisioned throughput of 500 RU/s and 700 RU/s, respectively, you would have a total provisioned throughput of 1,200 RU/s. You would thus be charged 12 x $- = $-/hour.

    If your throughput needs changed, and you’ve increased each container’s capacity by 500 RU/s while also creating a new unlimited container using 20,000 RU/s, your overall provisioned capacity would be 22,200 RU/s (1,000 RU/s + 1,200 RU/s + 20,000RU/s). Your bill would then change to: $- x 222 = $-/hour.

    In a month of 720 hours, if for 500 hours provisioned throughput was 1,200 RU/s and for the remaining 220 hours provisioned throughput was 22,200 RU/s, your monthly bill will show: 500 x $-/hour + 220 x $-/hour = $-/month.

    Provisioned throughput for a set of containers:

    If you create an account in East US 2 with two Cosmos DB databases (with a set of collections under each) with provisioned throughput of 50K RU/s and 70K RU/s, respectively, you would have a total provisioned throughput of 120K RU/s. You would thus be charged 1200 x $- = $-/hour.

    If your throughput needs changed and you increased each database’s provisioned throughput by 10K RU/s each, your overall provisioned capacity would be 140K RU/s (60K RU/s + 80K RU/s). Your bill would then change to: 1400 * $- = $-/hour.

    In a month of 720 hours, if for 500 hours provisioned throughput was 120K RU/s and for the remaining 220 hours provisioned throughput was 140K RU/s, your monthly bill will show: 500 x $-/hour + 220 x $-/hour = $- + $- = $-/month.

  • When you choose to make containers span across geographic regions, you are billed for the throughput and storage for each container in every region and the data transfer between regions. As an example, let’s assume you have a container in West US provisioned with throughput 10K RU/s and store 1TB of data this month. Let’s assume you add 3 regions - East US, North Europe, and East Asia, each with the same storage and throughput. Your total monthly bill will be (assuming 31 days in a month):

    Item Usage (Month) Rate Monthly Cost
    Throughput bill for container in West US 10K RU/s * 24 * 31 $- per 100 RU/s per hour $-
    Throughput bill for 3 additional regions - East US, North Europe, and East Asia 3 * 10K RU/s * 24 * 31 $- per 100 RU/s per hour $-
    Storage bill for container in West US 1 TB $-/GB $-
    Storage bill for 3 additional regions - East US, North Europe, and East Asia 3 * 1TB $-/GB $-
    Total $-

    Let’s also assume that you egress 100GB of data every month from the container in West US to replicate data into East US, North Europe and East Asia. You are billed for egress as per data transfer rates.

  • When you choose to operate containers that span across geographic regions, you are billed for the throughput and storage for each container in every region and the data transfer between regions. You will be billed for regular Request Units if your container or database is provisioned for a single write region. Alternately, you will be billed for multi-master request units, if you provision multiple write regions for your containers or database. Whether its single write region, or multiple write regions, Cosmos DB allows you to read data from any region.

    Single region write

    As an example, let’s assume you have a container in West US provisioned with throughput 10K RU/s and store 1TB of data this month. You choose to write only to the container in US West. Let’s assume you add 3 regions - East US, North Europe, and East Asia, each with the same storage and throughput. Your total monthly bill will be (assuming 31 days in a month):

    Item Usage (Month) Rate Monthly Cost
    Throughput bill for container in West US 10K RU/s * 24 * 31 $- per 100 RU/s per hour $-
    Throughput bill for 3 additional regions - East US, North Europe, and East Asia 3 * 10K RU/s * 24 * 31 $- per 100 RU/s per hour $-
    Storage bill for container in West US 1 TB $-/GB $-
    Storage bill for 3 additional regions - East US, North Europe, and East Asia 3 * 1TB $-/GB $-
    Total $-

    Multiple region write

    As an example, let’s assume you have a container in West US provisioned with throughput 10K RU/s and store 1TB of data this month. Let’s assume you add 3 regions - East US, North Europe, and East Asia, each with the same storage and throughput and you want the ability to write to the containers in all four regions from your globally distributed app. Your total monthly bill will be (assuming 31 days in a month):

    Item Usage (Month) Rate Monthly Cost
    Throughput bill for container in West US 10K RU/s * 24 * 31 $- per 100 RU/s per hour $-
    Throughput bill for 3 additional regions - East US, North Europe, and East Asia 3 * 10K RU/s * 24 * 31 $- per 100 RU/s per hour $-
    Storage bill for container in West US 1 TB $-/GB $-
    Storage bill for 3 additional regions - East US, North Europe, and East Asia 3 * 1TB $-/GB $-
    Total $-

    For the two above examples, let’s also assume that you egress 100GB of data every month from the container in West US to replicate data into East US, North Europe and East Asia. You are billed for egress as per data transfer rates. See the Cosmos DB FAQ in documentation.

  • Storage capacity is billed in units of the maximum hourly amount of data stored, in GB, over a monthly period. For example, if you utilized 100 GB of storage for half of the month and 50 GB for the second half of the month, you would be billed for an equivalent of 75 GB of storage during that month.

  • You're billed the flat rate for each hour the container or database exists, regardless of usage or if the container or database is active for less than an hour. For example, if you create a container or database and delete it 5 minutes later, your bill will reflect a 1 hour.

  • If you increase provisioned throughput at 9:30 AM from 400 RU/s to 1,000 RU/s and then lower provisioned throughput at 10:45 AM back to 400 RU/s, you will be charged for two hours of 1,000 RU/s.

    If you increase provisioned throughput for a container or a set of containers at 9:30 AM from 100K RU/s to 200K RU/s and then lower provisioned throughput at 10:45 AM back to 100K RU/s, you will be charged for two hours of 200K RU/s.

  • You can scale up or scale down the number of Request Units for each container within your Azure Cosmos DB account by using the Azure Portal, one of the supported SDKs, or the REST API.

  • We always recommend using “Unlimited” containers to achieve unlimited scale and flexibility. Unlimited containers are horizontally partitioned and Azure Cosmos DB elastically, transparently and automatically allows you to scale throughput and storage for unlimited containers. “Fixed” containers can only scale-up to 10K RUs and offer a maximum of 10GB SSD storage. Finally, you cannot share throughput among a set of “Fixed” containers.
  • For best performance and optimized storage follow the guidelines described here.
  • Using reserved capacity, you can purchase provisioned throughput for Cosmos DB (running across any Azure regions) for 1-year or 3-years in exchange for a discount. Reserved capacity is purchased in fixed amounts, with minimum being 20K RU/s. If the total provisioned capacity for a given hour is lower than the reserved capacity purchased, you will not be billed for anything else. If provisioned capacity for any hour exceeds the reserved capacity purchased for that hour, the difference will be billed at regular rates.
  • Cosmos DB reserved capacity enables you make a purchase that can be shared across all Cosmos DB databases and containers (for any API or data model) across all Azure regions. Because provisioned throughput price varies per region, it helps to think of reserved capacity as a monetary credit that you’ve purchased at a discount, that can be drawn from for the throughput provisioned at respective price in each region. For example, let’s say you have a database account with a single container with 50 throughput provisioned each, distributed across East US and Japan East. If you choose the PAYG option, you would pay 50K RU/s at $0.008 per RU/s in East US, and 50K RU/s at $0.009 per RU/s in Japan East. Your total bill would be:

    Example: Billing without reserved capacity
    Region Price per 100 RU/s per hour Units (RU/s) Billed Amount (hourly) Billed Amount (monthly)
    East US $0.008 50K $4 $2920
    Japan East $0.009 50K $4.5 $3285
    Net Bill $8.5 $6205

    Let’s say, for example, you choose to purchase reserved capacity instead. You can purchase reserved capacity for 100K RU/s at the price of $59568 for 1 year, or $6.8 per hour. What you effectively purchased is a monetary credit of $8 per hour (100K RU/s using the list RU/s price in East US) at the price of $6.8 per hour (15% discount). You can then draw down from this pre-paid usage on an hourly basis for the provisioned throughput capacity in any public Azure region at the respective regional list prices set for your subscription. In this example, where you provision 50K RU/s each in East US, and Japan East, you will be able to draw $8 worth of provisioned throughput per hour, and will be billed the overage of $0.5 per hour (or $365/month).

    Example: Billing without reserved capacity
    Region Price per 100 RU/s per hour Units (RU/s) Billed Amount (hourly) Billed Amount (monthly)
    East US $0.008 50K $4 $2920
    Japan East $0.009 50K $4.5 $3285
    Usage $8.5 $6205
    Reserved Capacity Purchased $0.0068 (15% discount) 100 (RU/s) or $8 capacity pre-purchased -$8 -$5840
    Net Bill $0.5 $365

Resources

Estimate your monthly costs for Azure services

Review Azure pricing frequently asked questions

Learn more about Azure Cosmos DB

Review technical tutorials, videos, and more resources

Added to estimate. Press 'v' to view on calculator View on calculator

Learn and build with $200 in credit, and keep going for free