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

> ## Agent Instructions
> To search or read these docs, connect the Ringg docs MCP server at https://docs.ringg.ai/mcp (no key needed; tools search_ringg_ai and query_docs_filesystem_ringg_ai) instead of browsing pages one by one. Setup for each client: https://docs.ringg.ai/resources/mcp-server/docs-mcp-server/mcp-for-ai-assistants.md
> The dashboard labels agents "Assistants"; these docs say "agent". Both mean the same object, identified by agent_id.
> API base URL: https://prod-api.ringg.ai/ca/api/v0. Send the workspace API key in the X-API-KEY header, from server-side code only.
> Placing a call dials a real phone number and spends credits. Confirm the number with the user before calling.
> To act on a Ringg workspace (place calls, edit agents, read transcripts), use the separate Ringg workspace MCP server at https://mcp.ringg.ai/mcp: https://docs.ringg.ai/resources/mcp-server/workspace-mcp-server/overview.md

> Get your whole Ringg Space family in one call: the primary's summary, each Ringg Space's allocation, members and month-to-date usage, and family totals.

# Get Ringg Spaces

export const RelatedTopics = ({items}) => <div className="not-prose mt-12">
    <div className="text-sm font-medium text-gray-500 dark:text-zinc-400 mb-3">Related topics</div>
    <div className="flex flex-col gap-2.5">
      {items.map(([title, href]) => <a key={href} href={href} className="flex items-center gap-2.5 text-sm text-gray-700 hover:text-gray-950 dark:text-zinc-300 dark:hover:text-white">
          <Icon icon="file-text" size={16} color="currentColor" />
          {title}
        </a>)}
    </div>
  </div>;

Use it for a tenant dashboard in your own admin tool, to check headroom before allocating concurrency or credit, and to reconcile per-client usage at month end.

## Reading the response

* `family.concurrency_available` is what [Allocate Concurrency](/api-reference/account/ringg-spaces/allocate-concurrency) can still hand out; `family.available_pot` (prepaid) is what [Reallocate Credit Balances](/api-reference/account/ringg-spaces/reallocate-credit-balances) can still move out of the primary.
* `family.is_individual_entity` tells you the billing mode: `true` for individual (each Ringg Space has its own wallet or limit), `false` for common (one pool on the primary). The keys present in `family` and in each row's `billing` depend on it; the response schema below lists them per mode.
* `usage_this_period` is the value of completed calls since the 1st of the current month in the `Asia/Kolkata` timezone, in the workspace's billing currency.
* Amounts are JSON numbers here (`200000.0`); the two allocation endpoints return decimal strings.

## Notes

* Works on a primary with no Ringg Spaces yet; `sub_workspaces` is then an empty list.
* Archived Ringg Spaces are not listed.

## Errors

* `400`: `Sub-workspaces cannot have their own sub-workspaces.` — the key belongs to a Ringg Space that has Ringg Spaces enabled.
* `401`: Invalid or missing API key.
* `403`: `Sub-workspaces are not enabled for this workspace.` — Ringg Spaces are not enabled on the primary, or the key belongs to a Ringg Space.

<RelatedTopics items={[["Ringg Spaces API overview", "/documentation/manage-account/ringg-spaces/ringg-spaces-by-api#manage-the-family-by-api"]]} />


## OpenAPI

````yaml get /workspace/sub
openapi: 3.0.0
info:
  title: Ringg AI API Documentation
  description: >-
    The Ringg AI REST API. Base URL https://prod-api.ringg.ai/ca/api/v0; send
    your workspace API key in the X-API-KEY header from server-side code only.
    Requests and responses are JSON.
  version: 2.0.0
  contact:
    name: Ringg AI support
    email: admin@ringg.ai
    url: https://docs.ringg.ai
servers:
  - url: https://prod-api.ringg.ai/ca/api/v0
