# Limit

URL: /business/nouns/limit · Id: `noun:limit`

> A Limit is a bound on a Permission, Entitlement, or Mandate, checked before every call; exceeding it creates an Approval.

A Limit is a bound on a [Permission](/business/nouns/permission), [Entitlement](/business/nouns/entitlement), or [Mandate](/business/nouns/mandate), checked before every call; exceeding it creates an [Approval](/business/nouns/approval).

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `amount` | `money` | No | The most money it allows. |
| `count` | `integer` | No | The most calls or units it allows. |
| `period` | `string` | No | The window a rate resets over, such as a month. |
| `percent` | `number` | No | The largest share off a reference amount it allows, such as 15 percent off list Price. |
| `resets` | `string` | No | One of `calendar`, `rolling`: a calendar Limit resets at the start of each period, a rolling one counts the last period from now. |

## Object
```json
{
  "$id": "https://api.sb/routewise.dev/limits/limit_1",
  "$type": "Limit",
  "amount": {
    "amount": 25,
    "currency": "USD"
  },
  "count": 1,
  "period": "Example period",
  "percent": 1,
  "resets": "calendar"
}
```

## Relationships
None.

## Verbs
| Verb | Description | Subject | Event | Class |
| --- | --- | --- | --- | --- |
| [Limit.raise](/business/nouns/limit/raise) | Raise lifts a Limit after an Approval allows it, and the Action that waited on it proceeds. | [Founder](/agents/founding/founder) | [`Limit.raised`](/business/events/Limit.raised) | One-way (money): `send`, `do` |
| <a id="create"></a>[Limit.create](/business/nouns/limit/create) | Creates a Limit. Inherited from [Noun](/business/nouns/noun). | None. | `Limit.created` | Two-way: `try`, `send`, `do` |
| <a id="get"></a>[Limit.get](/business/nouns/limit/get) | Returns one Limit by id. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="list"></a>[Limit.list](/business/nouns/limit/list) | Returns Limits, newest first, one page at a time. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="update"></a>[Limit.update](/business/nouns/limit/update) | Changes the given properties of a Limit. Inherited from [Noun](/business/nouns/noun). | None. | `Limit.updated` | Two-way: `try`, `send`, `do` |
| <a id="delete"></a>[Limit.delete](/business/nouns/limit/delete) | Deletes a Limit; its history is kept. Inherited from [Noun](/business/nouns/noun). | None. | `Limit.deleted` | One-way: `send`, `do` |

## Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.

| Operation | `owner` | `admin` | `member` | `viewer` |
| --- | --- | --- | --- | --- |
| `Limit.create` | Yes | Yes | No | No |
| `Limit.get` | Yes | Yes | Yes | Yes |
| `Limit.list` | Yes | Yes | Yes | Yes |
| `Limit.update` | Yes | Yes | No | No |
| `Limit.delete` | Yes | Yes | No | No |
| `Limit.raise` | Yes | No | No | No |

## Call it

**Ask**

```text
Raise the latest limit.
```

**API**

```bash
curl -X POST https://api.sb/ledgerlark.com/limits/limit_1/raise \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":{}}'
```

```json
{
  "api": "https://api.sb/ledgerlark.com",
  "limit": {
    "$id": "https://api.sb/ledgerlark.com/limits/limit_1",
    "$type": "Limit",
    "amount": {
      "amount": 400,
      "currency": "USD"
    },
    "count": 1
  },
  "action": {
    "$id": "https://api.sb/ledgerlark.com/actions/action_1",
    "operation": "Limit.raise",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/ledgerlark.com/actions/action_1"
  }
}
```

**SDK**

```ts
import { $ } from 'startup-builder'

const limit = await $.Limit.raise({ limit: 'limit_1', to: {} })
```

**CLI**

```bash
npx startup-builder do Limit.raise --json '{"limit":"limit_1","to":{}}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Limit.raise({ limit: 'limit_1', to: {} })"
  }
}
```

## Example
The [Billing Specialist](/agents/finance/billing-specialist)'s refund Limit is $100. A $250 refund stops before it runs and opens an [Approval](/business/nouns/approval).