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

# List Transaction Limit Policies

> List transaction limit policies for your organization



## OpenAPI

````yaml /v2/openapi.yaml get /v2/transaction-limits/policies
openapi: 3.1.0
info:
  title: Bastion APIs
  version: '2.0'
servers:
  - url: https://api.prod.bastion.com
    description: Production environment
  - url: https://api.sandbox.bastion.io
    description: Sandbox environment
security:
  - auth: []
tags:
  - name: Bastion APIs
paths:
  /v2/transaction-limits/policies:
    get:
      tags:
        - Transaction Limits
      summary: List Transaction Limit Policies
      description: List transaction limit policies for your organization
      operationId: bastion.api.v2.API.ListTransactionLimitPolicies
      parameters:
        - name: limit
          in: query
          description: >-
            (OPTIONAL) The maximum number of transaction limit policies to
            return in a single page.
             The maximum value that can be specified is 100. Defaults to 50 if unspecified.
          required: false
          schema:
            type: integer
            title: limit
            maximum: 100
            minimum: 1
            format: int32
            default: '50'
        - name: cursor
          in: query
          description: >-
            (OPTIONAL) Pagination cursor to be used in subsequent queries to
            retrieve next page of results
          required: false
          schema:
            type: string
            title: cursor
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/bastion.api.v2.transactions.ListTransactionLimitPoliciesResponse
        '400':
          description: Bad request
        '401':
          description: Unauthorized Request
        '403':
          description: Request Forbidden
        '500':
          description: Internal Server Error
