> ## 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

# Ringg Spaces by API

> Manage a Ringg Space family with the primary workspace's API key: create spaces, read the family, allocate concurrency and reallocate credit limits or balances.

## Manage the family by API

Every family endpoint takes the primary workspace's [API key](/documentation/manage-account/api-key) in `X-API-KEY`; there is no workspace header to set. A Ringg Space's own key works only inside that Ringg Space; family endpoints refuse it, usually with `403 Sub-workspaces are not enabled for this workspace.` If the primary's key gets that `403`, ask Ringg support to enable the feature for your primary workspace.

| Task | Endpoint |
| - | - |
| Create a Ringg Space | [Create Ringg Space](/api-reference/endpoint/sub-workspace/create-sub-workspace) |
| Read the family, allocations and usage | [Get Ringg Spaces](/api-reference/endpoint/sub-workspace/get-sub-workspaces) |
| List everyone with access | [List Family Members](/api-reference/endpoint/sub-workspace/list-family-members) |
| Allocate concurrency | [Allocate Concurrency](/api-reference/endpoint/sub-workspace/allocate-concurrency) |
| Set credit limits (postpaid) | [Reallocate Credit Limits](/api-reference/endpoint/sub-workspace/reallocate-credit-limits) |
| Set balances (prepaid) | [Reallocate Credit Balances](/api-reference/endpoint/sub-workspace/reallocate-credit-balances) |

Two things to know before you parse responses:

* **Money formats.** The read endpoints and the concurrency endpoint return amounts as JSON numbers (`200000.0`); the two allocation endpoints return decimal strings (`"200000.00"`). Parse both before doing arithmetic. In requests, amounts can be numbers or numeric strings; they are rounded to 2 decimals.
* **Agents inside a Ringg Space.** There is no family endpoint for this: a Ringg Space is a normal workspace, so call [Create agent](/api-reference/endpoint/assistant/create-agent) with that Ringg Space's own API key. The agent is invisible from the primary and from sibling Ringg Spaces.

To give a Ringg Space 20 concurrent calls (`PATCH /workspace/sub/{sub_workspace_id}/concurrency`):

<CodeGroup>
  ```bash cURL theme={null}
  curl -X PATCH "https://prod-api.ringg.ai/ca/api/v0/workspace/sub/$SUB_WORKSPACE_ID/concurrency" \
    -H "X-API-KEY: $RINGG_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"concurrency": 20}'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    `https://prod-api.ringg.ai/ca/api/v0/workspace/sub/${process.env.SUB_WORKSPACE_ID}/concurrency`,
    {
      method: "PATCH",
      headers: {
        "X-API-KEY": process.env.RINGG_API_KEY,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ concurrency: 20 }),
    }
  );
  console.log(await response.json());
  ```

  ```python Python theme={null}
  import os
  import requests

  response = requests.patch(
      f"https://prod-api.ringg.ai/ca/api/v0/workspace/sub/{os.environ['SUB_WORKSPACE_ID']}/concurrency",
      headers={"X-API-KEY": os.environ["RINGG_API_KEY"]},
      json={"concurrency": 20},
  )
  print(response.json())
  ```
</CodeGroup>


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