---
title: "Calculate the AOT quota for a policy rule"
method: POST
path: "/policy/rules/quota"
tags: ["Policy Editor V2 (Beta)"]
---

# Calculate the AOT quota for a policy rule

`POST /policy/rules/quota`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/policy/rules/quota`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/policy/rules/quota/post.ts> (a function with typed inputs; its response is checked against the schema)

Returns the Amount Over Time (AOT) quota calculated for a specific policy rule.

Endpoint Permissions: Owner, Admin, Non-Signing Admin.

## Headers

- `Idempotency-Key` string

## Request body

- PolicyRuleQuotaRequest
  - `ruleId` string, required: The ID of the policy rule to calculate AOT quota for
  - `initiator` string: Optional initiator identifier for the AOT calculation
  - `source` PolicyRuleQuotaParticipant: Participant identifier for AOT quota calculation
    - `id` string, required: Participant identifier (integer for VAULT accounts, UUID for others)
    - `type` string, required: Participant type
  - `destination` PolicyRuleQuotaParticipant: Participant identifier for AOT quota calculation
    - `id` string, required: Participant identifier (integer for VAULT accounts, UUID for others)
    - `type` string, required: Participant type

## Response `200`

The calculated AOT quota for the rule

- PolicyRuleQuotaResponse
  - `amount` string: The calculated Amount Over Time (AOT) quota for the rule
  - `quotaConfig` AmountOverTimeConfig: Amount over time configuration
    - `range` AmountRangeMinMax2, required: Amount range with minimum and maximum values
      - `min` string, required: Minimum amount
      - `max` string: Maximum amount
    - `currency` 'NATIVE' | 'USD' | 'EUR', required: Currency for the amount
    - `timePeriod` TimePeriodConfig, required: Time period configuration
      - `seconds` string, required: Time period in seconds
      - `initiator` 'PER_SINGLE_MATCH' | 'ACROSS_ALL_MATCHES', required: Type of match for time period application
      - `source` 'PER_SINGLE_MATCH' | 'ACROSS_ALL_MATCHES', required: Type of match for time period application
      - `destination` 'PER_SINGLE_MATCH' | 'ACROSS_ALL_MATCHES', required: Type of match for time period application
  - `currency` string: The currency of the AOT amount
  - `windowStart` number: Unix timestamp (seconds) of the start of the current AOT time window
  - `windowEnd` number: Unix timestamp (seconds) of the end of the current AOT time window (when the AOT was calculated)
  - `transactionCount` number: Number of transactions in the current AOT time window

## Other responses

- `400`: Invalid request parameters or rule configuration prevents AOT calculation.
- `403`: Caller lacks permission to access the requested rule.
- `404`: The requested policy rule was not found.
- `429`: Rate limit exceeded: slow down and retry later.
- `500`: Internal server error while calculating AOT quota.
- `default`: Error Response

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