components:
  schemas:
    bastion.api.v2.transactions.ListTransactionLimitPoliciesResponse:
      type: object
      properties:
        policies:
          type: array
          items:
            $ref: >-
              #/components/schemas/bastion.api.v2.transactions.TransactionLimitPolicy
          title: policies
          description: List of transaction limit policies
        cursor:
          type: string
          title: cursor
          description: >-
            Pagination cursor to be used in subsequent queries to retrieve next
            page of results.
             If this field is omitted, there are no subsequent pages.
      title: ListTransactionLimitPoliciesResponse
      additionalProperties: false
    bastion.api.v2.transactions.TransactionLimitPolicy:
      type: object
      properties:
        id:
          type: string
          title: id
          description: Unique identifier of the transaction limit policy
        scope:
          $ref: '#/components/schemas/bastion.common.TransactionLimitScope'
          title: scope
          description: |-
            Describes who the policy applies to.
             A policy can either be APP_SCOPED (meaning it applies to an entire app) or IDENTITY_SCOPED (meaning it applies to a specific identity)
        evaluation_window:
          $ref: '#/components/schemas/bastion.common.TransactionLimitEvaluationWindow'
          title: evaluation_window
          description: |-
            Evaluation window for the transaction limit policy.
             Values are either PER_TRANSACTION (maximum notional value for a single transaction) or PAST_WEEK (maximum cumulative value over the past week for a given identity)
        threshold_type:
          $ref: '#/components/schemas/bastion.common.TransactionLimitThresholdType'
          title: threshold_type
          description: |-
            Threshold type for the transaction limit policy.
             Valid values are HARD (meaning that transactions will be blocked if the policy is breached) or SOFT (meaning that only webhook notifications will be sent if the policy is breached)
        threshold_currency:
          $ref: >-
            #/components/schemas/bastion.common.TransactionLimitThresholdCurrency
          title: threshold_currency
          description: >-
            Currency that the thresholdAmount is expressed in. Currently, only
            USD is supported.
        threshold_amount:
          type: string
          title: threshold_amount
          description: Amount threshold for the transaction limit policy
        identity_id:
          type:
            - string
            - 'null'
          title: identity_id
          description: Identity ID if the policy scope is IDENTITY_SCOPED. Null otherwise.
        is_active:
          type: boolean
          title: is_active
          description: Whether the policy is currently active
        created_at:
          $ref: '#/components/schemas/google.protobuf.Timestamp'
          title: created_at
          description: Timestamp when the policy was created
        updated_at:
          $ref: '#/components/schemas/google.protobuf.Timestamp'
          title: updated_at
          description: Timestamp when the policy was last updated
        managed_by:
          oneOf:
            - $ref: '#/components/schemas/bastion.common.TransactionLimitManagedBy'
            - type: 'null'
          title: managed_by
          description: >-
            (OPTIONAL) Who manages this policy. BASTION means Bastion-imposed;
            CUSTOMER means customer-set.
        transaction_type:
          oneOf:
            - $ref: >-
                #/components/schemas/bastion.common.TransactionLimitTransactionType
            - type: 'null'
          title: transaction_type
          description: >-
            (OPTIONAL) The product lane this policy applies to.
            CONVERSION_ONRAMP and CONVERSION_OFFRAMP encode
             ramp direction directly in the type value.
      title: TransactionLimitPolicy
      additionalProperties: false
    bastion.common.TransactionLimitScope:
      type: string
      title: TransactionLimitScope
      enum:
        - TRANSACTION_LIMIT_SCOPE_UNSPECIFIED
        - IDENTITY_SCOPED
        - APP_SCOPED
      description: |-
        The scope of a transaction limit policy.
         Valid values are IDENTITY_SCOPED, meaning that the policy only applies to a specific identity, or APP_SCOPED, meaning that the policy applies to all identities associated with your app.
      example: IDENTITY_SCOPED
    bastion.common.TransactionLimitEvaluationWindow:
      type: string
      title: TransactionLimitEvaluationWindow
      enum:
        - TRANSACTION_LIMIT_EVALUATION_WINDOW_UNSPECIFIED
        - PAST_WEEK
        - PER_TRANSACTION
        - PAST_DAY
      description: |-
        The evaluation window of a transaction limit policy.
         PAST_WEEK / PAST_DAY evaluate the aggregate amount transacted by the identity over the trailing 7-day / 1-day window; PER_TRANSACTION evaluates the amount transacted in a single transaction.
      example: PAST_WEEK
    bastion.common.TransactionLimitThresholdType:
      type: string
      title: TransactionLimitThresholdType
      enum:
        - TRANSACTION_LIMIT_THRESHOLD_TYPE_UNSPECIFIED
        - HARD
        - SOFT
      description: |-
        The threshold type of a transaction limit policy.
         Valid values are HARD, meaning that exceeding the threshold will cause a transaction to be blocked, or SOFT, meaning exceeding the threshold will result in an alert to be delivered via webhook notification.
      example: HARD
    bastion.common.TransactionLimitThresholdCurrency:
      type: string
      title: TransactionLimitThresholdCurrency
      enum:
        - TRANSACTION_LIMIT_THRESHOLD_CURRENCY_UNSPECIFIED
        - USD
      description: |-
        The currency of a transaction limit policy.
         At the moment, only USD is supported.
      example: USD
    google.protobuf.Timestamp:
      type: string
      examples:
        - '2023-01-15T01:30:15.01Z'
        - '2024-12-25T12:00:00Z'
      format: date-time
      description: >-
        A Timestamp represents a point in time independent of any time zone or
        local
         calendar, encoded as a count of seconds and fractions of seconds at
         nanosecond resolution. The count is relative to an epoch at UTC midnight on
         January 1, 1970, in the proleptic Gregorian calendar which extends the
         Gregorian calendar backwards to year one.

         All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
         second table is needed for interpretation, using a [24-hour linear
         smear](https://developers.google.com/time/smear).

         The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
         restricting to that range, we ensure that we can convert to and from [RFC
         3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.

         # Examples

         Example 1: Compute Timestamp from POSIX `time()`.

             Timestamp timestamp;
             timestamp.set_seconds(time(NULL));
             timestamp.set_nanos(0);

         Example 2: Compute Timestamp from POSIX `gettimeofday()`.

             struct timeval tv;
             gettimeofday(&tv, NULL);

             Timestamp timestamp;
             timestamp.set_seconds(tv.tv_sec);
             timestamp.set_nanos(tv.tv_usec * 1000);

         Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.

             FILETIME ft;
             GetSystemTimeAsFileTime(&ft);
             UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

             // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
             // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
             Timestamp timestamp;
             timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
             timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

         Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.

             long millis = System.currentTimeMillis();

             Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
                 .setNanos((int) ((millis % 1000) * 1000000)).build();

         Example 5: Compute Timestamp from Java `Instant.now()`.

             Instant now = Instant.now();

             Timestamp timestamp =
                 Timestamp.newBuilder().setSeconds(now.getEpochSecond())
                     .setNanos(now.getNano()).build();

         Example 6: Compute Timestamp from current time in Python.

             timestamp = Timestamp()
             timestamp.GetCurrentTime()

         # JSON Mapping

         In JSON format, the Timestamp type is encoded as a string in the
         [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
         format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
         where {year} is always expressed using four digits while {month}, {day},
         {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
         seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
         are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
         is required. A ProtoJSON serializer should always use UTC (as indicated by
         "Z") when printing the Timestamp type and a ProtoJSON parser should be
         able to accept both UTC and other timezones (as indicated by an offset).

         For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
         01:30 UTC on January 15, 2017.

         In JavaScript, one can convert a Date object to this format using the
         standard
         [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
         method. In Python, a standard `datetime.datetime` object can be converted
         to this format using
         [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
         the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
         the Joda Time's [`ISODateTimeFormat.dateTime()`](
         http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()
         ) to obtain a formatter capable of generating timestamps in this format.
    bastion.common.TransactionLimitManagedBy:
      type: string
      title: TransactionLimitManagedBy
      enum:
        - TRANSACTION_LIMIT_MANAGED_BY_UNSPECIFIED
        - BASTION
        - CUSTOMER
      description: |-
        Who manages a transaction limit policy.
         BASTION means the policy is created and owned by Bastion; CUSTOMER means it is set by the customer.
      example: BASTION
    bastion.common.TransactionLimitTransactionType:
      type: string
      title: TransactionLimitTransactionType
      enum:
        - TRANSACTION_LIMIT_TRANSACTION_TYPE_UNSPECIFIED
        - CRYPTO_TRANSFER
        - CONVERSION_ONRAMP
        - CONVERSION_OFFRAMP
      description: |-
        The product lane a transaction limit policy applies to.
         Conversion direction is encoded directly in the type: CONVERSION_ONRAMP for on-ramps,
         CONVERSION_OFFRAMP for off-ramps.
      example: CRYPTO_TRANSFER
  securitySchemes:
    auth:
      type: http
      description: Bearer authentication with an API token
      scheme: bearer

````

## Related topics

- [Transaction limits API overview](/v2/api-reference/transaction-limits/overview.md)
- [Get Transaction Limit Policy](/v2/api-reference/transaction-limits/get-transaction-limit-policy.md)
- [Transaction limit notifications](/v2/api-reference/webhooks/notifications/transaction-limit-notifications.md)
- [Crypto transfers and deposits](/guides/concepts/crypto-transfers.md)
- [List Cryptocurrency Transfers](/v2/api-reference/cryptocurrency-transfers/list-cryptocurrency-transfers.md)
