|
| 1 | +--- |
| 2 | +title: Microsoft Discovery billing overview |
| 3 | +description: Learn about the Microsoft Discovery pricing and billing model, including what counts as a User Message, which operations are billable, and how charges appear in Azure. |
| 4 | +author: DaveMuhich |
| 5 | +ms.author: damuhic |
| 6 | +ms.service: azure |
| 7 | +ms.topic: concept-article |
| 8 | +ms.date: 04/17/2026 |
| 9 | + |
| 10 | +#CustomerIntent: As a platform administrator or researcher, I want to understand how Microsoft Discovery billing works so that I can estimate costs and manage usage within my Azure subscription. |
| 11 | +--- |
| 12 | + |
| 13 | +# Microsoft Discovery billing overview |
| 14 | + |
| 15 | +Microsoft Discovery uses a billing model with two components: |
| 16 | + |
| 17 | +- **Usage-based** billing for the underlying compute and storage Azure resources associated with your workspace and projects. |
| 18 | +- **Message-based** billing for agent-driven runtime operations, tracked as *User Messages*. |
| 19 | + |
| 20 | +This model lets you pay only for what you use and track spending with precision through Azure. |
| 21 | + |
| 22 | +## What is a User Message? |
| 23 | + |
| 24 | +A **User Message** is the unit of billing for Microsoft Discovery runtime usage. One User Message is counted for each billable operation - any action that creates, updates, deletes, runs, submits, or cancels work. Discovery aggregates these totals by the hour. |
| 25 | + |
| 26 | +Read-only calls such as GET, list, status checks, and log retrieval are **not** billed. Billing covers **runtime (data-plane) usage** only, not resource management (control-plane) operations. |
| 27 | + |
| 28 | +> [!NOTE] |
| 29 | +> For billing calculations, treat each User Message as equivalent to 10 backend operations. Use this conversion when estimating usage or reconciling message-based charges with operation-based meters. |
| 30 | +> |
| 31 | +> **Example:** 1 message = 10 backend operations. At $0.20 per message, 100 messages = $20.00. |
| 32 | +
|
| 33 | +## Billable and non-billable operations |
| 34 | + |
| 35 | +Each User Message is billed at $0.20 (adjusted to your local currency). The following table shows which operations are billable: |
| 36 | + |
| 37 | +| Operation | Billable? | |
| 38 | +|---|---| |
| 39 | +| Create, update, or delete an investigation (PUT / PATCH / DELETE `/projects/{projectName}/investigations/{investigationName}`) | Yes | |
| 40 | +| Create a conversation (POST `/conversations`) | Yes | |
| 41 | +| Update a conversation (PATCH `/conversations/{name}`) | Yes | |
| 42 | +| Send a message (POST `/conversations/{name}/messages`) | Yes | |
| 43 | +| Submit user input (`/messages/{name}:submitUserInput`) | Yes | |
| 44 | +| Cancel an operation (`...:cancel`) | Yes | |
| 45 | +| Submit a job (POST `/tools/projects/{projectName}:run`) | Yes | |
| 46 | +| Cancel a job (POST `/tools/projects/{projectName}/operations/{operationId}:cancel`) | Yes | |
| 47 | +| List conversations or messages (GET `...`) | No | |
| 48 | +| Check operation status or logs (GET `.../operations/{id}`, GET `.../logs`) | No | |
| 49 | + |
| 50 | +The same pattern applies to Knowledge Bases: create, update, delete, and run operations are billable; get, list, and status operations aren't. |
| 51 | + |
| 52 | +> [!NOTE] |
| 53 | +> For jobs running on the Microsoft Discovery Supercomputer, you're billed for the act of submitting the job, not for the duration or compute consumed. Underlying compute and storage resources is billed separately in Azure. |
| 54 | +
|
| 55 | +### Example conversation flow and billing events |
| 56 | + |
| 57 | +The following example shows a typical investigation session and which steps generate billable events: |
| 58 | + |
| 59 | +| User prompt | Backend API (typical) | Billable | User Messages | |
| 60 | +|---|---|---|---| |
| 61 | +| "Create a new investigation 'tumorclassifierv2' in project 'genomics'" | PUT `/projects/{projectName}/investigations/{investigationName}` | Yes | 0.1 | |
| 62 | +| "Start a conversation for this investigation called 'featureSearch'" | POST `/conversations` | Yes | 0.1 | |
| 63 | +| "Run feature selection on Cohort A for the top 50 genes." | POST `/conversations/{name}/messages` and POST `/tools/projects/{projectName}:run` | Yes | 0.2 | |
| 64 | +| "What's the status?" | GET `/tools/projects/{projectName}/operations/{operationId}` | No | 0 | |
| 65 | +| "Cancel that run." | POST `/tools/projects/{projectName}/operations/{operationId}:cancel` | Yes | 0.1 | |
| 66 | +| "Use LASSO with alpha 0.1 instead; go ahead." | POST `/conversations/{name}/messages/{messageName}:submitUserInput` | Yes | 0.1 | |
| 67 | +| "Show me the logs for the latest message." | GET `/conversations/{name}/messages/{messageName}/logs` | No | 0 | |
| 68 | +| "Update the investigation description to 'CohortA FS with LASSO alpha 0.1'" | PATCH `/projects/{projectName}/investigations/{investigationName}` | Yes | 0.1 | |
| 69 | +| "List my investigations." | GET `/projects/{projectName}/investigations` | No | 0 | |
| 70 | +| "Delete the 'tumorclassifierv2' investigation." | DELETE `/projects/{projectName}/investigations/{investigationName}` | Yes | 0.1 | |
| 71 | + |
| 72 | +**Session totals:** 8 billable events (0.8 User Messages), 3 non-billable read events. |
| 73 | + |
| 74 | +## How charges appear on your bill |
| 75 | + |
| 76 | +Each billable action is tied to the Azure resource you're working with, such as your Discovery project or Bookshelf. That resource's Azure subscription receives the charge. |
| 77 | + |
| 78 | +The billing unit is **Microsoft Discovery - User Messages**. Pricing is set per region. |
| 79 | + |
| 80 | +**Rough order of magnitude estimate:** |
| 81 | + |
| 82 | +Estimated cost ≈ (number of billable actions) × (price per User Message in your region) |
| 83 | + |
| 84 | +To review your actual spend, an Azure subscription owner can open **Cost Management + Billing** in the Azure portal and filter to the relevant Microsoft Discovery resource. |
| 85 | + |
| 86 | +## Frequently asked questions |
| 87 | + |
| 88 | +**Do GET requests ever incur charges?** |
| 89 | +No. Read, list, status, and log operations aren't billed. |
| 90 | + |
| 91 | +**Do failed actions get billed?** |
| 92 | +The goal is to bill only succeeded actions. Services verify resource state before recording usage. |
| 93 | + |
| 94 | +**Are underlying Azure resources billed separately?** |
| 95 | +Yes. Azure resources you deploy, such as compute and storage are billed in Azure as usual. Microsoft Discovery billing covers only API runtime usage (User Messages). |
| 96 | + |
| 97 | +## Tips to manage usage |
| 98 | + |
| 99 | +- Submit or run only when you intend to change or execute something. |
| 100 | +- Combine steps where possible - fewer create, update, and run calls result in fewer billable messages. |
| 101 | +- Use read-only GET calls to browse or check status; they're not billed. |
| 102 | + |
| 103 | +## Related service pricing |
| 104 | + |
| 105 | +| Service | Pricing details | |
| 106 | +|---|---| |
| 107 | +| **Microsoft Foundry** | [Save costs with Microsoft Foundry Provisioned Throughput Reservations](/azure/cost-management-billing/reservations/microsoft-foundry) | |
| 108 | +| **Azure Storage** | [Plan and manage costs for Azure Blob Storage](/azure/storage/common/storage-plan-manage-costs) | |
| 109 | + |
| 110 | +## Related content |
| 111 | + |
| 112 | +- [What is Microsoft Discovery?](overview-what-is-microsoft-discovery.md) |
| 113 | +- [Service architecture overview](overview-service-architecture.md) |
| 114 | +- [Projects and investigations](concept-projects-investigations.md) |
0 commit comments