# Credential

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

> A Credential is a standing authority a regulator grants a person or entity to perform certain acts in a jurisdiction.

A Credential is a standing authority a regulator grants a person or entity to perform certain acts in a jurisdiction.

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `issuer` | `string` | Yes | The regulator or registry that grants it. |
| `jurisdiction` | `string` | Yes | Where it applies. |
| `standing` | `string` | No | Whether it is in good standing, read fresh on every use. |

## Object
```json
{
  "$id": "https://api.sb/patentpad.com/credentials/credential_1",
  "$type": "Credential",
  "issuer": "Example issuer",
  "jurisdiction": "US-DE",
  "standing": "Example standing"
}
```

## Relationships
- <a id="rel-attestations"></a>A Credential **has** many [Attestations](/business/nouns/attestation): the Credential the signing [Worker](/business/nouns/worker) held when it signed. `attestations`, inverse [`signedUnder`](/business/nouns/attestation#rel-signed-under).
- <a id="rel-authorizes"></a>A Credential **authorizes** many [Reserved Acts](/business/nouns/reserved-act): a Credential lets its holder perform the [Reserved Acts](/business/nouns/reserved-act) the law keeps for it, in its jurisdiction. `authorizes`, inverse [`requires`](/business/nouns/reserved-act#rel-requires).
- <a id="rel-held-by"></a>A Credential **is held by** one [Worker](/business/nouns/worker): a [Worker](/business/nouns/worker) performs a [Reserved Act](/business/nouns/reserved-act) only while it holds the Credential that authorizes it, in good standing. `heldBy`, inverse [`holds`](/business/nouns/worker#rel-holds).
- <a id="rel-held-by-supplier"></a>A Credential **is held by supplier** one [Supplier](/business/nouns/supplier): the Credentials a [Supplier](/business/nouns/supplier) holds decide which [Reserved Acts](/business/nouns/reserved-act) it may perform; standing is read fresh on every use. `heldBySupplier`, inverse [`holds`](/business/nouns/supplier#rel-holds).

## Verbs
| Verb | Description | Subject | Event | Class |
| --- | --- | --- | --- | --- |
| [Credential.verify](/business/nouns/credential/verify) | Verify confirms a Credential with the authority that issued it and records when it expires. | [Supply Manager](/agents/operations/supply-manager) | [`Credential.verified`](/business/events/Credential.verified) | None. |
| <a id="create"></a>[Credential.create](/business/nouns/credential/create) | Creates a Credential. Inherited from [Noun](/business/nouns/noun). | None. | `Credential.created` | Two-way: `try`, `send`, `do` |
| <a id="get"></a>[Credential.get](/business/nouns/credential/get) | Returns one Credential by id. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="list"></a>[Credential.list](/business/nouns/credential/list) | Returns Credentials, newest first, one page at a time. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="update"></a>[Credential.update](/business/nouns/credential/update) | Changes the given properties of a Credential. Inherited from [Noun](/business/nouns/noun). | None. | `Credential.updated` | Two-way: `try`, `send`, `do` |
| <a id="delete"></a>[Credential.delete](/business/nouns/credential/delete) | Deletes a Credential; its history is kept. Inherited from [Noun](/business/nouns/noun). | None. | `Credential.deleted` | One-way: `send`, `do` |

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

| Operation | `owner` | `admin` | `member` | `viewer` |
| --- | --- | --- | --- | --- |
| `Credential.create` | Yes | Yes | No | No |
| `Credential.get` | Yes | Yes | Yes | Yes |
| `Credential.list` | Yes | Yes | Yes | Yes |
| `Credential.update` | Yes | Yes | No | No |
| `Credential.delete` | Yes | Yes | No | No |
| `Credential.verify` | Yes | Yes | No | No |

## Call it

**Ask**

```text
Verify the latest credential.
```

**API**

```bash
curl -X POST https://api.sb/tutorloop.com/credentials/credential_1/verify \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
```

```json
{
  "api": "https://api.sb/tutorloop.com",
  "credential": {
    "$id": "https://api.sb/tutorloop.com/credentials/credential_1",
    "$type": "Credential",
    "issuer": "Example issuer",
    "jurisdiction": "US-DE"
  },
  "action": {
    "$id": "https://api.sb/tutorloop.com/actions/action_1",
    "operation": "Credential.verify",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/tutorloop.com/actions/action_1"
  }
}
```

**SDK**

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

const credential = await $.Credential.verify({ credential: 'credential_1' })
```

**CLI**

```bash
npx startup-builder do Credential.verify --json '{"credential":"credential_1"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Credential.verify({ credential: 'credential_1' })"
  }
}
```

## Example
A state appraiser license is a Credential. A [Supplier](/business/nouns/supplier) holding it performs appraisals in that state until the license lapses.