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

# Count Transactions API

> Retrieve filtered transaction counts from the Breezing API to measure crypto accounting activity before listing or updating transactions.



## OpenAPI

````yaml GET /transactions/count
openapi: 3.1.0
info:
  title: Breezing Public API
  version: 1.0.0
  description: >-
    Crypto accounting API for programmatic access and AI agents. Authenticate
    with an API key using the Authorization header: `Bearer brz_...`
servers:
  - url: https://api.breezing.io/v1
security:
  - BearerAuth: []
paths:
  /transactions/count:
    get:
      tags:
        - Transactions
      summary: Count transactions
      description: >-
        Count crypto transactions matching the given filters. Useful for gauging
        volume before listing, or measuring categorization progress.


        Common patterns:

        • hasAccount="false" → count uncategorized transactions that still need
        a contra account assigned.

        • status="reviewRequired" → count transactions flagged for the client to
        review in Breezing's Client Review workflow (accountant flags unclear
        items, client provides context, accountant resolves).

        • status="notStarted" → count new/unprocessed transactions.

        • status="reconciled" → count transactions that are categorized and
        ready for sync.


        Default excludes spam and locked transactions unless overridden with
        isSpam="all" or isLocked="all".
      parameters:
        - schema:
            type: string
            description: >-
              Organization ID. Use GET /v1/companies to discover available
              org/company pairs.
            example: '1'
          required: true
          description: >-
            Organization ID. Use GET /v1/companies to discover available
            org/company pairs.
          name: orgId
          in: query
        - schema:
            type: string
            description: >-
              Company ID. Use GET /v1/companies to discover available companies
              and their access levels.
            example: '1'
          required: true
          description: >-
            Company ID. Use GET /v1/companies to discover available companies
            and their access levels.
          name: companyId
          in: query
        - schema:
            type: string
            description: Filter by wallet ID. Use wallets_list to find IDs.
            example: '1'
          required: false
          description: Filter by wallet ID. Use wallets_list to find IDs.
          name: walletId
          in: query
        - schema:
            type: string
            enum:
              - notStarted
              - reviewRequired
              - reconciled
              - manuallyReconciled
              - paid
              - synced
            description: >-
              Filter by status. Use "notStarted" for uncategorized,
              "reviewRequired" for transactions flagged for client review,
              "reconciled" for categorized and verified.
          required: false
          description: >-
            Filter by status. Use "notStarted" for uncategorized,
            "reviewRequired" for transactions flagged for client review,
            "reconciled" for categorized and verified.
          name: status
          in: query
        - schema:
            type: string
            description: Filter by exact account code (e.g. "4100")
          required: false
          description: Filter by exact account code (e.g. "4100")
          name: account
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            description: >-
              Filter by whether a contra account is assigned. hasAccount="false"
              finds uncategorized transactions that still need an account.
          required: false
          description: >-
            Filter by whether a contra account is assigned. hasAccount="false"
            finds uncategorized transactions that still need an account.
          name: hasAccount
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
              - all
            default: 'false'
            description: >-
              Spam filter (default: "false"). Breezing auto-detects spam/airdrop
              tokens. Use "all" to include them, "true" to see only spam.
          required: false
          description: >-
            Spam filter (default: "false"). Breezing auto-detects spam/airdrop
            tokens. Use "all" to include them, "true" to see only spam.
          name: isSpam
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
              - all
            default: 'false'
            description: >-
              Lock filter (default: "false"). Locked transactions belong to a
              closed period and cannot be modified. Use "all" to include them.
          required: false
          description: >-
            Lock filter (default: "false"). Locked transactions belong to a
            closed period and cannot be modified. Use "all" to include them.
          name: isLocked
          in: query
        - schema:
            type: string
            description: Start of date range (unix timestamp in seconds)
            example: '1700000000'
          required: false
          description: Start of date range (unix timestamp in seconds)
          name: dateFrom
          in: query
        - schema:
            type: string
            description: End of date range (unix timestamp in seconds)
            example: '1710000000'
          required: false
          description: End of date range (unix timestamp in seconds)
          name: dateTo
          in: query
      responses:
        '200':
          description: Count retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - true
                  data:
                    type: object
                    properties:
                      count:
                        type: integer
                    required:
                      - count
                required:
                  - success
                  - data
        '400':
          description: Invalid query parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '401':
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '403':
          description: >-
            API key has no access to this company, has read-only access where
            write was required, or the company subscription is inactive
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
      security:
        - BearerAuth: []
components: {}

````