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

# Update default limits

> Update the free account settings and default limits of your white label platform

This endpoint changes how your platform treats users who do not have a subscription plan: whether they can use your platform, the price per minute they pay, and their default limits. Send only the keys you want to change: everything you leave out stays as it is. The response returns all the values after the change, in the same format as [Get default limits](/api-reference/white-label/get-default-limits).

<Note>
  This endpoint is available to the **account owner** (with an active plan) and to team members with **Billing Access**. Other users receive a 403 Forbidden error and nothing is saved.
</Note>

### Request Body

<ParamField body="allow_free_accounts" type="boolean">
  `true` lets users use your platform without a subscription plan
</ParamField>

<ParamField body="free_account_extra_minutes_cost" type="number">
  The price per minute for users without a subscription plan, in your currency. Up to 2 decimals, and at least `minimum_minute_cost` from [Get default limits](/api-reference/white-label/get-default-limits), which is your own cost per minute rounded up to the cent. A new price can take up to 15 minutes to apply to every user.
</ParamField>

<ParamField body="limits" type="object">
  The default limits to change, keyed as in [Limits](#limits). Limits you leave out stay unchanged. Count limits take an integer from `-1` to `100000` (`-1` means unlimited, `0` means none). Boolean limits take `true` or `false`.

  Limits can only be changed while `allow_free_accounts` is on, either already or in the same request. Otherwise the request returns 422 and nothing is saved.
</ParamField>

### Response

<ResponseField name="message" type="string">
  Success message
</ResponseField>

<ResponseField name="data" type="object">
  All your free account settings and default limits after the change, in the same format as [Get default limits](/api-reference/white-label/get-default-limits)
</ResponseField>

<ResponseExample>
  ```json 200 Default Limits Updated theme={null}
  {
    "message": "Default limits updated.",
    "data": {
      "allow_free_accounts": true,
      "free_account_extra_minutes_cost": 0.25,
      "minimum_minute_cost": 0.09,
      "currency": "USD",
      "limits": {
        "assistants": 2,
        "campaigns": 1,
        "cloned_voices": 0,
        "knowledgebases": 1,
        "mid_call_tools": 1,
        "parallel_calls": 1,
        "automation_runs": 500,
        "own_numbers": 1,
        "web_widget": false,
        "secondary_languages": true,
        "automation_platform": true,
        "calendar_integrations": true,
        "custom_dashboards": false,
        "ai_prompt_editor": true,
        "flow_builder": true,
        "ai_connector": true
      }
    }
  }
  ```

  ```json 401 Unauthenticated theme={null}
  {
    "message": "Unauthenticated."
  }
  ```

  ```json 403 Not Administrator theme={null}
  {
    "message": "You are not an administrator."
  }
  ```

  ```json 403 No Billing Access theme={null}
  {
    "message": "You do not have access to these settings."
  }
  ```

  ```json 422 Free Accounts Off theme={null}
  {
    "message": "Default limits apply only while allow_free_accounts is on.",
    "errors": {
      "limits": ["Default limits apply only while allow_free_accounts is on."]
    }
  }
  ```

  ```json 422 Price Too Low theme={null}
  {
    "message": "The free account extra minutes cost field must be at least 0.09.",
    "errors": {
      "free_account_extra_minutes_cost": ["The free account extra minutes cost field must be at least 0.09."]
    }
  }
  ```

  ```json 422 Unsupported Limit theme={null}
  {
    "message": "The limits field must be an object with only the supported keys.",
    "errors": {
      "limits": ["The limits field must be an object with only the supported keys."]
    }
  }
  ```

  ```json 429 Too Many Requests theme={null}
  {
    "message": "Too Many Attempts."
  }
  ```
</ResponseExample>

### How default limits work

* Default limits apply to your users who do not have a subscription plan, and only while `allow_free_accounts` is on. Users with a plan get the limits of their plan.
* Limits you set for a single user with [Update user settings](/api-reference/white-label/update-user-settings) take priority over both.
* Turning `allow_free_accounts` off keeps the default limits you set. They apply again when you turn it back on.

### Limits

| Key | Type | What it limits |
| - | - | - |
| `assistants` | count | AI assistants the user can create |
| `campaigns` | count | Outbound campaigns |
| `cloned_voices` | count | Cloned voices |
| `knowledgebases` | count | Knowledge bases |
| `mid_call_tools` | count | Mid-call tools (Tools & MCP) |
| `parallel_calls` | count | Calls running at the same time |
| `automation_runs` | count | Automation runs per month |
| `own_numbers` | count | Own phone numbers the user can add |
| `web_widget` | boolean | Web widget |
| `secondary_languages` | boolean | Secondary languages for assistants |
| `automation_platform` | boolean | Automation platform |
| `calendar_integrations` | boolean | Calendar integrations |
| `custom_dashboards` | boolean | Custom dashboards |
| `ai_prompt_editor` | boolean | AI prompt editor |
| `flow_builder` | boolean | Flow builder |
| `ai_connector` | boolean | Connect AI, the connector for ChatGPT and Claude |

All of these except `calendar_integrations` can also be set for a single user with [Update user settings](/api-reference/white-label/update-user-settings).

### Partial updates

* Keys you leave out stay unchanged, and so do the limits you leave out of `limits`.
* An unknown top-level field returns 422 with "The X field is not supported.", and an unknown key inside `limits` returns 422 with "The limits field must be an object with only the supported keys.". In both cases nothing is saved, not even the valid parts of the request.
* Send only the keys you want to change.

### Rate limit

The platform settings, default limits, user settings and plan endpoints share a limit of 60 requests per minute for each account. Above it they return `429`, and the `Retry-After` response header tells you how many seconds to wait.

### Example

```bash theme={null}
curl -X PATCH https://app.autocalls.ai/api/white-label/default-limits \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "allow_free_accounts": true,
    "free_account_extra_minutes_cost": 0.25,
    "limits": {
      "assistants": 2,
      "parallel_calls": 1,
      "web_widget": false
    }
  }'
```


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