# Screening

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

> A Screening is one check of a Party against official registers and restricted-party lists, with each list’s version, any matches and the outcome.

A Screening is one check of a [Party](/business/nouns/party) against official registers and restricted-party lists, with each list’s version, any matches and the outcome.

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `lists` | `json` | Yes | Each register or list checked, with the version read, such as a sanctions list dated 2026-10-20. |
| `matches` | `json` | No | Each entry that resembled the Party, with the list it came from and how closely it matched. |
| `outcome` | `string` | Yes | `clear` lets money move; `match` holds pending Orders; `review` opens an Approval. Never randomized. |
| `via` | `string` | Yes | `platform` for a Startup-side screen; `stripe` for Stripe’s own verification result, recorded on the same Party. |

## Object
```json
{
  "$id": "https://api.sb/quietcopy.com/screenings/screening_1",
  "$type": "Screening",
  "lists": {},
  "matches": {},
  "outcome": "clear",
  "via": "platform"
}
```

## Relationships
- <a id="rel-screens"></a>A Screening **screens** one [Party](/business/nouns/party): a [Party](/business/nouns/party) is screened before its first money move and again when its details change; every result stays. `screens`, inverse [`screenings`](/business/nouns/party#rel-screenings).

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

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

## Call it

**Ask**

```text
Show me the latest screening.
```

**API**

```bash
curl https://api.sb/petpantry.shop/screenings/screening_1 \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
```

```json
{
  "api": "https://api.sb/petpantry.shop",
  "$type": "Screening",
  "$id": "https://api.sb/petpantry.shop/screenings/screening_1",
  "screening": {
    "$id": "https://api.sb/petpantry.shop/screenings/screening_1",
    "$type": "Screening",
    "lists": {},
    "outcome": "clear",
    "via": "platform"
  },
  "links": {
    "self": "https://api.sb/petpantry.shop/screenings/screening_1",
    "up": "https://api.sb/petpantry.shop/screenings"
  }
}
```

**SDK**

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

const screening = await $.Screening.get({ id: 'screening_1' })
```

**CLI**

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

**MCP**

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

## Example
A new buyer at a data marketplace places a $12,000 [Order](/business/nouns/order). The Screening checks three sanctions lists, finds no match, and records the outcome clear, so the charge proceeds.