Portfolio routes: brake, lift
The Portfolio Verbs brake, lift as api.sb routes, with inputs, result, refusals and an example.
Reference for Portfolio, one group of Portfolio routes.
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.
POST /{namespace}/ portfolios/ {portfolio}/ brakePath: portfolio. Body, as JSON: the other inputs. Emits Portfolio.braked.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
portfolio | Portfolio | required | The Portfolio whose Startups the brake covers. |
effects | string[] | required | Any of send, spend, publish, and price. |
reason | text | required | Why the effects stop. |
until | datetime | required | When the brake expires. |
query | string | Narrows the brake to the Startups that match, such as one Startup Template Version or one Cohort. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
brake | Setting | required | The brake, held as a Setting that every matching Startup inherits. |
portfolio | Portfolio | required | 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 | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
Example
curl -X POST https: //api.sb/ leaseline.app/ portfolios/ portfolio_zkvUnP8LwY/ brake \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"effects": ["send"], "reason": "Example reason", "until": "2026-10-22T12: 00: 00Z"}'{
"api": "https: //api.sb/ leaseline.app",
"brake": {
"$id": "https: //api.sb/ leaseline.app/ settings/ setting_mfZPXxFQYD",
"$type": "Setting",
"key": "Example key",
"value": {}
},
"portfolio": {
"$id": "https: //api.sb/ leaseline.app/ portfolios/ portfolio_zkvUnP8LwY",
"$type": "Portfolio",
"id": "Example id",
"type": [
"noun_v0akLUrXCN"
]
},
"action": {
"$id": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG",
"operation": "Portfolio.brake",
"status": "done"
},
"links": {
"self": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG"
}
}Portfolio.lift
Lift ends a brake before it expires, and the Actions it held resume their review and delay windows. Verb page.
POST /{namespace}/ portfolios/ {portfolio}/ liftPath: portfolio. Body, as JSON: the other inputs. Emits Portfolio.lifted.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
portfolio | Portfolio | required | The braked Portfolio. |
brake | Setting | required | The brake to lift. |
reason | text | required | Why the effects may resume. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
brake | Setting | required | The lifted brake, kept on record. |
portfolio | Portfolio | required | 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 | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
Example
curl -X POST https: //api.sb/ leaseline.app/ portfolios/ portfolio_zkvUnP8LwY/ lift \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"brake": "setting_mfZPXxFQYD", "reason": "Example reason"}'{
"api": "https: //api.sb/ leaseline.app",
"brake": {
"$id": "https: //api.sb/ leaseline.app/ settings/ setting_mfZPXxFQYD",
"$type": "Setting",
"key": "Example key",
"value": {}
},
"portfolio": {
"$id": "https: //api.sb/ leaseline.app/ portfolios/ portfolio_zkvUnP8LwY",
"$type": "Portfolio",
"id": "Example id",
"type": [
"noun_v0akLUrXCN"
]
},
"action": {
"$id": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG",
"operation": "Portfolio.lift",
"status": "done"
},
"links": {
"self": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG"
}
}