# Azure usage export | Getting your cloud usage data guides
Source: https://greenpixie.com/docs/guides/cloud-usage-data/azure

How to create a Cost Management export of your cloud usage data.

This guide covers creating a recurring daily Cost Management export of your cost and usage details, delivered to an Azure Blob Storage container you own. Create it at the billing-account scope so it covers your whole estate.

Azure has several cost and usage datasets, being &#x2A;*Cost and usage details (actual)**, &#x2A;*Cost and usage details (amortized)**, and &#x2A;*Cost and usage details (FOCUS)**. Greenpixie supports them all.

## Before you start [#before-you-start]

You need:

* Owner or Contributor on the chosen billing scope. For an Enterprise Agreement that is the enrolment, department, account or subscription; for a Microsoft Customer Agreement it is the billing account, billing profile, invoice section or subscription.
* A storage account and container to receive the export. Create them, or use an existing account and container. If you plan to use Greenpixie's cloud usage report enrichment service, this is the same storage you will connect later, so a name that includes your company or team is recommended, for example `abcbillingdata`. See [Connect Azure Blob Storage](/guides/connect-data/azure).

### Delivery requirements [#delivery-requirements]

* Cost Management delivers via a system-assigned managed identity, which Azure grants **Storage Blob Data Contributor** scoped to the target container only, and it requires **Allow trusted Azure services access** enabled on the storage account.
* If policy prohibits the trusted-services exception, for example private-endpoint-only storage, Cost Management exports cannot deliver. You then need a dedicated storage account with an approved exception, so agree the exception with security before scheduling the change.
* Microsoft's prerequisites also require the storage account's **Permitted scope for copy operations** setting to be **From any storage account**. Check the setting if the account is locked down.
* If the storage account has firewall rules, export creation additionally requires Owner on the storage account, or a custom role with `Microsoft.Authorization/roleAssignments/write` and `Microsoft.Authorization/permissions/read`. The elevated permission is needed only when the export is created.
* The storage account must be in the same tenant as the billing scope. Cross-tenant delivery is not supported for firewalled storage.

If usage spans more than one billing account or enrolment, repeat the export setup below for each scope.

## Create the export [#create-the-export]

1. In the Azure portal, open **Cost Management** and select the billing-account scope, or the broadest scope you have been granted.
2. Select **Exports**, then **Create**.
3. Choose **Create your own export** and add an export with the settings below.
4. On the **Destination** tab, select the storage account, container and directory path.
5. Review and create.
6. Backfill historical months by opening the export and using **Export selected dates**, running each month back to the earliest month of history you want, in `YYYY-MM` format. Run one month at a time, up to 13 months.

## Export settings [#export-settings]

| Setting                | Value                                                                                                     |
| ---------------------- | --------------------------------------------------------------------------------------------------------- |
| Type of data           | Cost and usage details, actual, amortized or FOCUS                                                        |
| Dataset version        | Latest                                                                                                    |
| Frequency              | Daily export of month-to-date costs                                                                       |
| Format and compression | Parquet, zstd preferred. The Parquet option uses Snappy, which is accepted, and CSV with gzip also works. |
| File partitioning      | On, always enabled                                                                                        |
| Overwrite data         | On                                                                                                        |
| Destination            | `<storage-account>` / `<destination-container>` / `<directory path>`                                      |

## Required directory structure [#required-directory-structure]

If you will be using Greenpixie's cloud usage report enrichment service, the delivery path must follow one of the accepted shapes below.

#### Customer

The default Cost Management export layout is accepted as-is, so pointing the export at the container connected to Greenpixie's enrichment service, using the settings above, is enough.

```
<destination-container>/<directory>/<export-name>/<YYYYMMDD-YYYYMMDD>/{partition files}
```

Alternatively, if you restructure the data yourself, it must follow the Greenpixie structure exactly.

```
<container_name>/<input|output>/<platform>/<account_id>/<year_month>/{partition files}
```

For this export, use `input` and platform `azure`, with the billing account or subscription ID as `<account_id>`. A resulting path looks like the example below.

```
<destination-container>/input/azure/<billing_account_id>/2026-07/...
```

#### Partner, enriching multiple customers

If you enrich data on behalf of multiple customers, add an `<org_id>` directory above the platform level, and replace `<year_month>` with a `<timestamp>` directory identifying a single upload, in UTC ISO 8601 basic format, `YYYYMMDDTHHMMSSZ`.

```
<container_name>/<input|output>/<org_id>/<platform>/<account_id>/<timestamp>/{partition files}
```

A resulting path looks like the example below.

```
<destination-container>/input/org_12345/azure/<billing_account_id>/20260722T120000Z/...
```

Each upload you mark complete is enriched once, in the nightly check between 01:00 and 04:00 UTC. On-demand runs are available on S3 only; see [Partner trigger](/reference/cur-enrichment/partner-trigger).

## Data and format notes [#data-and-format-notes]

Export **all columns** and keep the full default set. The complete set gives you the most context for later analysis.

The actual, amortized, and FOCUS datasets are all supported.

If you will be using Greenpixie's cloud usage report enrichment service, Parquet with zstd compression is preferred, though Azure's Parquet uses Snappy, which also works, as does CSV with gzip, and no single file should exceed 500 MB. Azure file partitioning is always on and splits large deliveries into smaller files automatically, though the partition size is not a documented 500 MB cap.

## Delivery timing and history [#delivery-timing-and-history]

* Each run delivers partitioned files plus a `manifest.json` describing the parts.
* Once a run starts, data is available within around 4 hours, and a run can take up to 24 hours to complete.
* History beyond the portal's 13 months is available through the Exports REST API, which covers up to 7 years, if you need a longer baseline.

## Check the export worked [#check-the-export-worked]

You should have:

* The export showing as enabled with successful daily runs in run history.
* Partitioned files and a manifest delivered to the agreed container path.
* Historical months exported back to your chosen baseline.
* Parquet files, with zstd preferred, and no single file larger than 500 MB.

To remove the export later, disable or delete it on the Exports page. Nothing else depends on it.

## Next steps [#next-steps]

Once your export is running, you can enrich it with energy, carbon and water metrics in two ways.

- [Connect your data for cloud usage report enrichment](https://greenpixie.com/docs/guides/connect-data): Grant Greenpixie access to your container for managed enrichment.
- [Getting started with the Greenpixie API](https://greenpixie.com/docs/guides/getting-started-api): Enrich the data yourself, in your own environment, using the API.