# Portfolio methods: brake, lift

URL: /code/sdk/portfolio/verbs · Id: `page:code/sdk/portfolio/verbs`

> The Portfolio Verbs brake, lift as typed SDK methods, with inputs, result, refusals and an example.

Reference for [Portfolio](/business/nouns/portfolio), one group of [Portfolio methods](/code/sdk/portfolio).

### Portfolio.brake
Brake stops one class of effects, such as sends, spend, publishes, or price changes, across a Portfolio query until it expires or is lifted. [Verb page](/business/nouns/portfolio/brake?interface=sdk).

```ts
interface PortfolioVerbs {
  brake(input: PortfolioBrakeInput, options?: SB.CallOptions): SB.Call<PortfolioBrakeOutput>
}
```

Emits [`Portfolio.braked`](/business/events/Portfolio.braked).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `portfolio` | [Portfolio](/business/nouns/portfolio) | Yes | The Portfolio whose Startups the brake covers. |
| `effects` | `string[]` | Yes | Any of `send`, `spend`, `publish`, and `price`. |
| `reason` | `text` | Yes | Why the effects stop. |
| `until` | `datetime` | Yes | When the brake expires. |
| `query` | `string` | No | Narrows the brake to the Startups that match, such as one Startup Template Version or one Cohort. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `brake` | [Setting](/business/nouns/setting) | Yes | The brake, held as a Setting that every matching Startup inherits. |
| `portfolio` | [Portfolio](/business/nouns/portfolio) | Yes | The Portfolio under the brake. |

**Refuses when**

| Check | Error | Fix | Then call |
| --- | --- | --- | --- |
| The key is valid, but its scopes do not allow this operation. | [`forbidden`](/code/api/errors/forbidden) | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |

**Example**

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

const { brake, portfolio } = await $.Portfolio.brake({ portfolio: 'portfolio_zkvUnP8LwY', effects: ['send'], reason: 'Example reason', until: '2026-10-22T12:00:00Z' })
```

### Portfolio.lift
Lift ends a brake before it expires, and the Actions it held resume their review and delay windows. [Verb page](/business/nouns/portfolio/lift?interface=sdk).

```ts
interface PortfolioVerbs {
  lift(input: PortfolioLiftInput, options?: SB.CallOptions): SB.Call<PortfolioLiftOutput>
}
```

Emits [`Portfolio.lifted`](/business/events/Portfolio.lifted).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `portfolio` | [Portfolio](/business/nouns/portfolio) | Yes | The braked Portfolio. |
| `brake` | [Setting](/business/nouns/setting) | Yes | The brake to lift. |
| `reason` | `text` | Yes | Why the effects may resume. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `brake` | [Setting](/business/nouns/setting) | Yes | The lifted brake, kept on record. |
| `portfolio` | [Portfolio](/business/nouns/portfolio) | Yes | The Portfolio, its brake lifted. |

**Refuses when**

| Check | Error | Fix | Then call |
| --- | --- | --- | --- |
| The key is valid, but its scopes do not allow this operation. | [`forbidden`](/code/api/errors/forbidden) | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |

**Example**

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

const { brake, portfolio } = await $.Portfolio.lift({ portfolio: 'portfolio_zkvUnP8LwY', brake: 'setting_mfZPXxFQYD', reason: 'Example reason' })
```