security: []
tags:
  - name: workspace
    description: Endpoints for managing your workspace.
  - name: agent
    description: Endpoints for managing agents.
  - name: calling
    description: Endpoints for making and managing calls.
  - name: campaign
    description: Endpoints for managing campaigns.
  - name: analytics
    description: Endpoints for accessing call analytics and performance metrics.
  - name: termination
    description: Endpoints for terminating active calls using different methods.
  - name: knowledgebase
    description: Endpoints for managing knowledge bases.
paths:
  /workspace/sub:
    get:
      tags:
        - workspace
      summary: Get Ringg Spaces
      description: >-
        Returns the whole family in one call: the primary's summary, one row per
        active Ringg Space with its allocation, members and month-to-date usage,
        and the family totals. Works on a primary that has no Ringg Spaces yet
        (empty list).
      operationId: getSubWorkspaces
      parameters:
        - name: X-API-KEY
          in: header
          description: >-
            (Required) The API key of the PRIMARY workspace. A Ringg Space's own
            key is refused (403, or 400 if Ringg Spaces are enabled on it).
          required: true
          schema:
            type: string
            example: rg_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      responses:
        '200':
          description: 'Successful Response: The family overview.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  primary:
                    type: object
                    properties:
                      id:
                        type: string
                        example: 00000000-0000-4000-8000-000000000107
                      name:
                        type: string
                        example: Acme Collections HQ
                      concurrency:
                        type: integer
                        example: 50
                      limit_concurrency:
                        type: integer
                        example: 50
                      member_count:
                        type: integer
                        description: Direct members of the primary.
                        example: 4
                      billing:
                        type: object
                        description: >-
                          Money block of one workspace. Prepaid: account_type,
                          currency, total_available_credits. Postpaid:
                          account_type, currency, credit_limit, utilized_limit
                          (both null for a sub in a common-billing family, whose
                          charges pool on the primary).
                        properties:
                          account_type:
                            type: string
                            enum:
                              - prepaid
                              - postpaid
                            example: postpaid
                          currency:
                            type: string
                            enum:
                              - INR
                              - USD
                            example: INR
                          total_available_credits:
                            type: number
                            nullable: true
                            description: 'Prepaid only: the workspace''s own wallet.'
                            example: 5000
                          credit_limit:
                            type: number
                            nullable: true
                            description: Postpaid only.
                            example: 200000
                          utilized_limit:
                            type: number
                            nullable: true
                            description: Postpaid only.
                            example: 34210.5
                      usage_this_period:
                        type: number
                        example: 0
                  sub_workspaces:
                    type: array
                    description: Active Ringg Spaces, oldest first.
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: 00000000-0000-4000-8000-000000000101
                        name:
                          type: string
                          example: Mumbai Collections
                        created_at:
                          type: string
                          format: date-time
                          example: '2026-09-01T06:41:12.884312+00:00'
                        concurrency:
                          type: integer
                          description: Concurrent calls allocated to this Ringg Space.
                          example: 20
                        limit_concurrency:
                          type: integer
                          description: >-
                            The Ringg Space's ceiling: its own allocation in an
                            individual-billing family, the family total in a
                            common-billing family.
                          example: 20
                        member_counts:
                          type: object
                          properties:
                            direct:
                              type: integer
                              example: 2
                            inherited:
                              type: integer
                              example: 4
                        billing:
                          type: object
                          description: >-
                            Money block of one workspace. Prepaid: account_type,
                            currency, total_available_credits. Postpaid:
                            account_type, currency, credit_limit, utilized_limit
                            (both null for a sub in a common-billing family,
                            whose charges pool on the primary).
                          properties:
                            account_type:
                              type: string
                              enum:
                                - prepaid
                                - postpaid
                              example: postpaid
                            currency:
                              type: string
                              enum:
                                - INR
                                - USD
                              example: INR
                            total_available_credits:
                              type: number
                              nullable: true
                              description: 'Prepaid only: the workspace''s own wallet.'
                              example: 5000
                            credit_limit:
                              type: number
                              nullable: true
                              description: Postpaid only.
                              example: 200000
                            utilized_limit:
                              type: number
                              nullable: true
                              description: Postpaid only.
                              example: 34210.5
                        usage_this_period:
                          type: number
                          description: >-
                            Charges for completed calls this calendar month
                            (Asia/Kolkata), in the workspace's billing currency.
                          example: 34210.5
                  family:
                    type: object
                    description: >-
                      Family totals. Always: the concurrency keys and
                      is_individual_entity. Postpaid families add credit_limit,
                      utilized_total, available_total. Prepaid individual
                      families add available_pot, allocated_balance_total,
                      family_available_total. Prepaid common families add
                      available_pot and family_available_total.
                    properties:
                      concurrency_capacity:
                        type: integer
                        description: >-
                          Concurrent calls the family owns (bought on the
                          primary).
                        example: 50
                      concurrency_allocated:
                        type: integer
                        description: Sum of the Ringg Spaces' allocations.
                        example: 20
                      concurrency_available:
                        type: integer
                        example: 30
                      is_individual_entity:
                        type: boolean
                        description: >-
                          true = individual billing (each sub has its own wallet
                          or limit); false = common billing (one pool on the
                          primary).
                        example: true
                      credit_limit:
                        type: number
                        nullable: true
                        description: 'Postpaid: the family total.'
                        example: 500000
                      utilized_total:
                        type: number
                        nullable: true
                        description: 'Postpaid: primary + Ringg Spaces utilized.'
                        example: 46710.5
                      available_total:
                        type: number
                        nullable: true
                        description: 'Postpaid: credit_limit - utilized_total.'
                        example: 453289.5
                      available_pot:
                        type: number
                        nullable: true
                        description: 'Prepaid: the primary''s unallocated balance.'
                        example: 12000
                      allocated_balance_total:
                        type: number
                        nullable: true
                        description: 'Prepaid individual: sum of the Ringg Spaces'' wallets.'
                        example: 8000
                      family_available_total:
                        type: number
                        nullable: true
                        description: 'Prepaid: pot + allocated wallets.'
                        example: 20000
              example:
                primary:
                  id: 00000000-0000-4000-8000-000000000107
                  name: Acme Collections HQ
                  concurrency: 50
                  limit_concurrency: 50
                  member_count: 4
                  billing:
                    account_type: postpaid
                    currency: INR
                    credit_limit: 500000
                    utilized_limit: 12500
                  usage_this_period: 0
                sub_workspaces:
                  - id: 00000000-0000-4000-8000-000000000101
                    name: Mumbai Collections
                    created_at: '2026-09-01T06:41:12.884312+00:00'
                    concurrency: 20
                    limit_concurrency: 20
                    member_counts:
                      direct: 2
                      inherited: 4
                    billing:
                      account_type: postpaid
                      currency: INR
                      credit_limit: 200000
                      utilized_limit: 34210.5
                    usage_this_period: 34210.5
                family:
                  concurrency_capacity: 50
                  concurrency_allocated: 20
                  concurrency_available: 30
                  is_individual_entity: true
                  credit_limit: 500000
                  utilized_total: 46710.5
                  available_total: 453289.5
        '400':
          description: >-
            Bad Request - The API key belongs to a Ringg Space that has Ringg
            Spaces enabled.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Sub-workspaces cannot have their own sub-workspaces.
        '401':
          description: Unauthorized - Invalid or missing API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Invalid credentials
        '403':
          description: >-
            Forbidden - Ringg Spaces are not enabled for this workspace (also
            what a Ringg Space's own key gets), or the caller is not an active
            member of the primary.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Sub-workspaces are not enabled for this workspace.
        '500':
          description: Internal Server Error - Something went wrong on our end.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: An unexpected error occurred. Please try again later.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.