# Idea

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

> An Idea is a business concept that exists apart from any Startup that pursues it and outlives each one.

An Idea is a business concept that exists apart from any [Startup](/business/nouns/startup) that pursues it and outlives each one. Many Startups test one Idea as [Variants](/business/nouns/variant).

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `statement` | `text` | Yes | The concept in one line. |
| `status` | `string` | Yes | One of `open` or `pursued`. |

## Object
```json
{
  "$id": "https://api.sb/ledgerlark.com/ideas/idea_1",
  "$type": "Idea",
  "statement": "Keeps the books for independent contractors.",
  "status": "open"
}
```

## Relationships
- <a id="rel-pursued-by"></a>An Idea **is pursued by** many [Startups](/business/nouns/startup): many [Startups](/business/nouns/startup) can test one Idea side by side; the Idea outlives each Startup that pursues it. `pursuedBy`, inverse [`pursues`](/business/nouns/startup#rel-pursues).

## Lifecycle

| State | Meaning | Moves to |
| --- | --- | --- |
| `open` (first) | No Startup pursues it yet. | `pursued` by [Idea.pursue](/business/nouns/idea/pursue) |
| `pursued` | At least one Startup tests it; each further pursue adds a variant to the same Experiment. | None: it ends here. |

## Verbs
| Verb | Description | Subject | Event | Class |
| --- | --- | --- | --- | --- |
| [Idea.pursue](/business/nouns/idea/pursue) | Pursue starts a Startup on an Idea as one variant of the Experiment that tests the Idea. | [Founder](/agents/founding/founder) | [`Idea.pursued`](/business/events/Idea.pursued) | None. |
| <a id="create"></a>[Idea.create](/business/nouns/idea/create) | Creates an Idea. Inherited from [Noun](/business/nouns/noun). | None. | `Idea.created` | Two-way: `try`, `send`, `do` |
| <a id="get"></a>[Idea.get](/business/nouns/idea/get) | Returns one Idea by id. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="list"></a>[Idea.list](/business/nouns/idea/list) | Returns Ideas, newest first, one page at a time. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |

An Idea is kept forever and never edited: it has no `update` or `delete`.

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

| Operation | `owner` | `admin` | `member` | `viewer` |
| --- | --- | --- | --- | --- |
| `Idea.create` | Yes | Yes | Yes | No |
| `Idea.get` | Yes | Yes | Yes | Yes |
| `Idea.list` | Yes | Yes | Yes | Yes |
| `Idea.pursue` | Yes | Yes | Yes | No |

## Call it

**Ask**

```text
Pursue the latest idea.
```

**API**

```bash
curl -X POST https://api.sb/shiftnote.app/ideas/idea_1/pursue \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
```

```json
{
  "api": "https://api.sb/shiftnote.app",
  "startup": {
    "$id": "https://api.sb/shiftnote.app/startups/startup_1",
    "$type": "Startup",
    "name": "ShiftNote"
  },
  "idea": {
    "$id": "https://api.sb/shiftnote.app/ideas/idea_1",
    "$type": "Idea",
    "statement": "Schedules shifts for small medical clinics.",
    "status": "open"
  },
  "action": {
    "$id": "https://api.sb/shiftnote.app/actions/action_1",
    "operation": "Idea.pursue",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/shiftnote.app/actions/action_1"
  }
}
```

**SDK**

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

const { startup, idea } = await $.Idea.pursue({ idea: 'idea_1' })
```

**CLI**

```bash
npx startup-builder do Idea.pursue --json '{"idea":"idea_1"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Idea.pursue({ idea: 'idea_1' })"
  }
}
```

## Example
The Idea "invoicing for dentists" drives four Startups at once, each with its own [Brand](/business/nouns/brand) and [Price](/business/nouns/price). Three stall; the Idea outlives them and seeds a fifth.