Build apps for free with Azure Cosmos DB Free Tier
This blog post was co-authored by Nikisha Reyes-Grange, Senior Product Marketing Manager, Azure Marketing.
Introducing Azure Cosmos DB Free Tier
Looking to build a new app, develop and test, or run small production workloads with Azure Cosmos DB? Our new Free Tier makes it easy to get started with no cost and save money as you build and grow new apps.
With Azure Cosmos DB Free Tier enabled, you’ll get the first 400 RU/s throughput and 5 GB storage in your account for free each month, for the lifetime of the account. That means that you can start small and grow with confidence, knowing your app will be running on a high-performance database service. You’ll only pay if your account exceeds 400 RU/s and 5 GB. Additionally, if your app has a lot of containers you can create up to 25 containers in a shared throughput database and have them all share the free 400 RU/s. You can have up to one free tier Azure Cosmos DB account per Azure subscription.
TIP: If you have multiple regions, the 400 RU/s and 5 GB discount apply to just the first region, so if you want to keep your account entirely free, stick to 400 RU/s and 5 GB in a single region.
What can you build with free tier?
We asked members of our developer community for examples of apps with 400 RU/s and 5 GB of storage, and got lots of great examples of apps they’ve built: an Alexa app to help commuters use public transportation, and a web app to easily manage and share lists of online resources. We’ll be highlighting some of these developers and their apps in the coming weeks and months.
Have an app running on less than 400 RU/s throughput and 5 GBs storage? Tell us about it – we’d love to feature you.
Create a new Azure Cosmos DB account and activate free tier during account creation. There is a limit of one free tier account per Azure subscription. Check out our quickstarts and tutorials or try out a sample notebook to see what you can do with Azure Cosmos DB.
See the Azure Cosmos DB pricing page for more details.
Frequently asked questions (FAQ)
Q: Didn’t you already offer free options? What’s new?
A: We have always offered ways to try Azure Cosmos DB for free – as part of Azure Free Account, with a local emulator, and as a 30-day free trial – but those options have been limited in availability and scope. Free Tier is available in perpetuity (maximum of one account per subscription).
Q: How does the Free Tier discount show up on my bill?
A: In Free Tier accounts, you’ll get the first 400 RU/s and 5 GB of storage in your account for free. Any RU/s and storage beyond 400 RU/s and 5 GB will be billed at the regular pricing rates per the pricing page. On the bill, you will not see a charge or line item for the free 400 Ru/s and 5 GB, only the RU/s and storage beyond what is covered by free tier.
Q: Can Free Tier apply to all the Azure Cosmos DB APIs?
Yes, Free Tier works for all Azure Cosmos DB APIs – including Core (SQL), API for MongoDB, Cassandra, and Gremlin.
Q: Can I apply the Free Tier discount to autopilot databases and containers?
A: Yes. With autopilot, you’re billed for the highest RU/s the database or container scales to in the hour. When the free tier discount is applied, 400 RU/s will be subtracted from that value. See our documentation for examples and details.
Q: How does Free Tier discount work if I have an account with multiple regions?
A: In multi-region accounts, the RU/s of the database or container is replicated in all regions. For example, if you have a container with 400 RU/s and the account is in 3 regions, the total RU/s of the account is 1200 RU/s. When the discount is applied, you will be billed for 1200 RU/s – 400 RU/s = 800 RU/s per hour. See our documentation for examples and details.
Q: I already have an account and want to move my data into a Free Tier account. How do I do this?
A: Once your new account is created and activated with Free Tier, moving existing data into your new account is simple. The Data Migration Tool can be used to migrate smaller datasets if you are using our Core (SQL) API. You can also migrate your data with Azure Data Factory connectors for the Azure Cosmos DB Core (SQL) API and Azure Cosmos DB API for MongoDB.
Q: The option to enable Free Tier when creating a new account in the Azure Portal isn’t appearing. Where is the option?
A: You can have up to one Free Tier account in an Azure subscription. If the option doesn’t appear, this means another account in the subscription is already enabled with Free Tier.
Very well written, I like the FAQ section very much !
Awesome! This will help with development and testing.
To clarify, is there anything different about the infrastructure of accounts with free tier, perhaps lesser performance? Will I regret in the future choosing this option for a production workload? I ask because the description implies only new databases can be marked for this tier, not existing ones, which implies free ones go “somewhere else”.
There is zero difference. You will get the same 99.99% availability and same <10ms read/write latency as a normal Cosmos DB account. But because it is free we don't offer an SLA on it.
This is great! A bold move from Azure CosmosDB!
Is there a limit of number of free accounts i can use in a subscription?
Yes, 1 per subscription.
I have created a Cosmos DB Free Tier account but the costs are accumulating; there was no message upon creation indicating that Free Tier was not allowed. Is there a way to tell why this is the case – for instance, if there is some other service created as a free tier in my subscription that disallows a free Cosmos account, is there a way to list such services?
Hi Sam. If no-one else has created a Free Tier account in your subscription then the option shown in the blog post will be available when creating a new account. If it is not available then someone else has used it.
If you are not able to ask others in your subscription who created it, you can look in the ARM logs in the Azure Portal to see who has created a new Cosmos DB account in the last couple of days.
Thank you for your prompt response. I am a one-man dev shop (retired IT guy) doing development with Azure SQL, App Services / Websites, Storage and now Cosmos DB, with an Azure account shared with no one. My single Cosmos DB is the only one present, created yesterday with the Free Tier < apply selection, but my cost is going up each hour. Looking at activity log for resource I cannot see anything unusual. I would not mind paying a bit during development, but I am using Cosmos only several hours a day. Is there a way to deactivate and re-activate the DB to control costs? Please use this note as authorization to review my subscription and resources if such approval is needed (and you have access to this information). If I have some free tier service other than Cosmos in the subscription, does that disallow addition of the Free Tier Cosmos account? Thanks – Sam
Hi Sam. If you keep the RU/s at 400 and storage < 5GB you will not pay anything. You can ignore whatever you see in the portal.
Not sure you need this for the free 400 RU/s account but I did write this utility that is useful to scale databases and containers up and down using a schedule. This is helpful for keeping cost down for workloads where people use it during the day and is completely unused at night. Dev/Test accounts benefit from this but production apps too. https://github.com/Azure-Samples/azure-cosmos-throughput-scheduler
Thanks again. I will disregard the Portal cost figure, but I think other users may have the same concerns, so it would be good (and reduce questions submitted) to either show the actual cost or have some explanatory note. Thanks also for the scheduler script, which I have downloaded but not yet tried to use; hope to later as it is a good reference, nice job. Question I have looking at the resources.json: Is the main (or only) parameter adjusted the RU rate? If so, can this be reduced to say 10 when the DB is not in use, for lower cost? (I will try this tonight but if the answer is simple please let me know). [Suggestion: on portal have a flag indicating if DB is free tier and possibly indicate the max RU actually used, so user can gauge whether the 400 limit is close to being exceeded.]
Thanks for the feedback. The way this works is we credit back the 400 RU/s and storage so not sure if we can reflect this in the portal real-time but will take this as feedback. Thank you!
For your question, minimum RU/s for either a database or container is 400 RU/s. You cannot reduce by any lower than this. However, if you scale a resource up to an extremely large amount you cannot scale it all the way back down again to 400 RU/s. Database and Container resources specify a minimum throughput which you cannot set throughput any lower on. If you look at the PS script in this project I sent you, you will see that the script checks the min throughput and adjusts the throughput to that amount if the user tries to set lower than this.
Thanks for all your feedback and questions. We hope you enjoy using Cosmos DB!
The invoices came out today and low and behold there is a Cosmos charge, so it is a bit hard to disregard what the portal is showing for cost. My bill is really very modest, but I was hoping to utilize the free Cosmos tier. The total bill is $ 9.56, Cosmos $ 4.60 after only a few days, so the cost is accumulating. Can you have someone look into this and determine what is going on – no need for a rebate this month, but it would be nice if it could be corrected by next invoice. Thanks – I do like working with Cosmos DB, but my development pace is so slow I only have a couple dozen accesses per day, nowhere near the limit. Thanks also for your clarification on setting throughput rules.
Hi Sam. I cannot investigate this from our blog comments. You will need to create a support ticket in the Azure Portal for us to take a look.
I am also seeing charges accumulating on the portal, I selected the free tier, and only have that single cosmosdb database under my subscription. Can you confirm these charges can be ignored unless the 400RU/5GB limit is exceeded? Will I have to wait until the next invoice to see if the credit is applied successfully?
Hi Dan. Yes confirmed. The portal does not show the discount. Stay under 400 RU and 5 GB and its free.
I submitted a support request re charges for Free Tier: • Service Request #: 120031224000159; Service Request Title: Cosmos DB Free Tier being Invoiced; Closed Date: 3/12/2020 1:25:15 PM UTC. I had a nice call with representative re being charged for Cosmos DB Free Tier account on 3/9 invoice; he assured me the charges would not continue on next month invoice but the charges are still accumulating (3/16). I have deleted my Cosmos DB account and will rebuild the db if and when this issue can be resolved.
Wow – Just in time! I coincidentally did my first experimentation with Cosmos DB the same day the free tier was announced. Even though the DB would be less than $ 30/mo, that was too much for my developing app (Hopefully once deployed, I can afford to pay!). While the project is still in development, I’m hoping to say more about it soon. It is history-oriented, so I plan to have it presentable on the Ides of March. My initial use of Cosmos DB was most impressive: Never having touched it as of 8:30 am, I had the initial data loaded and my first Node.js program accessing the DB by noon. Best wishes for this important capability on Azure.
I love free stuff!
This isn’t 100% free forever because it requires an Azure subscription which is only free for 30 days, correct?
There is no cost of Azure Subscription, it is the services which you need to pay for. Azure Cosmos DB is a service in Azure which is having free tier, so yes it is free upto the limit mentioned in the article.
Oh really? Because everything I am reading on the signup screen is saying that the subscription is free for a maximum of 12 months.
Btw, I created a free Azure account but I do not see the option to apply the discount in the create Azure Cosmos DB account form. I checked the FAQ and it says that should only happen if I already created a free tier account, but this is the first time I am trying to do so. https://i.imgur.com/Bvpc0jz.png
If you do not see the option shown in our post above then you or someone has already created a free account on this subscription. Maybe ask others. Currently there is no way to visually tell if a Cosmos account is the Free Tier one. We’re looking at making that more visible. For now using Tags in the portal to indicate is an easy way of doing it.
Hi Mark – thank you. Strangely, after trying again, I now see the Apply Free Tier Discount. I am the only one who has access to the account, so maybe it was just a glitch or it wasn’t available to me earlier.
Hello, great news.
Does this free tier also apply to Table API?
Thanks for answer.
Yes, every API for Cosmos DB.
Hey Mark, thanks for reply.
I have some doubts regarding this free tier for table API. I have created one free tier and uploaded few tables.
In Azure cost analysis I can see growing costs for Azure Cosmos DB 100ru/s meter. Also in Overview, in monitoring section there are daily costs shown for throughput.
Why is that?
That happens because the meters on the service are still functioning. The way this works is the discount is applied at the end of the cycle. Keep it at 400 RU/s and 5GB it is free.
If you have questions as to whether you are actually operating within the free tier limits, free to contact support. Billing questions are no charge.
Does the free tier expire in 12 months? I have a paid subscription and saw a free tier option popping up.
Never expires. Free for as long as you have your subscription.