---
id: object/codeunit/7785
type: object
title: Codeunit 7785 "Copilot Quota"
summary: Codeunit 7785 "Copilot Quota" in System Application (System.AI). 5 public procedures. Introduced in BC26, still in BC30, changed in BC27-28.
tier: official
language: en
tags:
  - codeunit
  - system application
versions:
  introduced: "26"
  last_changed: "28"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 0f1344bc10f264522c9b4a5c0cb0bc63a6c21b183c9e8525150b17505d50b286
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/AI/src/Copilot/CopilotQuota.Codeunit.al
    title: src/System Application/App/AI/src/Copilot/CopilotQuota.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/12428
object_type: codeunit
object_id: 7785
name: Copilot Quota
namespace: System.AI
app: System Application
extends: null
first_version: "26"
last_version: "30"
present_in:
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "27"
  - "28"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 5
  events: 0
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 1
  called_by: 4
  implements: 0
---

# Codeunit 7785 "Copilot Quota"

> Codeunit 7785 "Copilot Quota" in System Application (System.AI). 5 public procedures. Introduced in BC26, still in BC30, changed in BC27-28.

System Application · System.AI · BC26-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/AI/src/Copilot/CopilotQuota.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Access | Public |

## Procedures

- `TryLogQuotaUsage(CopilotCapability: Enum "Copilot Capability"; Usage: Integer; CopilotQuotaUsageType: Enum "Copilot Quota Usage Type")`: Try function to log usage of Copilot quota in the system. This function is only available for Microsoft Copilot features.
- `LogAgentUserAIConsumption(CopilotCapability: Enum "Copilot Capability"; Usage: Integer; CopilotQuotaUsageType: Enum "Copilot Quota Usage Type"; AgentTaskID: BigInteger; ActionsCharged: Text[1024]; Description: Text; UniqueID: Text[1024])`: Log usage of Agent functionality. This function is only available for Microsoft Agents. Function will call the platform to log the usage of the agents. Charging will be handled by the platform afterwards.
- `LogAgentUserAIConsumption(CopilotCapability: Enum "Copilot Capability"; Usage: Integer; CopilotQuotaUsageType: Enum "Copilot Quota Usage Type"; AgentTaskID: BigInteger; ActionsCharged: Text[1024]; Description: Text; UniqueID: Text[1024]; ExcludeFromBilling: Boolean)`: Log usage of Agent functionality. This function is only available for Microsoft Agents. Function will call the platform to log the usage of the agents. Charging will be handled by the platform afterwards.
- `IsAgentUserAIConsumptionLogged(UniqueID: Text[1024]): Boolean`: Checks if the Agent usage with the given UniqueID has already been logged.
- `CanConsume(): Boolean`: Checks if the tenant is allowed to consume Copilot quota.

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 7786 "Copilot Quota Impl."](../codeunit/7786.md) (4 calls: `CanConsume → CanConsume`, `IsAgentUserAIConsumptionLogged → IsAgentUserAIConsumptionLogged`, `LogAgentUserAIConsumption → LogAgentUserAIConsumption`, …)

## Called by

- [Codeunit 6969 "Expense Consumption Handler"](../codeunit/6969.md) (3 calls: `CanConsume → CanConsume`, `LogAIConsumption → IsAgentUserAIConsumptionLogged`, `LogAIConsumption → LogAgentUserAIConsumption`)
- [Codeunit 3311 "PA Billing"](../codeunit/3311.md) (2 calls: `LogPATrackingRecord → IsAgentUserAIConsumptionLogged`, `LogPATrackingRecord → LogAgentUserAIConsumption`)
- [Codeunit 4590 "SOA Billing"](../codeunit/4590.md) (2 calls: `LogSOATrackingRecord → IsAgentUserAIConsumptionLogged`, `LogSOATrackingRecord → LogAgentUserAIConsumption`)
- [Codeunit 4586 "SOA Dispatcher"](../codeunit/4586.md) (1 call: `RunSOAgent → CanConsume`)

## Recent changes

- 2026-10-07 [#12428 Add Copilot feature trial interface](../../changes/bcapps/12428.md) (main, BC30, feature, renamed)

## Across versions

- Present in: BC26-30
- Changed (declaration) in: BC27-28

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "codeunit", object_name: "Copilot Quota")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
