# Startup methods: pause, pivot, read, resume

URL: /code/sdk/startup/verbs-pause · Id: `page:code/sdk/startup/verbs-pause`

> The Startup Verbs pause, pivot, read, resume as typed SDK methods, with inputs, result, refusals and an example.

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

### Startup.pause
Pause moves a Startup to Dormant: its scheduled Workflows stop, and its Sites and records stay in place. [Verb page](/business/nouns/startup/pause?interface=sdk).

```ts
interface StartupVerbs {
  pause(input: StartupPauseInput, options?: SB.CallOptions): SB.Call<Startup>
}
```

Emits [`Startup.paused`](/business/events/Startup.paused).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `startup` | [Startup](/business/nouns/startup) | Yes | The Startup to pause. |
| `reason` | `text` | No | Why the Startup pauses. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `startup` | [Startup](/business/nouns/startup) | Yes | The Startup, now Dormant. |

**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. |
| The record is not in a state that allows this Verb, so the call is refused. | [`refused`](/code/api/errors/refused) | Read the record, run the Verb that moves it to an allowed state, then retry. | None. |

**Example**

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

const startup = await $.Startup.pause({ startup: 'startup_l3hr1EnUGY' })
```

### Startup.pivot
Pivot records a founder Decision, on an Experiment’s Evidence against one slot Hypothesis, and merges the new Founding Hypothesis Version. [Verb page](/business/nouns/startup/pivot?interface=sdk).

```ts
interface StartupVerbs {
  pivot(input: StartupPivotInput, options?: SB.CallOptions): SB.Call<Startup>
}
```

Emits [`Startup.pivoted`](/business/events/Startup.pivoted).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `startup` | [Startup](/business/nouns/startup) | Yes | The Startup that pivots, in any state from Building to Scale. |
| `hypothesis` | [Hypothesis](/business/nouns/hypothesis) | Yes | The slot Hypothesis the Evidence went against: customer, problem, approach, switch or differentiation. |
| `experiment` | [Experiment](/business/nouns/experiment) | Yes | The Experiment whose Evidence the Decision cites; it tested that Hypothesis. |
| `decision` | [Decision](/business/nouns/decision) | Yes | The founder’s pivot Decision, citing the Evidence behind it. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `startup` | [Startup](/business/nouns/startup) | Yes | The Startup, in the Lifecycle state it held. |

**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. |
| Unless the Experiment tested the named Hypothesis; a field change never starts a pivot | [`refused`](/code/api/errors/refused) | Clear what the check names, then call it again. | None. |

**Example**

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

const startup = await $.Startup.pivot({ startup: 'startup_l3hr1EnUGY', hypothesis: 'hypothesis_Z1gjx1kbtc', experiment: 'experiment_IyIJJPngKt', decision: 'decision_ipoch3tTJh' })
```

### Startup.read
Read compiles a Startup’s records into one scoped room, such as a diligence room, with every number citing its Proof. [Verb page](/business/nouns/startup/read?interface=sdk).

```ts
interface StartupVerbs {
  read(input: StartupReadInput, options?: SB.CallOptions): SB.Call<StartupReadOutput>
}
```

Emits [`Startup.read`](/business/events/Startup.read).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `startup` | [Startup](/business/nouns/startup) | Yes | The Startup to read. |
| `scope` | `string` | Yes | What the room holds: `diligence` for a raise, a sale or an LP look-through. |
| `reader` | [Party](/business/nouns/party) | No | Who reads it; access is a Permission that expires, readable over MCP. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `room` | `json` | Yes | Statements, Metrics, cap table, Agreements in force, Control Proofs and open Disputes, each linked to its record. |
| `gaps` | `json` | Yes | Each failed readiness check with its fix, such as a Period still open. |
| `startup` | [Startup](/business/nouns/startup) | Yes | The Startup the room was compiled from. |

**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 { room, gaps, startup } = await $.Startup.read({ startup: 'startup_l3hr1EnUGY', scope: 'diligence' })
```

### Startup.resume
Resume returns a Dormant Startup to the Lifecycle state it held when it paused. [Verb page](/business/nouns/startup/resume?interface=sdk).

```ts
interface StartupVerbs {
  resume(input: StartupResumeInput, options?: SB.CallOptions): SB.Call<Startup>
}
```

Emits [`Startup.resumed`](/business/events/Startup.resumed).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `startup` | [Startup](/business/nouns/startup) | Yes | The Dormant Startup. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `startup` | [Startup](/business/nouns/startup) | Yes | The Startup in its prior state. |

**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. |
| The record is not in a state that allows this Verb, so the call is refused. | [`refused`](/code/api/errors/refused) | Read the record, run the Verb that moves it to an allowed state, then retry. | None. |

**Example**

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

const startup = await $.Startup.resume({ startup: 'startup_l3hr1EnUGY' })
```