# Audit

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

> An Audit is one engagement with an outside firm: the namespaces in scope, the Criteria, the report period, and the firm’s Attestation.

An Audit is one engagement with an outside firm: the namespaces in scope, the [Criteria](/business/nouns/criterion), the report period, and the firm’s [Attestation](/business/nouns/attestation).

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `firm` | [Organization](/business/nouns/organization) | Yes | The licensed firm that performs the engagement. |
| `criteria` | list of [Criterion](/business/nouns/criterion) | Yes | The Criteria in scope. |
| `type` | `string` | Yes | One of `type1` (one date) or `type2` (a range). |
| `from` | `datetime` | Yes | The first day of the report period; never before the namespace’s first Event. |
| `to` | `datetime` | Yes | The last day of the report period. |
| `seed` | `string` | Yes | The sampling seed, committed before the period ends. |
| `attestation` | [Attestation](/business/nouns/attestation) | No | The firm’s signed opinion. |

## Object
```json
{
  "$id": "https://api.sb/patentpad.com/audits/audit_1",
  "$type": "Audit",
  "firm": "organization_1",
  "criteria": [
    "criterion_1"
  ],
  "type": "Example type",
  "from": "2026-10-22T12:00:00Z",
  "to": "2026-10-22T12:00:00Z",
  "seed": "Example seed",
  "attestation": "attestation_1"
}
```

## Relationships
- <a id="rel-relies-on"></a>An Audit **relies on** many [Proofs](/business/nouns/proof): the [Proofs](/business/nouns/proof) the auditing firm samples across the report period. `reliesOn`, inverse [`reliedOnBy`](/business/nouns/proof#rel-relied-on-by).

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

An Audit 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` |
| --- | --- | --- | --- | --- |
| `Audit.get` | Yes | Yes | Yes | Yes |
| `Audit.list` | Yes | Yes | Yes | Yes |

## Call it

**Ask**

```text
Show me the latest audit.
```

**API**

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

```json
{
  "api": "https://api.sb/shiftnote.app",
  "$type": "Audit",
  "$id": "https://api.sb/shiftnote.app/audits/audit_1",
  "audit": {
    "$id": "https://api.sb/shiftnote.app/audits/audit_1",
    "$type": "Audit",
    "firm": "organization_1",
    "criteria": [
      "criterion_1"
    ],
    "type": "Example type",
    "from": "2026-10-22T12:00:00Z"
  },
  "links": {
    "self": "https://api.sb/shiftnote.app/audits/audit_1",
    "up": "https://api.sb/shiftnote.app/audits"
  }
}
```

**SDK**

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

const audit = await $.Audit.get({ id: 'audit_1' })
```

**CLI**

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

**MCP**

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

## Example
A firm signs an engagement letter for a type 2 report over the first six months of the year. Signing creates the Audit, opens the firm's read-only namespace, and commits the sampling seed.