> For the complete documentation index, see [llms.txt](https://docs.maiagent.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.maiagent.ai/maiagent-user-guide/en/others/credits/member-credit-quota.md).

# Member Credits Quota Management

Set a personal Credits spending cap (quota) for each member; members can check their remaining quota under "Usage & Quota" in MaiGPT.

Organization administrators can set a **personal Credits spending cap (Quota)** and a **validity period** for each member, making usage costs during events or specific projects transparent and controllable.

{% hint style="info" %}
**Only available for organizations using the Credits billing system.** If your organization has not yet switched to the Credits system, this feature is not displayed. See [Credits Billing System](/maiagent-user-guide/en/others/credits.md) for details. In addition to member quotas, you can also control costs by conversation platform. See [Conversation Platform Credits Quota Management](/maiagent-user-guide/en/others/credits/inbox-credit-quota.md).
{% endhint %}

## Core Concept <a href="#core-concept" id="core-concept"></a>

**A Quota is a spending ceiling, not a pre-funded sub-wallet.**

The organization's Credits wallet remains the sole funding pool. A Quota only limits the maximum number of Credits a given member can spend from the organization wallet. Distributing a Quota does not affect the organization balance, and a Quota expiring does not affect the balance either — there is no concept of "returning" Credits.

## Use Cases <a href="#use-cases" id="use-cases"></a>

* An enterprise hosts an event and grants external users access to the platform, and needs to control the spending cap per person
* Different departments set different personal quotas according to their budgets
* Limit a specific account's usage during its validity period, with automatic enforcement after it expires

***

## Administrator Operations <a href="#admin-operations" id="admin-operations"></a>

### Accessing the Quota Allocation Page <a href="#enter-quota-tab" id="enter-quota-tab"></a>

1. Click <mark style="color:blue;">**Organization Settings**</mark> in the left menu
2. Click <mark style="color:blue;">**Credits**</mark>
3. Switch to the <mark style="color:blue;">**Quota Allocation**</mark> tab

The page displays the quota status of all members, including summary cards (All Members, Allocated, Expired, Unallocated) and progress bars.

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-17de094b0b88064e1930eb9edda4a29ebe441112%2Fquota-tab-overview.png?alt=media" alt="Quota Allocation page overview"><figcaption><p>Quota Allocation tab: summary cards and member list</p></figcaption></figure>

### Distribute Quota <a href="#assign-quota" id="assign-quota"></a>

1. Click the <mark style="color:blue;">**Distribute Quota**</mark> button in the upper right corner
2. Enter the member's name or email in the search box to find the target member
3. Enter the **Credits cap** (spending ceiling)
4. Select the **validity period** (you can set an expiration date or choose permanent) and the **reset period**
5. Click <mark style="color:blue;">**Confirm**</mark> to complete the distribution

{% hint style="info" %}
Each member can have only one active quota at a time. For a member who already has an active quota, use "Edit" to adjust it directly, or disable it first and then distribute a new one.
{% endhint %}

### New Member Default Quota <a href="#new-member-default-quota" id="new-member-default-quota"></a>

Between the moment a member joins and the moment an administrator manually distributes a quota, a new member can spend the organization wallet freely if there are no restrictions. Set a <mark style="color:blue;">**New Member Default Quota**</mark> once, and **no matter which entry point a member joins through** (email invitation, invitation link, direct addition, bulk import, directory sync such as LDAP/SCIM, or first SSO login), the new member automatically receives a personal quota at the moment they join.

{% stepper %}
{% step %}
On the <mark style="color:blue;">**Quota Allocation**</mark> tab, click <mark style="color:blue;">**New Member Default Quota**</mark> (to the left of <mark style="color:blue;">**Alert Settings**</mark>)

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-77b06df36662b06966bbc1361304f54f9b5f4015%2Fcredits-default-member-quota-overview.png?alt=media" alt="New member default quota banner and toolbar button at the top of the Member Quotas subtab"><figcaption><p>Member Quotas subtab: the banner at the top shows the current setting, and the "New Member Default Quota" button is to the left of "Alert Settings"</p></figcaption></figure>
{% endstep %}

{% step %}
Turn on <mark style="color:blue;">**Enable New Member Default Quota**</mark>, enter the **quota cap**, and select the **validity period** (<mark style="color:blue;">**Permanent**</mark> or <mark style="color:blue;">**Expires N days after joining**</mark>, where N is an integer from 1 to 3650) and the **reset period** (No reset / Daily / Weekly / Monthly). The note defaults to "Organization default (automatically distributed to new members)"

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-1a25e2f6093877ee64a55ff594daf67985713847%2Fcredits-default-new-member-quota-modal-on.png?alt=media" alt="New member default quota dialog: enable toggle, quota cap, validity period, reset period"><figcaption><p>After turning on "Enable New Member Default Quota," the quota cap, validity period, reset period, and note are displayed</p></figcaption></figure>
{% endstep %}

{% step %}
If needed, turn on <mark style="color:blue;">**Block usage until a quota is distributed**</mark> (at the bottom of the dialog; scroll down to see it): new members who have not received a quota cannot consume Credits until an administrator manually distributes one. This toggle is independent of the default quota toggle, so you can turn on just one of them

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-f000d4fede4b30190f6c35720383876b8d6f223a%2Fcredits-default-new-member-quota-modal-require.png?alt=media" alt="Block usage until a quota is distributed toggle at the bottom of the new member default quota dialog"><figcaption><p>The "Block usage until a quota is distributed" toggle at the bottom of the dialog</p></figcaption></figure>
{% endstep %}

{% step %}
Click <mark style="color:blue;">**Confirm**</mark>. The screen shows "Settings updated," and the banner at the top of the tab displays a summary of the current setting, for example "New member default quota enabled: 500 Credits · Expires 30 days after joining · Reset period: Monthly." If "Block usage until a quota is distributed" is on, the banner ends with "New members cannot consume Credits until a quota is distributed." When the feature is not enabled, the banner shows "New member default quota not enabled"
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
Values such as the quota cap and validity period are saved only when <mark style="color:blue;">**Enable New Member Default Quota**</mark> is on at the time you click <mark style="color:blue;">**Confirm**</mark>. If the toggle is off when you click Confirm, only the "not enabled" state and the "Block usage until a quota is distributed" state are saved, and any values you changed in the dialog are not kept. To prepare the values in advance, save them at the same time you enable the feature.
{% endhint %}

| Rule                                                    | Description                                                                                                                                                                                                                                                   |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Affects new members only                                | The setting applies only to members created after it is saved and is not retroactive; a returning former member who is reactivated is not counted as a new member                                                                                             |
| Validity period and reset are anchored to the join time | "Expires N days after joining" and the reset period are both calculated from the time each member actually joined; if the expiration date would exceed the organization's top-up expiration time, it is automatically shortened to the top-up expiration time |
| No duplicate distribution if a quota already exists     | If a member already has an active quota when joining (for example, one distributed manually beforehand), it is not overwritten                                                                                                                                |
| Invitations can set a separate quota                    | Turning on "Set a separate quota for this batch of invitations" replaces the organization default (they are not stacked). See [Setting a Separate Quota on Invitations](#invitation-quota-override)                                                           |
| A failed distribution does not block joining            | If automatic distribution fails, the member can still join, and the member row is marked <mark style="color:blue;">**Default distribution failed**</mark>; please distribute a quota manually                                                                 |

For example, a company with 200 employees opens MaiGPT to everyone. The administrator sets the new member default quota to 500 Credits with a monthly reset and turns on <mark style="color:blue;">**Block usage until a quota is distributed**</mark>. From then on, whether a colleague receives an email invitation, clicks an invitation link, or logs in through SSO for the first time, they receive 500 Credits the moment they join; there is no situation where a new hire uses up the organization wallet before the administrator distributes a quota.

In the member list, labels under each member's name show the quota source: <mark style="color:blue;">**Organization default**</mark>, <mark style="color:blue;">**Invitation override**</mark>, and the member's join source.

{% hint style="info" %}
This feature requires Credit management permission and is not available to organizations billed by character count. Members without the permission do not see the button, the banner, or the quota section in the invitation dialog.
{% endhint %}

#### Setting a Separate Quota on Invitations <a href="#invitation-quota-override" id="invitation-quota-override"></a>

In the <mark style="color:blue;">**Invite New Members**</mark> dialog (for both email invitations and invitation links), there is a <mark style="color:blue;">**Credits Quota**</mark> section between <mark style="color:blue;">**Select Role**</mark> and <mark style="color:blue;">**Invitation Validity**</mark>. By default, it shows "Organization default applied on joining: …" (for example, "Organization default applied on joining: 500 Credits · Expires 30 days after joining · Reset period: Monthly") or "No new member default quota set for the organization."

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-4dc70854a8966f6a782808f90cc8a987e044f7ad%2Fcredits-default-invite-modal-email.png?alt=media" alt="Credits Quota section in the Invite to Organization dialog"><figcaption><p>The "Credits Quota" section sits between "Select Role" and "Invitation Validity" and shows the organization default that will be applied to this batch of invitees when they join</p></figcaption></figure>

Turn on <mark style="color:blue;">**Set a separate quota for this batch of invitations**</mark> and fill in the fields below. This batch of invitees will receive this quota when they join instead of the organization default; each member who joins through the same invitation link receives their own copy. The effective time is likewise calculated from the actual join time.

| Field               | Description                                                                                                                                            |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Quota cap**       | Required                                                                                                                                               |
| **Expiration time** | Specify a date and time; **leave blank for permanent validity**. It cannot be earlier than now or later than the organization's top-up expiration time |
| **Reset period**    | No reset / Daily / Weekly / Monthly                                                                                                                    |
| **Note**            | Optional                                                                                                                                               |

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-7f0d46757032c8e381f2ca0a0f19ec3107b942e5%2Fcredits-default-invite-modal-override.png?alt=media" alt="Quota form displayed after turning on separate quota for this batch of invitations"><figcaption><p>After turning on "Set a separate quota for this batch of invitations," enter the quota this batch of invitees will receive when they join</p></figcaption></figure>

{% hint style="info" %}
**A separate quota replaces the default; it does not stack.** Invitees with a separate quota receive only that quota, with no organization default added on top; a separate quota still takes effect when the organization has no default quota set. If an invitee joins after the separate quota's expiration time, or if distributing the separate quota fails, the organization default is applied instead (if the organization has no default either, no quota is distributed). The separate quota on a sent invitation cannot be modified; to change it, revoke the invitation and invite again, or regenerate the invitation link.
{% endhint %}

On the member management page (<mark style="color:blue;">**Organization Overview**</mark> → <mark style="color:blue;">**Edit Members**</mark>), the <mark style="color:blue;">**Invitation Status**</mark> and <mark style="color:blue;">**Invitation Links**</mark> tabs have an additional <mark style="color:blue;">**Quota on Joining**</mark> column that shows "1,000 Credits" (separate quota on the invitation), "Organization default," or "—" (neither). It records the setting at the time the invitation was created, and the summary card shown after an invitation link is generated also gains a "Quota on Joining" row. This column does not represent the quota the member actually receives (for example, when a separate quota has expired and the organization default is applied instead); for the actual quota, check the <mark style="color:blue;">**Member Quotas**</mark> list.

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-50c1ae8c579b1fb4572746e719efa4daf3f2185b%2Fcredits-default-invitation-status-join-quota.png?alt=media" alt="Quota on Joining column on the Invitation Status tab"><figcaption><p>Invitation Status tab: invitations with a separate quota show the quota cap; the others show "—"</p></figcaption></figure>

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-54111c85cc6c47b43fd48a5ff15d2c821e8c5846%2Fcredits-default-invitation-link-join-quota.png?alt=media" alt="Quota on Joining column on the Invitation Links tab"><figcaption><p>Invitation Links tab: links that apply the organization default show "Organization default"</p></figcaption></figure>

For example, the organization default quota is 500 Credits per person, but this week you are inviting 10 data analysts who will make heavy use of long-document analysis. When inviting new members, the administrator turns on <mark style="color:blue;">**Set a separate quota for this batch of invitations**</mark> and enters 3,000 Credits; after joining, each of these 10 people receives 3,000 Credits, while other colleagues who join through a regular invitation link at the same time still receive the 500-Credit organization default.

### Set the Reset Period <a href="#quota-reset-period" id="quota-reset-period"></a>

When distributing or editing a quota, you can choose one of the following under <mark style="color:blue;">**Reset Period**</mark>:

| Option       | How It Works                                                                                                        |
| ------------ | ------------------------------------------------------------------------------------------------------------------- |
| **No reset** | The quota is a one-time cap; usage stops once it is exhausted                                                       |
| **Daily**    | At 00:00 every day (Taipei time), used Credits are reset to zero and the quota is fully restored                    |
| **Weekly**   | Resets at 00:00 on the fixed weekday shown on the screen                                                            |
| **Monthly**  | Resets at 00:00 on the fixed date shown on the screen; in shorter months, it resets at the end of the month instead |

After configuration, <mark style="color:blue;">**Next Reset**</mark> in the list shows the time and period. A reset only clears the used amount; the quota cap and expiration time remain unchanged.

{% hint style="info" %}
When you change a quota's weekly or monthly reset period, the period is recalculated from the date of the change. Before submitting, confirm using the "First Reset" time shown on the screen.
{% endhint %}

### Edit Quota <a href="#edit-quota" id="edit-quota"></a>

For a member with an active quota, click <mark style="color:blue;">**Edit**</mark> on their row to adjust it directly:

* **Increase the Credits cap**: Takes effect immediately
* **Decrease the Credits cap**: Cannot be lower than the member's consumption so far; the system displays an error message

### Disable Quota <a href="#disable-quota" id="disable-quota"></a>

For a member with an active quota, click <mark style="color:blue;">**Disable**</mark> → confirmation dialog → after you confirm, the member's quota is invalidated immediately.

The effect of disabling depends on the "Quota Required" toggle:

* **Toggle is ON**: The member cannot use AI features until a quota is redistributed or the toggle is turned off
* **Toggle is OFF**: The member returns to an unrestricted state, with consumption drawn directly from the organization wallet

### Batch Disable Quotas by Role <a href="#batch-disable-quota-by-role" id="batch-disable-quota-by-role"></a>

When multiple members with the same role no longer need personal quotas, administrators can disable, in one action, all quotas that have been created for those members and not yet disabled, including quotas created in advance that have not yet taken effect. Before submitting, decide whether members should remain restricted from using Credits after their quotas are disabled:

* **Disable quotas only and keep quota restrictions** (default): Members cannot use AI services until they receive a new quota.
* **Disable quotas and remove quota restrictions**: Members switch to the organization wallet and are no longer subject to personal quota controls.

{% hint style="warning" %}
After quota restrictions are removed, members' use of AI features consumes the organization wallet directly. If you still need to control individual usage, keep the default option and redistribute quotas at an appropriate time.
{% endhint %}

#### Steps <a href="#batch-disable-quota-by-role-steps" id="batch-disable-quota-by-role-steps"></a>

{% stepper %}
{% step %}
On the <mark style="color:blue;">**Quota Allocation**</mark> tab, select <mark style="color:blue;">**Member Quotas**</mark>.
{% endstep %}

{% step %}
Click <mark style="color:blue;">**Batch Disable by Role**</mark>.
{% endstep %}

{% step %}
Select the role you want to process.

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-cb78c1f3105267bd99487a2db0ee7d7fbf2d08ae%2Fmember-quota-batch-role-mode.png?alt=media" alt="Role and disable method selection dialog for batch disabling quotas by role"><figcaption><p>Select a role and decide whether to keep quota restrictions after disabling quotas</p></figcaption></figure>
{% endstep %}

{% step %}
Under "Disable Method," choose whether to keep or remove quota restrictions, then click <mark style="color:blue;">**Disable**</mark>.
{% endstep %}

{% step %}
Review the number of affected members shown in the confirmation dialog, and submit once you have verified it. When keeping restrictions, the dialog shows the number of members whose quotas will be disabled. When removing restrictions, it separately shows the number of members whose quotas will be disabled and the number of members whose restrictions will be removed.

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-95f46c10837a650eb91ffadcc71aa6bc5d91acc9%2Fmember-quota-batch-confirm.png?alt=media" alt="Batch disable confirmation dialog when keeping quota restrictions"><figcaption><p>When keeping quota restrictions, the confirmation dialog lists the number of members whose quotas will be disabled</p></figcaption></figure>

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-c35c8ed1673f2a330d424e1a7199c7fdf9dd92eb%2Fmember-quota-batch-confirm-remove-restriction.png?alt=media" alt="Batch disable confirmation dialog when removing quota restrictions"><figcaption><p>When removing quota restrictions, the confirmation dialog separately lists the number of members whose quotas will be disabled and the number whose restrictions will be removed</p></figcaption></figure>
{% endstep %}
{% endstepper %}

#### Use Case: Return a Team to the Shared Quota After an Event <a href="#batch-disable-quota-scenario" id="batch-disable-quota-scenario"></a>

An administrator at MaiMai Company previously distributed personal quotas to members with the "Event Support" role to control usage during an event. After the event, she opens the Member Quotas page, selects Batch Disable by Role, and chooses "Disable quotas and remove quota restrictions." After reviewing the number of affected members, she submits the request. The quotas of members who meet the processing criteria are disabled, and their quota restrictions are removed. Their subsequent use of AI features consumes the organization wallet instead.

{% hint style="info" %}
Batch processing applies to members in the role who are still employed, have not been deleted, and have active login accounts. Restrictions are not removed in this operation for members who have left the organization, have been deleted, or do not have active login accounts. If they are reinstated or reactivated later, they may still be in a state where a quota is required but none is available.
{% endhint %}

{% hint style="info" %}
The two counts may differ: members in the role who do not have a quota that has been created and not yet disabled, but who are still subject to quota restrictions, are not included in the "Disable Quotas" count. If you choose to remove restrictions, they are still included in the "Remove Quota Restrictions" count. The "Disable Quotas" count includes quotas created in advance that have not yet taken effect.
{% endhint %}

### "Quota Required" Toggle <a href="#quota-required-toggle" id="quota-required-toggle"></a>

Each member row has a **Quota Required** toggle on the right side:

| Toggle State | Description                                                                                                                      |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------- |
| **ON**       | The member must have an active quota to use AI; without a quota (expired / disabled / unallocated), access is completely blocked |
| **OFF**      | The member is not restricted by quota; consumption is drawn directly from the organization wallet                                |

{% hint style="warning" %}
**When a quota is distributed**, the system **automatically turns ON** "Quota Required."

**When the toggle is turned OFF**, if the member has an active quota, the system **also disables** that quota to avoid a contradictory state. A confirmation dialog explaining the impact is displayed before every switch — please review it before proceeding.
{% endhint %}

### Batch Distribute/Disable by Role <a href="#batch-by-role" id="batch-by-role"></a>

When there are many members, you can operate in batches by MaiAgent role instead of distributing quotas one by one. Two batch buttons are available in the upper-right corner of the "Member Quotas" subtab:

**Batch distribution**:

1. Click <mark style="color:blue;">**Batch Distribute by Role**</mark> and select the target role in the dialog
2. Configure the quota details (the quota cap, validity period, reset period, and note are applied to **all members** in the role, with a separate quota for each member)
3. Confirm and submit. **Members who already have an active quota are automatically skipped and do not receive a duplicate**; when complete, the system displays "Batch distribution complete: N succeeded, N skipped, N failed"

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-f5a8565125e67f3f0280d85e96bf5ac23ca3f088%2Fquota-07-batch-role-modal.png?alt=media" alt="Batch Distribute by Role dialog"><figcaption><p>Batch Distribute by Role: after you select a role, the quota details are applied to all members of that role</p></figcaption></figure>

**Batch disabling**: Click <mark style="color:blue;">**Batch Disable by Role**</mark> → select a role → select a disable method → confirm. Before submitting, verify the members covered by the role and the disable method.

| Disable Method                                                | Member Status After Disabling                                                                                                 |
| ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **Disable quotas only and keep quota restrictions** (default) | "Quota Required" stays on; members cannot use AI services until a quota is reassigned                                         |
| **Disable quotas and remove quota restrictions**              | "Quota Required" is also turned off; members use the organization wallet and are no longer subject to personal quota controls |

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-fe3210b0d909826eea6aebbc3902520a105e5815%2Fquota-08-batch-deactivate-options.png?alt=media" alt="Two methods for batch disabling quotas"><figcaption><p>Batch disabling: quota restrictions are kept by default, but you can also choose to remove them at the same time</p></figcaption></figure>

{% hint style="warning" %}
Batch distribution also turns on the "Quota Required" toggle for these members. The default batch disabling option keeps quota restrictions. If you want members to use the organization wallet after their quotas are disabled, select "Disable quotas and remove quota restrictions."
{% endhint %}

{% hint style="info" %}
**Batch distribution by role is not a role quota.** Batch distribution gives each member in the role their own personal quota, and each person's usage is calculated separately. To have an entire role "share" one budget, use the [Role Quotas](#role-quota) below. For the differences between the two and numeric examples, see [How the Three Types of Quotas Are Calculated: Scenarios and FAQ](/maiagent-user-guide/en/others/credits/credit-quota-scenarios.md#role-quota-vs-batch-by-role).
{% endhint %}

### Personal Quota Alert Settings <a href="#member-quota-alert" id="member-quota-alert"></a>

When a member's quota is about to run out or expire, the system can proactively notify the member so they can ask an administrator for an adjustment early, instead of being blocked in the middle of a conversation. This set of settings is shared by the whole organization and applies to all members who have a personal quota.

1. On the <mark style="color:blue;">**Quota Allocation**</mark> → <mark style="color:blue;">**Member Quotas**</mark> subtab, click <mark style="color:blue;">**Alert Settings**</mark> in the upper right corner
2. In the <mark style="color:blue;">**Personal Quota Alert Settings**</mark> dialog, adjust the following items and click <mark style="color:blue;">**OK**</mark> to save

| Item                                                              | Description                                                                                                                                                                                            |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <mark style="color:blue;">**Enable personal quota alerts**</mark> | Master switch; when off, both types of alerts stop                                                                                                                                                     |
| <mark style="color:blue;">**Usage alert threshold**</mark>        | An alert is sent when a member's consumption reaches this percentage of their quota cap; enter an integer from 1 to 99, default 80                                                                     |
| <mark style="color:blue;">**Expiration alert**</mark>             | When on, an alert is sent when the quota will expire within the number of <mark style="color:blue;">**days before expiration**</mark>; the number of days is an integer greater than 0, default 7 days |

Alerts are sent to the member through both **in-app notifications** and **email**. The in-app notification appears under the "Organization Announcements" tab of the member's [Notification Center](/maiagent-user-guide/en/start/notifications.md), with the title "<mark style="color:blue;">Personal quota almost used up</mark>" or "<mark style="color:blue;">Personal quota expiring soon</mark>"; the content shows the amount used, the cap, and the remaining quota, and asks the member to contact the organization administrator.

{% hint style="info" %}
These are alerts for **members' personal quotas**. Alerts for a low organization wallet balance are configured in the "Balance Alert" card on the Credits overview; the two do not affect each other. See [Credits Billing System: Low Balance Alerts](/maiagent-user-guide/en/others/credits.md#low-balance-alert).
{% endhint %}

### Role Quotas <a href="#role-quota" id="role-quota"></a>

In addition to the batch shortcut above, which distributes quotas to members one by one, the "Quota Allocation" tab also includes a <mark style="color:blue;">**Role Quotas**</mark> subtab. Here, you can set **one shared quota for an entire MaiAgent role**, creating a control layer independent of member quotas.

The list is organized by role and includes the following columns: **Role Name, Type, Quota Required, Quota Status, Usage, Expiration Time, and Actions**.

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-c9d9e46a210df5d4a65162eeb959eae332d4b921%2Fcredit-quota-role-tab.png?alt=media" alt="Role Quotas subtab"><figcaption><p>Quota Allocation → Role Quotas: quota control by MaiAgent role</p></figcaption></figure>

**Distribute a role quota**:

1. Click the <mark style="color:blue;">**Distribute Quota**</mark> button and select the target role
2. Set the quota cap, validity period, and reset period, then confirm and submit

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-a5dc7131e63fbbeda941959537ac1ce53f2b5e9b%2Fquota-06-role-assign-modal.png?alt=media" alt="Distribute Role Quota dialog"><figcaption><p>Role Quotas → Distribute Quota: set a shared quota for a single role</p></figcaption></figure>

Each role row also has a <mark style="color:blue;">**Quota Required**</mark> toggle with the same meaning as the [member quota toggle](#quota-required-toggle): when on, the role must have an active quota before its members' AI consumption is allowed.

{% hint style="warning" %}
Page notice: **Usage is accumulated independently for each role** — when a member belongs to multiple controlled roles, each transaction is counted toward every role's usage. Consequently, the sum of role usage may exceed the organization's actual consumption. The organization wallet is still charged only once.
{% endhint %}

For details on how role quotas, member quotas, and conversation platform quotas work together across the three layers, see [Conversation Platform Credits Quota Management](/maiagent-user-guide/en/others/credits/inbox-credit-quota.md#quota-layers). For numeric examples of how the three types of quotas are calculated, see [How the Three Types of Quotas Are Calculated: Scenarios and FAQ](/maiagent-user-guide/en/others/credits/credit-quota-scenarios.md).

***

## Members Checking Their Own Quota <a href="#member-self-check" id="member-self-check"></a>

Members can view their personal Credits usage from their Profile:

1. Click the account avatar in the upper right corner
2. Click <mark style="color:blue;">**Personal Settings**</mark>
3. Switch to the <mark style="color:blue;">**Credit Quota**</mark> tab

{% hint style="info" %}
Members of **organizations not billed by Credits** will not see the "Credit Quota" tab in their Profile.
{% endhint %}

<figure><img src="https://1360999650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6v6TNkkOQVfRYfcNirHL%2Fuploads%2Fgit-blob-d8b8426a6a98e6f14c91d589074d43970064fd2c%2Fprofile-credit-quota.png?alt=media" alt="Personal Credit Quota tab"><figcaption><p>The Credit Quota tab in Personal Settings</p></figcaption></figure>

The page displays different content depending on the member's quota status:

| Status                                                   | Displayed Content                                                                                                                                                  |
| -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Has a valid quota**                                    | Progress bar (used / total limit), remaining Credits, expiration countdown                                                                                         |
| **Quota required but none available (expired/disabled)** | Red warning: "You need a quota to use AI services. No quota has been assigned, or your quota has expired. Please contact your administrator to issue a new quota." |
| **Quota not required**                                   | Gray notice: "You currently have no personal quota limit. Spending uses the organization wallet directly, so you don't need to worry about a personal quota cap."  |

The progress bar color changes with the usage ratio (green for low usage, close to red for high usage) to remind members to keep an eye on their remaining balance.

***

## Notes <a href="#notes" id="notes"></a>

### Applicable Scope <a href="#applicable-scope" id="applicable-scope"></a>

Personal quota control **applies only to the following entry points**:

* Operations through the MaiAgent admin console
* Calls to the `/completions/` endpoint using an API Key
* Knowledge base uploads and document processing

{% hint style="info" %}
**Web Chat conversation platforms are not subject to personal quota limits.** Messages sent through an embedded Web Chat dialog always consume the organization wallet directly, regardless of whether the visitor is logged in.
{% endhint %}

### Fail-Open Mechanism <a href="#fail-open" id="fail-open"></a>

{% hint style="info" %}
To avoid service interruptions caused by quota boundary calculation issues, the system uses a **Fail-Open** strategy:

If the remaining quota at the time of the check is > 0, the request is allowed; consumption is counted only after the AI completes its response. If consumption then exceeds the limit, the **next** request is blocked. This ensures users never encounter a billing failure at the same moment they receive an AI response.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.maiagent.ai/maiagent-user-guide/en/others/credits/member-credit-quota.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
