> For AI agents: the documentation index is available at [llms.txt](https://docs.snaptrade.com/llms.txt), and the comprehensive documentation index is available at [llms-full.txt](https://docs.snaptrade.com/llms-full.txt). Download the [complete public OpenAPI specification](https://docs.snaptrade.com/openapi.yaml). Complete public OpenAPI specification with all documented operations, schemas, servers, and authentication requirements. Use it for SDK generation and API tooling; beta operations are marked x-beta. Markdown versions of documentation pages are available by appending .md to the URL path.

# Get usage stats

GET https://api.snaptrade.com/snapTrade/stats

Returns user, connection, and connected asset totals for your SnapTrade Client ID. These are the same numbers shown on the Users & Connections page of the SnapTrade Dashboard.

User and connection counts are cached for up to 5 minutes. Connected asset values come from a snapshot calculated once a day; `assets_under_management_calculated_at` indicates when it was last calculated.


Reference: https://docs.snaptrade.com/reference/Management/Management_getStats

## Code Examples

### TypeScript

```typescript

import {
  Snaptrade,
  SnaptradeAuth,
} from "snaptrade-typescript-sdk";

const snaptrade = new Snaptrade({
  auth: SnaptradeAuth.commercialApiKey({
    consumerKey: "CONSUMER_KEY",
    clientId: "CLIENT_ID",
  }),
});

const response =
  await snaptrade.management.getStats({
    currency: "USD",
  });
console.log(response.data);

```

### Python

```python

from pprint import pprint
from snaptrade_client import SnapTrade, SnapTradeAuth

snaptrade = SnapTrade(
    auth=SnapTradeAuth.commercial_api_key(
        consumer_key="CONSUMER_KEY",
        client_id="CLIENT_ID",
    )
)

response = snaptrade.management.get_stats(
    currency="USD"
)
pprint(response.body)

```

## OpenAPI Specification

```yaml

openapi: 3.0.0
info:
  description: >
    Connect brokerage accounts to your app for live positions and trading.


    ## Rate limiting


    Two limits apply to requests signed with your `clientId`. The stricter one

    wins, and exceeding either returns `429 Too Many Requests`.


    - **Customer-level** — 250 requests/minute by default, scoped to your
      `clientId` and applied across all endpoints. Reported in
      `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset`.
    - **Account-level** — 10 requests/minute per account, scoped to
      (`clientId`, `accountId`). All covered operations for one account draw on
      the same bucket — reading balances and reading positions share it — and
      enforcement does not depend on the HTTP method, so updating an account
      consumes the same bucket as reading it. Only enforced for Personal users,
      and only for integrations it has been rolled out to — it is not yet in
      force for every Personal integration. It also does not apply on every
      operation that documents a 429 below. Where it applies it is reported in
      `X-RateLimit-Account-Limit`, `X-RateLimit-Account-Remaining` and
      `X-RateLimit-Account-Reset`. Do not read the absence of those headers as
      proof the limit is off — some configurations omit the rate limit headers
      while still enforcing the limit, so header absence tells you nothing
      about your allowance.

    On a 429, `X-RateLimit-Remaining: 0` means you hit the customer-level limit

    and `X-RateLimit-Account-Remaining: 0` means the account-level one. Wait for

    the corresponding `*-Reset` value (seconds) before retrying, or fall back to

    exponential backoff with jitter.


    Not every 429 is explained by those headers. A separate

    per-authenticated-user limit, reported in no `X-RateLimit-*` header, covers

    OAuth-authenticated requests and signed requests in configurations where the

    customer-level limit is not in effect — on the operations that use the

    default throttles. A few operations override those and are governed by the

    customer-level limit alone. The two do not stack: a signed request

    governed by the customer-level limit above is not additionally subject to
    the

    per-user one. If a 429 arrives with no header at zero — or with no

    `X-RateLimit-*` headers at all — honour `Retry-After` and back off. Treat
    the

    remaining counts as a hint, not a guarantee that the next request will

    succeed.


    Because the customer-level limit applies everywhere, any signed request can

    return 429.


    **OAuth-authenticated requests are an exception.** They are not subject to

    the customer-level limit and do not receive `X-RateLimit-Limit`,

    `X-RateLimit-Remaining` or `X-RateLimit-Reset` — do not wait on those
    headers

    or design around a customer-level allowance on this path. The account-level

    limit still applies to them on the account-data endpoints above, reported in

    the `X-RateLimit-Account-*` headers. On operations using the default

    throttles the per-user limit above applies to them as well, so an OAuth

    request can be rejected while the account headers still show capacity; on

    the few operations that override those throttles, OAuth callers have no

    per-user ceiling at all. Drive retries from `Retry-After` and exponential

    backoff with jitter rather than from the headers.


    See https://docs.snaptrade.com/docs/ratelimiting.
  version: 1.0.0
  title: SnapTrade
  termsOfService: N/A
  contact:
    email: api@snaptrade.com
  x-konfig-ignore:
    potential-incorrect-type: true
  x-readme:
    explorer-enabled: false
paths:
  /snapTrade/stats:
    get:
      tags:
        - Management
      summary: Get usage stats
      description: >
        Returns user, connection, and connected asset totals for your SnapTrade
        Client ID. These are the same numbers shown on the Users & Connections
        page of the SnapTrade Dashboard.


        User and connection counts are cached for up to 5 minutes. Connected
        asset values come from a snapshot calculated once a day;
        `assets_under_management_calculated_at` indicates when it was last
        calculated.
      operationId: Management_getStats
      parameters:
        - in: query
          required: false
          name: currency
          description: >-
            ISO 4217 currency code to express connected asset values in.
            Defaults to `USD`.
          schema:
            type: string
            example: USD
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: >-
                  User, connection, and connected asset totals for your
                  SnapTrade Client ID.
                type: object
                required:
                  - total_users
                  - total_connected_users
                  - total_active_connections
                  - total_disabled_connections
                  - oauth_total_users
                  - oauth_total_connected_users
                  - oauth_total_active_connections
                  - oauth_total_disabled_connections
                  - assets_under_management
                  - disabled_assets_under_management
                  - oauth_assets_under_management
                  - oauth_disabled_assets_under_management
                  - assets_under_management_currency
                  - assets_under_management_calculated_at
                properties:
                  total_users:
                    type: integer
                    description: Number of users registered with your Client ID.
                    example: 19528
                  total_connected_users:
                    type: integer
                    description: >-
                      Number of users registered with your Client ID that have
                      at least one connection, active or disabled.
                    example: 2681
                  total_active_connections:
                    type: integer
                    description: >-
                      Number of active connections across users registered with
                      your Client ID.
                    example: 2265
                  total_disabled_connections:
                    type: integer
                    description: >-
                      Number of disabled connections across users registered
                      with your Client ID.
                    example: 708
                  oauth_total_users:
                    type: integer
                    nullable: true
                    description: >-
                      Number of users who have authorized your OAuth
                      application. `null` if your Client ID has no OAuth
                      application.
                    example: null
                  oauth_total_connected_users:
                    type: integer
                    nullable: true
                    description: >-
                      Number of users who have authorized your OAuth application
                      and have at least one connection, active or disabled.
                      `null` if your Client ID has no OAuth application.
                    example: null
                  oauth_total_active_connections:
                    type: integer
                    nullable: true
                    description: >-
                      Number of active connections across users who have
                      authorized your OAuth application. `null` if your Client
                      ID has no OAuth application.
                    example: null
                  oauth_total_disabled_connections:
                    type: integer
                    nullable: true
                    description: >-
                      Number of disabled connections across users who have
                      authorized your OAuth application. `null` if your Client
                      ID has no OAuth application.
                    example: null
                  assets_under_management:
                    type: number
                    format: double
                    nullable: true
                    description: >-
                      Total latest account value across active connections of
                      users registered with your Client ID, in
                      `assets_under_management_currency`. `null` until the first
                      daily snapshot has been calculated.
                    example: 104900000
                  disabled_assets_under_management:
                    type: number
                    format: double
                    nullable: true
                    description: >-
                      Total account value across disabled connections of users
                      registered with your Client ID, as of each connection's
                      last sync, in `assets_under_management_currency`. `null`
                      until the first daily snapshot has been calculated.
                    example: 159300000
                  oauth_assets_under_management:
                    type: number
                    format: double
                    nullable: true
                    description: >-
                      Total latest account value across active connections of
                      users who have authorized your OAuth application, in
                      `assets_under_management_currency`. `null` if your Client
                      ID has no OAuth application, or until the first daily
                      snapshot after it was added.
                    example: null
                  oauth_disabled_assets_under_management:
                    type: number
                    format: double
                    nullable: true
                    description: >-
                      Total account value across disabled connections of users
                      who have authorized your OAuth application, as of each
                      connection's last sync, in
                      `assets_under_management_currency`. `null` if your Client
                      ID has no OAuth application, or until the first daily
                      snapshot after it was added.
                    example: null
                  assets_under_management_currency:
                    type: string
                    description: ISO 4217 currency code the asset values are expressed in.
                    example: USD
                  assets_under_management_calculated_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Timestamp in [ISO
                      8601](https://en.wikipedia.org/wiki/ISO_8601) format
                      indicating when the connected asset values were last
                      calculated. `null` until the first daily snapshot has been
                      calculated.
                    example: '2026-10-08T02:47:00.000Z'
        '400':
          description: Unsupported currency
          content:
            application/json:
              schema:
                description: Example for failed request response
                type: object
                properties:
                  default_detail:
                    example: Unable to verify data sent
                  default_code:
                    example: 1076
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                description: Example for failed request response
                type: object
                properties:
                  default_detail:
                    example: Unable to verify signature sent
                  default_code:
                    example: 1076
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                description: Example for a rate-limited request response
                type: object
                properties:
                  detail:
                    example: Connection refreshed too recently. Please try again later.
                  status_code:
                    example: 429
                  code:
                    example: throttled
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                description: Example for a response that failed for unexpected reasons
                type: object
                properties:
                  detail:
                    example: Encountered an unexpected exception.
                  status_code:
                    example: 500
                  code:
                    example: 1000
        '503':
          description: >-
            Exchange rates for the requested currency are temporarily
            unavailable
          content:
            application/json:
              schema:
                description: >-
                  Example for a response that failed because exchange rates for
                  the requested currency are unavailable
                type: object
                properties:
                  detail:
                    example: >-
                      Exchange rates for the requested currency are temporarily
                      unavailable. Please try again later.
                  status_code:
                    example: 503
                  code:
                    example: 1167

```