Azure Cosmos DB pricing

Globally distributed, multi-model database service

Start your Azure free account and get a $200 credit for 30 days. Plus now 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 compreshensive 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.

Pricing details

With Azure Cosmos DB, you only pay for provisioned throughput and data stored in a container (e.g., a collection of documents or a table of records or a graph consisting of vertices/edges). Provisoned throughput, billed as Request Units (RU) per second or (RU/s), allows you to read from or write data into containers. Each container is billed on an hourly basis for throughput provisioned in increments of 100 RU/second, with a minimum of 400 RU/second, and data stored (in GBs).

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

Scaling Azure Cosmos DB containers

For high-throughput and high-storage workloads you can create unlimited containers by defining a partition key at container creation. An unlimited container will seamlessly scale out as the quantity of stored data grows and provisioned throughput increases.

Azure Cosmos DB Emulator (free)

Download the free Azure Cosmos DB Emulator 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.

Two ways to try CosmoDB for free.

Try Azure Cosmos DB as a part of Azure Free Account.

Enjoy a time-limited Azure Cosmos DB experience without a subscription, free of charge and commitment via Try Azure Cosmos DB for Free.

Go Planet scale with geo-replication

Azure Cosmos DB database can be globally distributed to help you easily build apps with planet-scale, which means all your data is automatically replicated to the regions you specify. Your app continues to work with a logical endpoint, while your data is automatically served from the region closest to your users with an intuitive programming model for data consistency and high availability. Globally distributed containers are billed based on the storage consumed in each region and throughput provisioned for each Azure Cosmos DB container times the number of regions associated with an Azure Cosmos DB database account. Standard data transfer rates apply for replication data transfer between regions.

High throughput and low latency queries

Azure Cosmos DB enables you to elastically and independently scale throughput and storage on demand and worldwide and guarantees end-to-end low latency at the 99th percentile to its customers. Read and write requests are always served from your local region while data is distributed globally. You can further optimize performance by customizing automatic index behavior.

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.


  • A Request Unit (RU) is the measure of throughput in Azure Cosmos DB. 1 RU corresponds to the throughput of the GET of a 1 KB item. Every operation in Azure Cosmos DB, including reads, writes, SQL queries, and stored procedure executions has a deterministic Request Unit value based on the throughput required to complete the operation. Instead of thinking about CPU, IO, and memory and how they each impact your application throughput, you can think in terms of a single Request Unit measure.

    A Request Unit consumed through Provisioned RUs per second or a one-minute bucket is the same.

    For more information about Request Units and for help determining your container needs, please go here.

  • You're billed based on the provisioned throughput (RU/s) that has been provisioned for your Azure Cosmos DB container based on an hourly rate for the time it was provisioned.

    If you create an 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 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 = $-/hour

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

  • 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 exists, regardless of usage or if the container is active for less than an hour. For example, if you create a container 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.

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

  • To change a collection of S1, S2, or S3 performance tier to a fixed container (collection), see Changing performance levels using the Azure Portal.

    To change an existing fixed container (collection) to an unlimited storage container (collection), see Partitioning and Scaling in Azure Cosmos DB.


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

Free account