> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qobra.co/llms.txt
> Use this file to discover all available pages before exploring further.

# list_quota_values

List one quota's target values across users and periods, with pagination.

Resolve a single quota, then return its per-user, per-period target values. The
quota's `type` and `frequency` are surfaced once in the `quota` header;
each row carries `value`, the owning `user_email`, the `period`
(big-endian, at the quota's frequency), and `currency` only when the quota is
amount-typed. Pair with `list_quotas` to find the quota first. Filters combine
with AND.

You only see quotas and values you have access to; a quota you can't access is
reported as not found. Pass `view` to narrow to a single view's rows. Rows are
ordered by period ascending (earliest first), then by user.

## Parameters

<Accordion title="Body" defaultOpen>
  <ParamField body="quota" type="string" required>
    The quota to read values from. A case- and accent-insensitive substring of
    the quota name, or its ObjectId. Must resolve to exactly one quota — an
    ambiguous name that matches several is rejected with a clear error asking
    you to refine it.
  </ParamField>

  <ParamField body="period" type="string">
    Single period, in the quota's own frequency format: YYYY-MM (monthly),
    YYYY-QX (quarterly), YYYY-SX (semesterly) or YYYY (annually). A period in
    the wrong format for this quota's frequency is rejected with the expected
    format. Omitted: values for every period.
  </ParamField>

  <ParamField body="user_search" type="string">
    User filter — a name/email substring or an ObjectId, matched the same way as
    list\_users search. Omitted: every user you can see. (Named user\_search
    because user is reserved for the authenticated caller.)
  </ParamField>

  <ParamField body="view" type="string">
    Quota view to apply, by name (case- and accent-insensitive substring) or
    ObjectId. Restricts the rows to the users that view exposes. Omitted: every
    user you can see.
  </ParamField>

  <ParamField body="limit" type="integer">
    Page size, between 1 and 250. Defaults to 50.
  </ParamField>

  <ParamField body="offset" type="integer">
    Row offset into the result set — the number of rows to skip before this
    page. Pass the next\_offset returned by the previous call, or None for the
    first page.
  </ParamField>
</Accordion>

## Response

<Accordion title="Body" defaultOpen>
  <ResponseField name="quota" type="object">
    <Expandable title="object properties">
      <ResponseField name="id" type="string" />

      <ResponseField name="resource_url" type="string">
        Deep link to open this quota in the Qobra web app.
      </ResponseField>

      <ResponseField name="name" type="string" />

      <ResponseField name="description" type="string" />

      <ResponseField name="type" type="string">
        Unit of the target value: amount (monetary, has a currency), percentage,
        or float (plain number). One of: `amount`, `percentage`, `float`.
      </ResponseField>

      <ResponseField name="frequency" type="string" />

      <ResponseField name="currency_type" type="string">
        The quota's default currency for amount targets: 'company' (the company
        currency), 'user' (each user's payment currency) or 'calculation' (the
        user's calculation currency). A target value that carries its own
        currency overrides this default. Only meaningful for amount quotas. One
        of: `company`, `user`, `calculation`.
      </ResponseField>

      <ResponseField name="archived" type="boolean" />

      <ResponseField name="views" type="object[]">
        The quota views the caller may query for this quota's values — pass one
        as `view` to list\_quota\_values to narrow the rows. Empty when no view is
        relevant.

        <Expandable title="object properties">
          <ResponseField name="id" type="string" />

          <ResponseField name="name" type="string" />
        </Expandable>
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="values" type="object[]">
    <Expandable title="object properties">
      <ResponseField name="value" type="any" />

      <ResponseField name="currency" type="string">
        One of: `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`, `AWG`,
        `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`, `BND`, `BOB`,
        `BOV`, `BRL`, `BSD`, `BTN`, `BWP`, `BYR`, `BZD`, `CAD`, `CDF`, `CHF`,
        `CLF`, `CLP`, `CNY`, `COP`, `COU`, `CRC`, `CUC`, `CUP`, `CVE`, `CZK`,
        `DJF`, `DKK`, `DOP`, `DZD`, `EGP`, `ERN`, `ETB`, `EUR`, `FJD`, `FKP`,
        `GBP`, `GEL`, `GHS`, `GIP`, `GMD`, `GNF`, `GTQ`, `GYD`, `HKD`, `HNL`,
        `HRK`, `HTG`, `HUF`, `IDR`, `ILS`, `INR`, `IQD`, `IRR`, `ISK`, `JMD`,
        `JOD`, `JPY`, `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`,
        `KZT`, `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LTL`, `LVL`, `LYD`, `MAD`,
        `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRO`, `MUR`, `MVR`, `MWK`,
        `MXN`, `MYR`, `MZN`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`, `NZD`, `OMR`,
        `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`, `QAR`, `RMB`, `RON`,
        `RSD`, `RUB`, `RWF`, `SAR`, `SBD`, `SCR`, `SDG`, `SEK`, `SGD`, `SHP`,
        `SLL`, `SOS`, `SRD`, `STD`, `SVC`, `SYP`, `SZL`, `THB`, `TJS`, `TMT`,
        `TND`, `TOP`, `TRY`, `TTD`, `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `UYI`,
        `UYU`, `UZS`, `VEF`, `VND`, `VUV`, `WON`, `WST`, `XAF`, `XAG`, `XAU`,
        `XCD`, `XOF`, `XPD`, `XPF`, `XPT`, `XSU`, `YER`, `ZAR`, `ZMK`, `ZWL`.
      </ResponseField>

      <ResponseField name="resource_url" type="string">
        Deep link to the quota this value belongs to (a quota value has no page
        of its own, so it points at its parent quota).
      </ResponseField>

      <ResponseField name="user_email" type="string" />

      <ResponseField name="period" type="string" />
    </Expandable>
  </ResponseField>

  <ResponseField name="next_offset" type="integer" />
</Accordion>
