# Standard

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

> A Standard is a spec an Interface conforms to, so a Startup may publish its Product’s Verbs in a shape outside callers already use.

A Standard is a spec an [Interface](/business/nouns/interface) conforms to, so a [Startup](/business/nouns/startup) may publish its [Product](/business/nouns/product)’s [Verbs](/business/nouns/verb) in a shape outside callers already use.

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `spec` | `url` | Yes | The published specification its translator implements. |
| `path` | `string` | Yes | Where its translator answers on an Interface, such as `/scim/v2` or `/v1/chat/completions`. |
| `operations` | `string[]` | Yes | The operations its translator accepts; a Startup maps each one onto one of its own Verbs. |

## Object
```json
{
  "$id": "https://api.sb/patentpad.com/standards/standard_1",
  "$type": "Standard",
  "spec": "https://patentpad.com",
  "path": "/",
  "operations": [
    "chat.completions.create"
  ]
}
```

## Relationships
- <a id="rel-spoken-by"></a>A Standard **spoken by** many [Interfaces](/business/nouns/interface): Callers in a Standard’s shape reach the [Interface](/business/nouns/interface)’s [Verbs](/business/nouns/verb) through the platform’s one translator for that Standard. `spokenBy`, inverse [`speaks`](/business/nouns/interface#rel-speaks).

## Verbs
| Verb | Description | Subject | Event | Class |
| --- | --- | --- | --- | --- |
| <a id="get"></a>[Standard.get](/business/nouns/standard/get) | Returns one Standard by id. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="list"></a>[Standard.list](/business/nouns/standard/list) | Returns Standards, newest first, one page at a time. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |

A Standard 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` |
| --- | --- | --- | --- | --- |
| `Standard.get` | Yes | Yes | Yes | Yes |
| `Standard.list` | Yes | Yes | Yes | Yes |

## Call it

**Ask**

```text
Show me the latest standard.
```

**API**

```bash
curl https://api.sb/shiftnote.app/standards/standard_1 \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
```

```json
{
  "api": "https://api.sb/shiftnote.app",
  "$type": "Standard",
  "$id": "https://api.sb/shiftnote.app/standards/standard_1",
  "standard": {
    "$id": "https://api.sb/shiftnote.app/standards/standard_1",
    "$type": "Standard",
    "spec": "https://shiftnote.app",
    "path": "/",
    "operations": [
      "chat.completions.create"
    ]
  },
  "links": {
    "self": "https://api.sb/shiftnote.app/standards/standard_1",
    "up": "https://api.sb/shiftnote.app/standards"
  }
}
```

**SDK**

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

const standard = await $.Standard.get({ id: 'standard_1' })
```

**CLI**

```bash
npx startup-builder do Standard.get --json '{"id":"standard_1"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Standard.get({ id: 'standard_1' })"
  }
}
```

## Example
`listsmith.ai` maps the `openai-chat` Standard's `chat.completions.create` operation onto its own `Listing.write` Verb. A [Customer](/business/nouns/customer)'s existing model client then calls `https://api.listsmith.ai/v1/chat/completions` and gets a listing back in the shape it expects.