Azure Free Tier: What's Free, What Expires, and How to Avoid Charges
Azure’s free tier is a genuine way to learn and experiment with cloud services without upfront cost. But it comes with specific limits, expiration dates, and a few traps that catch beginners off guard. This page tells you exactly what’s included, what expires when, and how to stay in control of costs from day one.
The three layers of Azure free
The Azure free account is not a single thing — it has three distinct components that work differently:
Layer 1: The $200 credit (30 days)
When you create a new Azure account, you receive $200 in credits that expire after 30 days (or earlier if you use them all). During this period, you can use almost any Azure service, and the charges come out of the $200 credit rather than your payment method. This is the “try anything” phase.
Key constraints during the credit period: some higher-tier services (GPU VMs, certain managed services) may still be blocked. If a service would cost more than your remaining credit in a single deployment, Azure may prevent the deployment.
Layer 2: 12-month free services
Certain services are free for 12 months from the date of account creation, up to specified monthly limits. These apply even after the $200 credit is exhausted. After 12 months, usage of these services is billed at Pay-As-You-Go rates.
Layer 3: Always-free services
A set of services are always free with no expiration date, up to their monthly limits. These persist after the trial, after the 12-month period, and for as long as you have an Azure account. Usage beyond the monthly limit is billed at standard rates (on a PAYG account).
Always-free services and their limits
These services have no expiration date on their free tier. The limits reset each calendar month.
| Service | Free monthly limit | Good for |
|---|---|---|
| Azure Functions | 1,000,000 executions and 400,000 GB-seconds of execution time | Event-driven workloads, automation scripts, webhooks, API backends with moderate traffic |
| Azure Blob Storage | 5 GB LRS storage (Hot tier) + 20,000 read operations + 10,000 write operations | Static website assets, small file storage, data archiving experiments |
| Azure SQL Database | 100,000 vCore seconds per month (serverless General Purpose) | Small apps, personal projects, demos — approximately 32 hours of continuous usage at 1 vCore |
| Azure App Service | 10 web, mobile, or API apps on F1 (Free) tier (60 CPU minutes/day) | Low-traffic web apps, hobby projects, demos |
| Azure Cosmos DB | 1,000 RU/s and 25 GB storage (free tier account, one per subscription) | NoSQL database for small apps, learning Cosmos DB data models |
| Azure Notification Hubs | 1,000,000 push notifications per month | Mobile app push notification delivery |
| Azure DevOps | 5 users free (Basic plan) + unlimited stakeholders + 1,800 pipeline minutes/month | Source control, CI/CD pipelines, agile boards for small teams |
| Azure Container Registry | 1 registry, 10 GB storage (Basic tier) | Storing Docker images for personal or small team projects |
| Azure Active Directory (Entra ID Free) | 500,000 directory objects, basic SSO for cloud apps | User and group management, basic SSO — always free at this tier |
| Azure Monitor | 5 GB log ingestion/month, 31 days retention, unlimited metrics | Basic monitoring, alerting, and application insights for small workloads |
The Cosmos DB free tier (1,000 RU/s + 25 GB) is one per Azure subscription, not per account. If you create multiple subscriptions, each can have one Cosmos DB free tier instance. The Azure Functions free tier is per subscription per month.
12-month free services (selected)
These are free for the first 12 months from account creation. After that, usage is billed at standard rates.
| Service | Free limit (per month) | After 12 months |
|---|---|---|
| Azure Virtual Machines (B1s Windows) | 750 hours (approximately 1 VM running continuously) | Standard PAYG pricing (~$15/month for B1s Windows) |
| Azure Virtual Machines (B1s Linux) | 750 hours | Standard PAYG pricing (~$8/month for B1s Linux) |
| Azure Managed Disks (P6 SSD) | 2 × 64 GB P6 SSD disks | ~$10.21/disk/month |
| Azure Blob Storage (LRS) | 5 GB (beyond the always-free 5 GB) | $0.018/GB/month Hot LRS |
| Azure Files | 5 GB LRS (standard tier) | $0.06/GB/month |
| Azure SQL Database | 250 GB S0 SQL Database | ~$15/month for S0 tier |
| Azure Bandwidth | 15 GB outbound data transfer | $0.087/GB after first 100GB/month |
What happens when the trial ends
The “trial” in this context means the 30-day period where the $200 credit is active. When that period ends:
- Azure sends you an email notification (and usually portal warnings in the days before).
- Pay-as-you-go services are suspended. Resources that were running on the credit stay provisioned but stop working (no new charges are generated).
- A grace period begins — typically 30 days. During this time, you can upgrade to Pay-As-You-Go to resume services without losing your data or resources.
- After the grace period, if you haven’t upgraded, resources are deleted. This includes data in storage accounts and databases.
The 12-month free services and always-free services continue working throughout this process. They are not affected by the $200 credit period ending.
To upgrade to Pay-As-You-Go, go to the Azure portal → Subscriptions → select your subscription → Upgrade. Your payment method will be charged for usage going forward, and any resources that were suspended during the grace period resume automatically.
The 30-day grace period after the credit expires is real, but do not rely on it to protect your data. If you are storing anything important in Azure during the trial period, either back it up externally or upgrade to PAYG before the trial ends. Microsoft has honored the grace period historically, but it is a policy, not a contract.
Set a billing alert before using any service
Even on a free trial, it is good practice to set a budget alert immediately after creating your account. This habit ensures that when you eventually upgrade to Pay-As-You-Go, you already have monitoring in place.
Step 1: Open the Azure portal and navigate to Cost Management
Log into portal.azure.com. In the search bar at the top, type “Budgets” and select it, or navigate through Cost Management + Billing → Budgets.
Step 2: Create a budget
Click ”+ Add” to create a new budget. Configure:
- Scope: Select your subscription
- Name: Something clear like “monthly-spend-alert”
- Budget amount: Start with a number that would actually alarm you — for a beginner $25 or $50/month is a reasonable ceiling
- Reset period: Monthly
- Expiration date: At least a year out
Step 3: Configure alert conditions
Add two alert conditions:
- 80% of budget — sends an early warning email
- 100% of budget — sends an “at limit” email
Add your email address to the alert recipients for both.
Step 4: Do the same with the Azure CLI
# Log in
az login
# Create the budget via CLI
az consumption budget create \
--budget-name "monthly-spend-alert" \
--amount 25 \
--time-grain Monthly \
--start-date "2026-04-01" \
--end-date "2027-03-31" \
--notifications '[
{
"enabled": true,
"operator": "GreaterThan",
"threshold": 80,
"contactEmails": ["you@example.com"]
},
{
"enabled": true,
"operator": "GreaterThan",
"threshold": 100,
"contactEmails": ["you@example.com"]
}
]'Remember: this alert notifies you but does not stop charges. See how billing works in Azure for a full explanation of why and how to automate a response if needed.
Practical tips for staying within the free tier
These are the most common ways beginners accidentally incur charges while experimenting with Azure:
Choose the right service tier
Many Azure services have a free tier that is disabled by default. When creating an Azure SQL Database, the free serverless tier is not pre-selected — you might land on the General Purpose tier, which costs money. Always check the pricing tier selection when creating any resource and look for a “Free,” “F1,” or “Serverless” option.
Delete resources you’re done with
Even services with free tiers have limits. Running many test resources simultaneously will push you past the limits. When you’re done with an experiment, delete the resource group containing the resources. All resources in the group are deleted together.
# See all resource groups in your subscription
az group list --output table
# Delete a resource group and everything in it
az group delete --name rg-my-experiment --yes --no-waitUse B-series VMs for learning
The B-series (Burstable) VM sizes are designed for workloads with variable CPU usage. They’re cheaper than D-series or E-series VMs and are the tier included in the 12-month free VM offer. For learning and experimentation, a B1s or B2s VM is usually sufficient.
Stop (deallocate) VMs when not in use
On the free trial, the 750-hour B1s VM allotment works out to just over one VM running for an entire month. If you’re running multiple VMs or let one run overnight while not working, you’ll exhaust the 750 hours quickly. Use the VM’s Auto-Shutdown feature or deallocate it manually via the portal when you stop working.
# Deallocate a VM to stop compute charges
az vm deallocate --resource-group rg-learning --name my-test-vm
# Check the power state of all VMs in a resource group
az vm list \
--resource-group rg-learning \
--show-details \
--query "[].{Name:name, State:powerState}" \
--output tableMonitor your credit usage
# Check current balance and usage on a free trial subscription
az billing account list --output table
# View current month's usage summary
az consumption usage list \
--billing-period-name "$(date +%Y%m)" \
--top 20 \
--output tableThe Azure portal home page shows a “Cost” card for your subscription when you’re signed in. Click it to open Cost Management and see a running total of your current month’s spend. Checking this daily while learning Azure is a good habit — it shows you exactly which services are generating costs so you can identify and remove anything you forgot to clean up.
Azure free tier vs AWS and GCP free tiers
All three major clouds offer free tiers, but the structure differs:
| Aspect | Azure | AWS | GCP |
|---|---|---|---|
| Initial credit | $200 for 30 days | No upfront credit (12-month free tier starts immediately) | $300 for 90 days |
| Free virtual machine | 750 hours B1s (12 months) | 750 hours t2.micro/t3.micro (12 months) | 1 e2-micro (always free in specific regions) |
| Always-free compute | Azure Functions: 1M executions/month | AWS Lambda: 1M requests/month | Cloud Functions: 2M invocations/month |
| Always-free database | Cosmos DB: 1,000 RU/s + 25 GB (one per sub) | DynamoDB: 25 GB storage + 25 WCU/RCU | Firestore: 1 GB storage + daily read/write limits |
| Free tier strategy | Credit-first then expire; some always-free | Time-limited (12 months) then always-free subset | Large credit, long window, more always-free services |
GCP’s $300 / 90-day credit is the most generous for pure exploration time. AWS’s free tier has the most mature always-free service selection. Azure’s $200 / 30-day structure gives you less time but enough to evaluate the services you’re interested in.
Common free tier mistakes
- Not upgrading after the credit expires and losing resources. If you’re building something you want to keep, upgrade to Pay-As-You-Go before the 30-day credit period ends. Don’t assume the grace period will protect your data indefinitely — it won’t.
- Selecting a paid tier when a free tier exists. The free tier for services like App Service (F1), Azure SQL Database (serverless free), and Azure Cosmos DB (free tier) is not the default when creating resources. You must actively select it. Creating a Basic or Standard tier by accident means paying immediately.
- Running multiple VMs and exceeding the 750-hour B1s allotment. 750 hours/month sounds like a lot, but that’s one VM running 24/7. Two VMs exhaust the free hours in 15 days. Keep learning experiments to a single VM that you shut down when not using.
- Assuming the always-free tier covers production use. Azure Functions’ 1 million executions/month sounds large, but a production API with modest traffic can easily exceed that. The free tier is designed for learning and small personal projects, not production services. Size your production workloads against actual pricing before launching.
Summary
- The Azure free account has three layers: $200 credit for 30 days, 12-month free services, and always-free services with monthly limits.
- Always-free highlights: Azure Functions (1M executions/month), Blob Storage (5GB), Azure SQL Database (100K vCore-seconds), Cosmos DB (1,000 RU/s + 25GB, one per subscription).
- When the 30-day credit expires, pay-as-you-go services suspend; you have a grace period to upgrade before resources are deleted.
- Budget alerts notify but don’t stop charges — set one immediately and delete experiments when done.
- Always check the pricing tier when creating any resource and look for Free, F1, or Serverless options before accepting a default that costs money.
Frequently asked questions
What do you get with the Azure free account?
A new Azure free account gives you three things: a $200 credit to spend on any Azure service within the first 30 days, free access to a set of services for 12 months (like a B1s virtual machine, 64GB of managed disk, and Azure SQL Database), and a set of services that are always free with no expiration (like Azure Functions up to 1 million executions per month and Azure Blob Storage up to 5GB).
What happens when the Azure free trial ends?
When the 30-day credit period ends (or the $200 is used up), Azure blocks access to pay-as-you-go services and prompts you to upgrade. Your resources are not deleted immediately — they are preserved for a grace period (typically 30 days) while you decide. If you upgrade to Pay-As-You-Go, your resources continue running and billing starts. If you don't upgrade, resources are eventually deleted. The 12-month free services and always-free services continue regardless.
Can you exceed the free tier limits without being charged?
During the initial 30-day free trial period, Azure blocks charges — if you exceed a limit, the service is throttled or suspended rather than billed beyond the $200 credit. After you upgrade to Pay-As-You-Go, usage beyond any free-tier limit is billed at standard rates. The always-free tier limits reset monthly and usage beyond them is billed normally on a PAYG account.