# Startup routes: pause, pivot, read, resume

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

> The Startup Verbs pause, pivot, read, resume as api.sb routes, with inputs, result, refusals and an example.

Reference for [Startup](/business/nouns/startup), one group of [Startup routes](/code/api/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=api).

```text
POST /{namespace}/startups/{startup}/pause
```

Path: `startup`. Body, as JSON: the other inputs. 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**

```bash
curl -X POST https://api.sb/leaseline.app/startups/startup_l3hr1EnUGY/pause \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
```

```json
{
  "api": "https://api.sb/leaseline.app",
  "startup": {
    "$id": "https://api.sb/leaseline.app/startups/startup_l3hr1EnUGY",
    "$type": "Startup",
    "name": "Leaseline"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Startup.pause",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}
```

### 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=api).

```text
POST /{namespace}/startups/{startup}/pivot
```

Path: `startup`. Body, as JSON: the other inputs. 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**

```bash
curl -X POST https://api.sb/leaseline.app/startups/startup_l3hr1EnUGY/pivot \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"hypothesis":"hypothesis_Z1gjx1kbtc","experiment":"experiment_IyIJJPngKt","decision":"decision_ipoch3tTJh"}'
```

```json
{
  "api": "https://api.sb/leaseline.app",
  "startup": {
    "$id": "https://api.sb/leaseline.app/startups/startup_l3hr1EnUGY",
    "$type": "Startup",
    "name": "Leaseline"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Startup.pivot",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}
```

### 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=api).

```text
POST /{namespace}/startups/{startup}/read
```

Path: `startup`. Body, as JSON: the other inputs. 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**

```bash
curl -X POST https://api.sb/leaseline.app/startups/startup_l3hr1EnUGY/read \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"scope":"diligence"}'
```

```json
{
  "api": "https://api.sb/leaseline.app",
  "room": {},
  "gaps": {},
  "startup": {
    "$id": "https://api.sb/leaseline.app/startups/startup_l3hr1EnUGY",
    "$type": "Startup",
    "name": "Leaseline"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Startup.read",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}
```

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

```text
POST /{namespace}/startups/{startup}/resume
```

Path: `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**

```bash
curl -X POST https://api.sb/leaseline.app/startups/startup_l3hr1EnUGY/resume \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
```

```json
{
  "api": "https://api.sb/leaseline.app",
  "startup": {
    "$id": "https://api.sb/leaseline.app/startups/startup_l3hr1EnUGY",
    "$type": "Startup",
    "name": "Leaseline"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Startup.resume",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}
```