> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corsair.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# WaiverFile API reference

> API reference for the WaiverFile plugin in Corsair: every `waiverfile.api.*` operation with its input and output types, taken from the plugin's Zod schemas.

> [!NOTE]
>
> **New to Corsair?** See [API access](https://docs.corsair.dev/concepts/api.md), [authentication](https://docs.corsair.dev/concepts/auth.md), and [error handling](https://docs.corsair.dev/concepts/error-handling).

## Event Categories

### create

`eventCategories.create`

Create an event category, active or not

**Risk:** `write`

```ts theme={null}
await corsair.waiverfile.api.eventCategories.create({ name: 'Open jump', active: true });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `name` | `string` | Yes | — |
| `active` | `boolean` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `ID` | `string \| null` | No | — |
| `SiteID` | `string \| null` | No | — |
| `Name` | `string \| null` | No | — |
| `Status` | `number \| null` | No | 0 = active, 1 = disabled, 2 = deleted. |
| `OrderNum` | `number \| null` | No | — |

***

### delete

`eventCategories.delete`

Delete an event category; the events in it survive and lose their category

**Risk:** `destructive`

```ts theme={null}
await corsair.waiverfile.api.eventCategories.delete({ eventCategoryID: '9a3c5e3e-7c4f-4a83-88be-86a3c85fa0e4' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `eventCategoryID` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `ID` | `string \| null` | No | — |
| `SiteID` | `string \| null` | No | — |
| `Name` | `string \| null` | No | — |
| `Status` | `number \| null` | No | 0 = active, 1 = disabled, 2 = deleted. |
| `OrderNum` | `number \| null` | No | — |

***

### list

`eventCategories.list`

List event categories, optionally including disabled ones

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.eventCategories.list({ includeDisabledCategories: true });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `includeDisabledCategories` | `boolean` | Yes | Also return categories that are switched off. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `EventCategories` | `object[] \| null` | No | — |

> [accordion] EventCategories full type
>
> ```ts theme={null}
> {
>   ID?: string | null,
>   SiteID?: string | null,
>   Name?: string | null,
>   Status?: number | null,
>   OrderNum?: number | null
> }[] | null
> ```

***

### update

`eventCategories.update`

Rename an event category and set whether it is active

**Risk:** `write`

```ts theme={null}
await corsair.waiverfile.api.eventCategories.update({ eventCategoryID: '9a3c5e3e-7c4f-4a83-88be-86a3c85fa0e4', name: 'Open jump (renamed)', active: false });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `eventCategoryID` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `active` | `boolean` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `ID` | `string \| null` | No | — |
| `SiteID` | `string \| null` | No | — |
| `Name` | `string \| null` | No | — |
| `Status` | `number \| null` | No | 0 = active, 1 = disabled, 2 = deleted. |
| `OrderNum` | `number \| null` | No | — |

***

## Events

### byCategory

`events.byCategory`

List events in one category within a date range

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.events.byCategory({ eventCategoryID: '9a3c5e3e-7c4f-4a83-88be-86a3c85fa0e4', startDateUTC: '2024-06-01T00:00:00Z', endDateUTC: '2024-06-30T23:59:59Z' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `eventCategoryID` | `string` | Yes | — |
| `startDateUTC` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `endDateUTC` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Events` | `object[] \| null` | No | — |

> [accordion] Events full type
>
> ```ts theme={null}
> {
>   WaiverEventID?: string | null,
>   SiteID?: string | null,
>   Name?: string | null,
>   DateStart?: string | null,
>   DateEnd?: string | null,
>   IsAllDay?: boolean | null,
>   IsDeleted?: boolean | null,
>   CategoryID?: string | null,
>   TimeLabel?: string | null,
>   NumWaiverForms?: number | null,
>   NumSignedWaivers?: number | null,
>   SpotsRemaining?: number | null,
>   MaxParts?: number | null,
>   Headcount?: number | null,
>   ManagerEmailList?: string | null,
>   ManagerIDs?: string[] | null,
>   Created?: string | null,
>   LastModified?: string | null,
>   WaiverEventFormIDs?: (string | {
>     WaiverEventID?: string | null,
>     WaiverFormID?: string | null
>   })[] | null,
>   WaiverForms?: Record<string, any>[] | null,
>   Waivers?: Record<string, any>[] | null,
>   Category?: Record<string, any> | null,
>   Settings?: {
>     MaxParticipants?: number | null,
>     Location?: string | null,
>     SigningCutoff?: string | null,
>     Description?: string | null
>   } | null
> }[] | null
> ```

***

### byDateRange

`events.byDateRange`

List events in any category that fall within a date range

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.events.byDateRange({ startDateUTC: '2024-06-01T00:00:00Z', endDateUTC: '2024-06-30T23:59:59Z' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `startDateUTC` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `endDateUTC` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Events` | `object[] \| null` | No | — |

> [accordion] Events full type
>
> ```ts theme={null}
> {
>   WaiverEventID?: string | null,
>   SiteID?: string | null,
>   Name?: string | null,
>   DateStart?: string | null,
>   DateEnd?: string | null,
>   IsAllDay?: boolean | null,
>   IsDeleted?: boolean | null,
>   CategoryID?: string | null,
>   TimeLabel?: string | null,
>   NumWaiverForms?: number | null,
>   NumSignedWaivers?: number | null,
>   SpotsRemaining?: number | null,
>   MaxParts?: number | null,
>   Headcount?: number | null,
>   ManagerEmailList?: string | null,
>   ManagerIDs?: string[] | null,
>   Created?: string | null,
>   LastModified?: string | null,
>   WaiverEventFormIDs?: (string | {
>     WaiverEventID?: string | null,
>     WaiverFormID?: string | null
>   })[] | null,
>   WaiverForms?: Record<string, any>[] | null,
>   Waivers?: Record<string, any>[] | null,
>   Category?: Record<string, any> | null,
>   Settings?: {
>     MaxParticipants?: number | null,
>     Location?: string | null,
>     SigningCutoff?: string | null,
>     Description?: string | null
>   } | null
> }[] | null
> ```

***

### create

`events.create`

Create an event with its dates, category, attached forms and manager invitations; the credentials go in the body on this route

**Risk:** `write`

```ts theme={null}
await corsair.waiverfile.api.events.create({ eventName: 'Saturday open jump', dateStart: '2024-06-02T09:00:00Z', dateEnd: '2024-06-02T17:00:00Z', isAllDay: false, eventCategoryID: '9a3c5e3e-7c4f-4a83-88be-86a3c85fa0e4' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `eventName` | `string` | Yes | — |
| `dateStart` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `dateEnd` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `isAllDay` | `boolean` | Yes | — |
| `eventCategoryID` | `string` | No | A category from `eventCategories.list`. |
| `managerEmailList` | `string` | No | Addresses separated by commas, spaces or line breaks. |
| `managerEmailMessage` | `string` | No | — |
| `waiverFormIDList` | `string` | No | Comma-separated form IDs. Omit to attach every active form. |
| `eventLocation` | `string` | No | — |
| `signingCutoff` | `string` | No | After this time waivers can no longer be signed. |
| `maxParticipants` | `number` | No | — |
| `workflowIDList` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `WaiverEventID` | `string \| null` | No | — |
| `SiteID` | `string \| null` | No | — |
| `Name` | `string \| null` | No | — |
| `DateStart` | `string \| null` | No | — |
| `DateEnd` | `string \| null` | No | — |
| `IsAllDay` | `boolean \| null` | No | — |
| `IsDeleted` | `boolean \| null` | No | — |
| `CategoryID` | `string \| null` | No | — |
| `TimeLabel` | `string \| null` | No | — |
| `NumWaiverForms` | `number \| null` | No | — |
| `NumSignedWaivers` | `number \| null` | No | — |
| `SpotsRemaining` | `number \| null` | No | — |
| `MaxParts` | `number \| null` | No | — |
| `Headcount` | `number \| null` | No | — |
| `ManagerEmailList` | `string \| null` | No | — |
| `ManagerIDs` | `string[] \| null` | No | — |
| `Created` | `string \| null` | No | — |
| `LastModified` | `string \| null` | No | — |
| `WaiverEventFormIDs` | `object[] \| null` | No | The forms attached to the event. |
| `WaiverForms` | `Record<string, any>[] \| null` | No | — |
| `Waivers` | `Record<string, any>[] \| null` | No | — |
| `Category` | `Record<string, any> \| null` | No | — |
| `Settings` | `object \| null` | No | — |

> [accordion] WaiverEventFormIDs full type
>
> ```ts theme={null}
> (string | {
>   WaiverEventID?: string | null,
>   WaiverFormID?: string | null
> })[] | null
> ```

> [accordion] Settings full type
>
> ```ts theme={null}
> {
>   MaxParticipants?: number | null,
>   Location?: string | null,
>   SigningCutoff?: string | null,
>   Description?: string | null
> } | null
> ```

***

### delete

`events.delete`

Delete an event (marked deleted; signed waivers stay); the call is a GET, so it is not replayed on a failure

**Risk:** `destructive`

```ts theme={null}
await corsair.waiverfile.api.events.delete({ eventID: 'c0a1b2c3-1111-2222-3333-444455556666' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `eventID` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `WaiverEventID` | `string \| null` | No | — |
| `SiteID` | `string \| null` | No | — |
| `Name` | `string \| null` | No | — |
| `DateStart` | `string \| null` | No | — |
| `DateEnd` | `string \| null` | No | — |
| `IsAllDay` | `boolean \| null` | No | — |
| `IsDeleted` | `boolean \| null` | No | — |
| `CategoryID` | `string \| null` | No | — |
| `TimeLabel` | `string \| null` | No | — |
| `NumWaiverForms` | `number \| null` | No | — |
| `NumSignedWaivers` | `number \| null` | No | — |
| `SpotsRemaining` | `number \| null` | No | — |
| `MaxParts` | `number \| null` | No | — |
| `Headcount` | `number \| null` | No | — |
| `ManagerEmailList` | `string \| null` | No | — |
| `ManagerIDs` | `string[] \| null` | No | — |
| `Created` | `string \| null` | No | — |
| `LastModified` | `string \| null` | No | — |
| `WaiverEventFormIDs` | `object[] \| null` | No | The forms attached to the event. |
| `WaiverForms` | `Record<string, any>[] \| null` | No | — |
| `Waivers` | `Record<string, any>[] \| null` | No | — |
| `Category` | `Record<string, any> \| null` | No | — |
| `Settings` | `object \| null` | No | — |

> [accordion] WaiverEventFormIDs full type
>
> ```ts theme={null}
> (string | {
>   WaiverEventID?: string | null,
>   WaiverFormID?: string | null
> })[] | null
> ```

> [accordion] Settings full type
>
> ```ts theme={null}
> {
>   MaxParticipants?: number | null,
>   Location?: string | null,
>   SigningCutoff?: string | null,
>   Description?: string | null
> } | null
> ```

***

### inviteManagers

`events.inviteManagers`

Invite people to manage an event, optionally skipping those who already have an account

**Risk:** `write`

```ts theme={null}
await corsair.waiverfile.api.events.inviteManagers({ eventID: 'c0a1b2c3-1111-2222-3333-444455556666', emailAddresses: 'manager@example.com' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `eventID` | `string` | Yes | — |
| `emailAddresses` | `string` | Yes | Addresses separated by commas, spaces or line breaks. |
| `managerEmailMessage` | `string` | No | Text added to the invitation. Invite only. |
| `skipSendingEmailIfAccountExists` | `boolean` | No | Invite only: skip the email for people who already have an account. Defaults to false, so everyone listed is emailed. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `WaiverEventID` | `string \| null` | No | — |
| `SiteID` | `string \| null` | No | — |
| `Name` | `string \| null` | No | — |
| `DateStart` | `string \| null` | No | — |
| `DateEnd` | `string \| null` | No | — |
| `IsAllDay` | `boolean \| null` | No | — |
| `IsDeleted` | `boolean \| null` | No | — |
| `CategoryID` | `string \| null` | No | — |
| `TimeLabel` | `string \| null` | No | — |
| `NumWaiverForms` | `number \| null` | No | — |
| `NumSignedWaivers` | `number \| null` | No | — |
| `SpotsRemaining` | `number \| null` | No | — |
| `MaxParts` | `number \| null` | No | — |
| `Headcount` | `number \| null` | No | — |
| `ManagerEmailList` | `string \| null` | No | — |
| `ManagerIDs` | `string[] \| null` | No | — |
| `Created` | `string \| null` | No | — |
| `LastModified` | `string \| null` | No | — |
| `WaiverEventFormIDs` | `object[] \| null` | No | The forms attached to the event. |
| `WaiverForms` | `Record<string, any>[] \| null` | No | — |
| `Waivers` | `Record<string, any>[] \| null` | No | — |
| `Category` | `Record<string, any> \| null` | No | — |
| `Settings` | `object \| null` | No | — |

> [accordion] WaiverEventFormIDs full type
>
> ```ts theme={null}
> (string | {
>   WaiverEventID?: string | null,
>   WaiverFormID?: string | null
> })[] | null
> ```

> [accordion] Settings full type
>
> ```ts theme={null}
> {
>   MaxParticipants?: number | null,
>   Location?: string | null,
>   SigningCutoff?: string | null,
>   Description?: string | null
> } | null
> ```

***

### removeManagers

`events.removeManagers`

Remove event manager access for the given addresses

**Risk:** `write`

```ts theme={null}
await corsair.waiverfile.api.events.removeManagers({ eventID: 'c0a1b2c3-1111-2222-3333-444455556666', emailAddresses: 'manager@example.com' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `eventID` | `string` | Yes | — |
| `emailAddresses` | `string` | Yes | Addresses separated by commas, spaces or line breaks. |
| `managerEmailMessage` | `string` | No | Text added to the invitation. Invite only. |
| `skipSendingEmailIfAccountExists` | `boolean` | No | Invite only: skip the email for people who already have an account. Defaults to false, so everyone listed is emailed. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `WaiverEventID` | `string \| null` | No | — |
| `SiteID` | `string \| null` | No | — |
| `Name` | `string \| null` | No | — |
| `DateStart` | `string \| null` | No | — |
| `DateEnd` | `string \| null` | No | — |
| `IsAllDay` | `boolean \| null` | No | — |
| `IsDeleted` | `boolean \| null` | No | — |
| `CategoryID` | `string \| null` | No | — |
| `TimeLabel` | `string \| null` | No | — |
| `NumWaiverForms` | `number \| null` | No | — |
| `NumSignedWaivers` | `number \| null` | No | — |
| `SpotsRemaining` | `number \| null` | No | — |
| `MaxParts` | `number \| null` | No | — |
| `Headcount` | `number \| null` | No | — |
| `ManagerEmailList` | `string \| null` | No | — |
| `ManagerIDs` | `string[] \| null` | No | — |
| `Created` | `string \| null` | No | — |
| `LastModified` | `string \| null` | No | — |
| `WaiverEventFormIDs` | `object[] \| null` | No | The forms attached to the event. |
| `WaiverForms` | `Record<string, any>[] \| null` | No | — |
| `Waivers` | `Record<string, any>[] \| null` | No | — |
| `Category` | `Record<string, any> \| null` | No | — |
| `Settings` | `object \| null` | No | — |

> [accordion] WaiverEventFormIDs full type
>
> ```ts theme={null}
> (string | {
>   WaiverEventID?: string | null,
>   WaiverFormID?: string | null
> })[] | null
> ```

> [accordion] Settings full type
>
> ```ts theme={null}
> {
>   MaxParticipants?: number | null,
>   Location?: string | null,
>   SigningCutoff?: string | null,
>   Description?: string | null
> } | null
> ```

***

### upcoming

`events.upcoming`

List events within a date range, capped at 3,000 by the API

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.events.upcoming({ startDateUTC: '2024-06-01T00:00:00Z', endDateUTC: '2024-06-30T23:59:59Z' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `startDateUTC` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `endDateUTC` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Events` | `object[] \| null` | No | — |

> [accordion] Events full type
>
> ```ts theme={null}
> {
>   WaiverEventID?: string | null,
>   SiteID?: string | null,
>   Name?: string | null,
>   DateStart?: string | null,
>   DateEnd?: string | null,
>   IsAllDay?: boolean | null,
>   IsDeleted?: boolean | null,
>   CategoryID?: string | null,
>   TimeLabel?: string | null,
>   NumWaiverForms?: number | null,
>   NumSignedWaivers?: number | null,
>   SpotsRemaining?: number | null,
>   MaxParts?: number | null,
>   Headcount?: number | null,
>   ManagerEmailList?: string | null,
>   ManagerIDs?: string[] | null,
>   Created?: string | null,
>   LastModified?: string | null,
>   WaiverEventFormIDs?: (string | {
>     WaiverEventID?: string | null,
>     WaiverFormID?: string | null
>   })[] | null,
>   WaiverForms?: Record<string, any>[] | null,
>   Waivers?: Record<string, any>[] | null,
>   Category?: Record<string, any> | null,
>   Settings?: {
>     MaxParticipants?: number | null,
>     Location?: string | null,
>     SigningCutoff?: string | null,
>     Description?: string | null
>   } | null
> }[] | null
> ```

***

### update

`events.update`

Change an event name, dates, category and attached forms; omitting the form list attaches every active form

**Risk:** `write`

```ts theme={null}
await corsair.waiverfile.api.events.update({ eventID: 'c0a1b2c3-1111-2222-3333-444455556666', eventName: 'Saturday open jump', dateStart: '2024-06-02T09:00:00Z', dateEnd: '2024-06-02T17:00:00Z', isAllDay: false, eventCategoryID: '9a3c5e3e-7c4f-4a83-88be-86a3c85fa0e4', waiverFormIDs: ['152a63cc-0a49-475a-a8e4-5f89bee94fe6'] });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `eventID` | `string` | Yes | — |
| `eventName` | `string` | Yes | — |
| `dateStart` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `dateEnd` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `isAllDay` | `boolean` | Yes | — |
| `eventCategoryID` | `string` | Yes | To set no category, send the empty GUID 00000000-0000-0000-0000-000000000000. |
| `waiverFormIDs` | `string[]` | No | Replaces the attached forms. Omitted or empty attaches every active form: WaiverFile cannot leave them unchanged, so pass the current IDs to keep them. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `WaiverEventID` | `string \| null` | No | — |
| `SiteID` | `string \| null` | No | — |
| `Name` | `string \| null` | No | — |
| `DateStart` | `string \| null` | No | — |
| `DateEnd` | `string \| null` | No | — |
| `IsAllDay` | `boolean \| null` | No | — |
| `IsDeleted` | `boolean \| null` | No | — |
| `CategoryID` | `string \| null` | No | — |
| `TimeLabel` | `string \| null` | No | — |
| `NumWaiverForms` | `number \| null` | No | — |
| `NumSignedWaivers` | `number \| null` | No | — |
| `SpotsRemaining` | `number \| null` | No | — |
| `MaxParts` | `number \| null` | No | — |
| `Headcount` | `number \| null` | No | — |
| `ManagerEmailList` | `string \| null` | No | — |
| `ManagerIDs` | `string[] \| null` | No | — |
| `Created` | `string \| null` | No | — |
| `LastModified` | `string \| null` | No | — |
| `WaiverEventFormIDs` | `object[] \| null` | No | The forms attached to the event. |
| `WaiverForms` | `Record<string, any>[] \| null` | No | — |
| `Waivers` | `Record<string, any>[] \| null` | No | — |
| `Category` | `Record<string, any> \| null` | No | — |
| `Settings` | `object \| null` | No | — |

> [accordion] WaiverEventFormIDs full type
>
> ```ts theme={null}
> (string | {
>   WaiverEventID?: string | null,
>   WaiverFormID?: string | null
> })[] | null
> ```

> [accordion] Settings full type
>
> ```ts theme={null}
> {
>   MaxParticipants?: number | null,
>   Location?: string | null,
>   SigningCutoff?: string | null,
>   Description?: string | null
> } | null
> ```

***

### waivers

`events.waivers`

List the waivers signed for one event

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.events.waivers({ waiverEventID: 'c0a1b2c3-1111-2222-3333-444455556666' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `waiverEventID` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Waivers` | `object[] \| null` | No | — |

> [accordion] Waivers full type
>
> ```ts theme={null}
> {
>   WaiverID?: string | null,
>   SiteID?: string | null,
>   WaiverEventID?: string | null,
>   WaiverFormID?: string | null,
>   DateSigned?: string | null,
>   SignedName?: string | null,
>   SignedNameFirst?: string | null,
>   Email?: string | null,
>   Phone?: string | null,
>   DOB?: string | null,
>   Age?: number | null,
>   HasSignature?: boolean | null,
>   OptIn?: boolean | null,
>   WaiverIsDeleted?: boolean | null,
>   ReferenceID1?: string | null,
>   ReferenceID2?: string | null,
>   ReferenceID3?: string | null,
>   Participants?: {
>     WaiverParticipantID?: string | null,
>     ParticipantName?: string | null,
>     ParticipantNameFirst?: string | null,
>     DOB?: string | null,
>     IsCheckedIn?: boolean | null,
>     IsSignee?: boolean | null
>   }[] | null
> }[] | null
> ```

***

## Forms

### active

`forms.active`

List the waiver forms currently active on the site

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.forms.active({});
```

**Input:** *empty object*

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `WaiverForms` | `object[] \| null` | No | — |

> [accordion] WaiverForms full type
>
> ```ts theme={null}
> {
>   ID?: string | null,
>   SiteID?: string | null,
>   Name?: string | null,
>   Questions?: string | null,
>   NumParticipantsPerForm?: number | null,
>   MinAge?: number | null,
>   MaxAgeParticipant?: number | null,
>   AgreementLabelText?: string | null,
>   FieldInclude_Email?: boolean | null,
>   FieldRequire_Email?: boolean | null,
>   FieldInclude_Phone?: boolean | null,
>   FieldRequire_Phone?: boolean | null,
>   FieldInclude_DOB?: boolean | null,
>   FieldRequire_DOB?: boolean | null,
>   FieldInclude_Address?: boolean | null,
>   FieldRequire_Address?: boolean | null,
>   IncludeSignature?: boolean | null,
>   AllowSigningForSomeoneElse?: boolean | null,
>   Status?: number | null,
>   Language?: string | null,
>   Created?: string | null,
>   LastModified?: string | null
> }[] | null
> ```

***

### all

`forms.all`

List every waiver form, including disabled and deleted ones, to resolve an older waiver

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.forms.all({});
```

**Input:** *empty object*

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `WaiverForms` | `object[] \| null` | No | — |

> [accordion] WaiverForms full type
>
> ```ts theme={null}
> {
>   ID?: string | null,
>   SiteID?: string | null,
>   Name?: string | null,
>   Questions?: string | null,
>   NumParticipantsPerForm?: number | null,
>   MinAge?: number | null,
>   MaxAgeParticipant?: number | null,
>   AgreementLabelText?: string | null,
>   FieldInclude_Email?: boolean | null,
>   FieldRequire_Email?: boolean | null,
>   FieldInclude_Phone?: boolean | null,
>   FieldRequire_Phone?: boolean | null,
>   FieldInclude_DOB?: boolean | null,
>   FieldRequire_DOB?: boolean | null,
>   FieldInclude_Address?: boolean | null,
>   FieldRequire_Address?: boolean | null,
>   IncludeSignature?: boolean | null,
>   AllowSigningForSomeoneElse?: boolean | null,
>   Status?: number | null,
>   Language?: string | null,
>   Created?: string | null,
>   LastModified?: string | null
> }[] | null
> ```

***

## Ping

### check

`ping.check`

Check that the service is up and that the API key and site ID are valid; the cheapest way to verify credentials

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.ping.check({});
```

**Input:** *empty object*

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Message` | `string \| null` | No | — |

***

## Site

### get

`site.get`

Read the site behind the credentials: its name, timezone and contact details

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.site.get({});
```

**Input:** *empty object*

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `ID` | `string \| null` | No | — |
| `Name` | `string \| null` | No | — |
| `Url` | `string \| null` | No | The site path on app.waiverfile.com. |
| `DefaultTimezone` | `string \| null` | No | — |
| `Status` | `number \| null` | No | — |
| `DateAdded` | `string \| null` | No | — |
| `ReplyToEmail` | `string \| null` | No | — |

***

## Subscribers

### list

`subscribers.list`

List SMS subscribers added within a date range

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.subscribers.list({ startDateUTC: '2024-06-01T00:00:00Z', endDateUTC: '2024-06-30T23:59:59Z' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `startDateUTC` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `endDateUTC` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Subscribers` | `object[] \| null` | No | — |

> [accordion] Subscribers full type
>
> ```ts theme={null}
> {
>   WPSMSMobileNumID?: string | null,
>   Phone?: string | null,
>   MobileNum?: string | null,
>   Added?: string | null,
>   OptOutDate?: string | null
> }[] | null
> ```

***

### optedOut

`subscribers.optedOut`

List subscribers who opted out within a date range, which is what a suppression list needs

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.subscribers.optedOut({ startDateUTC: '2024-06-01T00:00:00Z', endDateUTC: '2024-06-30T23:59:59Z' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `startDateUTC` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `endDateUTC` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Subscribers` | `object[] \| null` | No | — |

> [accordion] Subscribers full type
>
> ```ts theme={null}
> {
>   WPSMSMobileNumID?: string | null,
>   Phone?: string | null,
>   MobileNum?: string | null,
>   Added?: string | null,
>   OptOutDate?: string | null
> }[] | null
> ```

***

## Waivers

### byReference

`waivers.byReference`

Find waivers by your own reference IDs, exactly matching any of the three fields

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.waivers.byReference({ refID1: 'ORDER-42' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `refID1` | `string` | No | Exact match on Reference ID 1. |
| `refID2` | `string` | No | — |
| `refID3` | `string` | No | — |
| `refIDAny` | `string` | No | Exact match on any of the three reference fields. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Waivers` | `object[] \| null` | No | — |

> [accordion] Waivers full type
>
> ```ts theme={null}
> {
>   WaiverID?: string | null,
>   SiteID?: string | null,
>   WaiverEventID?: string | null,
>   WaiverFormID?: string | null,
>   WaiverFormInstanceID?: string | null,
>   DateSigned?: string | null,
>   DateAttending?: string | null,
>   SignedName?: string | null,
>   SignedNameFirst?: string | null,
>   Email?: string | null,
>   Phone?: string | null,
>   DOB?: string | null,
>   Age?: string | null,
>   Address?: string | null,
>   Address2?: string | null,
>   City?: string | null,
>   State?: string | null,
>   Zip?: string | null,
>   OptIn?: string | null,
>   HasSignature?: string | null,
>   Expired?: string | null,
>   WaiverIsDeleted?: string | null,
>   ClientIP?: string | null,
>   ClientType?: string | null,
>   ReferenceID1?: string | null,
>   ReferenceID2?: string | null,
>   ReferenceID3?: string | null,
>   FieldsXml?: string | null,
>   ValuesXml?: any,
>   Particpants?: {
>     WaiverParticipantID?: string | null,
>     WaiverID?: string | null,
>     ParticipantName?: string | null,
>     ParticipantNameFirst?: string | null,
>     DOB?: string | null,
>     Age?: string | null,
>     IsCheckedIn?: string | null,
>     IsSignee?: string | null,
>     ValuesXml?: any,
>     CustomFields?: Record<string, any> | null
>   }[] | null,
>   WaiverEvent?: Record<string, any> | null,
>   WaiverForm?: Record<string, any> | null,
>   WaiverText?: Record<string, any> | null,
>   CustomFields?: Record<string, any> | null
> }[] | null
> ```

***

### data

`waivers.data`

Read report-style rows, one per participant, optionally with custom form columns; pageIndex starts at 1

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.waivers.data({ startDate: '2024-06-01', endDate: '2024-06-30', includeCustomColumns: true, consolidateParticipants: false, pageIndex: 1, pageSize: 100 });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `startDate` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `endDate` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `includeCustomColumns` | `boolean` | Yes | Include custom form fields from every waiver form. |
| `consolidateParticipants` | `boolean` | Yes | Reserved: the API currently ignores it and still returns one row per participant. |
| `pageIndex` | `number` | Yes | The page to return, starting at **1** — unlike the waiver lists. |
| `pageSize` | `number` | Yes | Rows per page, 10 to 1000. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Table` | `Record<string, any>[]` | Yes | — |

***

### dataCount

`waivers.dataCount`

Count the report rows a date range would return

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.waivers.dataCount({ startDate: '2024-06-01', endDate: '2024-06-30' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `startDate` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `endDate` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Count` | `number \| null` | No | — |

***

### get

`waivers.get`

Read a signed waiver in full: the agreement accepted, every participant, the signatures and the form answers

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.waivers.get({ waiverID: '4e5c5176-1238-45a3-8a87-35435baecaa2' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `waiverID` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `WaiverID` | `string \| null` | No | — |
| `SiteID` | `string \| null` | No | — |
| `WaiverEventID` | `string \| null` | No | — |
| `WaiverFormID` | `string \| null` | No | — |
| `WaiverFormInstanceID` | `string \| null` | No | — |
| `DateSigned` | `string \| null` | No | UTC, without an offset. |
| `DateAttending` | `string \| null` | No | — |
| `SignedName` | `string \| null` | No | The signer's last name. |
| `SignedNameFirst` | `string \| null` | No | — |
| `Email` | `string \| null` | No | — |
| `Phone` | `string \| null` | No | — |
| `DOB` | `string \| null` | No | — |
| `Age` | `string \| null` | No | — |
| `Address` | `string \| null` | No | — |
| `Address2` | `string \| null` | No | — |
| `City` | `string \| null` | No | — |
| `State` | `string \| null` | No | — |
| `Zip` | `string \| null` | No | — |
| `OptIn` | `string \| null` | No | "true" or "false". |
| `HasSignature` | `string \| null` | No | "true" or "false". |
| `Expired` | `string \| null` | No | — |
| `WaiverIsDeleted` | `string \| null` | No | — |
| `ClientIP` | `string \| null` | No | — |
| `ClientType` | `string \| null` | No | — |
| `ReferenceID1` | `string \| null` | No | — |
| `ReferenceID2` | `string \| null` | No | — |
| `ReferenceID3` | `string \| null` | No | — |
| `FieldsXml` | `string \| null` | No | — |
| `ValuesXml` | `any` | No | — |
| `Particpants` | `object[] \| null` | No | WaiverFile's own spelling, with the missing i. |
| `WaiverEvent` | `Record<string, any> \| null` | No | — |
| `WaiverForm` | `Record<string, any> \| null` | No | — |
| `WaiverText` | `Record<string, any> \| null` | No | — |
| `CustomFields` | `Record<string, any> \| null` | No | GetWaiver only: each custom form field label mapped to its value. |

> [accordion] Particpants full type
>
> ```ts theme={null}
> {
>   WaiverParticipantID?: string | null,
>   WaiverID?: string | null,
>   ParticipantName?: string | null,
>   ParticipantNameFirst?: string | null,
>   DOB?: string | null,
>   Age?: string | null,
>   IsCheckedIn?: string | null,
>   IsSignee?: string | null,
>   ValuesXml?: any,
>   CustomFields?: Record<string, any> | null
> }[] | null
> ```

***

### getLite

`waivers.getLite`

Read a signed waiver without the agreement text, event detail or signatures

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.waivers.getLite({ waiverID: '4e5c5176-1238-45a3-8a87-35435baecaa2' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `waiverID` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `WaiverID` | `string \| null` | No | — |
| `SiteID` | `string \| null` | No | — |
| `WaiverEventID` | `string \| null` | No | — |
| `WaiverFormID` | `string \| null` | No | — |
| `WaiverFormInstanceID` | `string \| null` | No | — |
| `DateSigned` | `string \| null` | No | UTC, without an offset. |
| `DateAttending` | `string \| null` | No | — |
| `SignedName` | `string \| null` | No | The signer's last name. |
| `SignedNameFirst` | `string \| null` | No | — |
| `Email` | `string \| null` | No | — |
| `Phone` | `string \| null` | No | — |
| `DOB` | `string \| null` | No | — |
| `Age` | `string \| null` | No | — |
| `Address` | `string \| null` | No | — |
| `Address2` | `string \| null` | No | — |
| `City` | `string \| null` | No | — |
| `State` | `string \| null` | No | — |
| `Zip` | `string \| null` | No | — |
| `OptIn` | `string \| null` | No | "true" or "false". |
| `HasSignature` | `string \| null` | No | "true" or "false". |
| `Expired` | `string \| null` | No | — |
| `WaiverIsDeleted` | `string \| null` | No | — |
| `ClientIP` | `string \| null` | No | — |
| `ClientType` | `string \| null` | No | — |
| `ReferenceID1` | `string \| null` | No | — |
| `ReferenceID2` | `string \| null` | No | — |
| `ReferenceID3` | `string \| null` | No | — |
| `FieldsXml` | `string \| null` | No | — |
| `ValuesXml` | `any` | No | — |
| `Particpants` | `object[] \| null` | No | WaiverFile's own spelling, with the missing i. |
| `WaiverEvent` | `Record<string, any> \| null` | No | — |
| `WaiverForm` | `Record<string, any> \| null` | No | — |
| `WaiverText` | `Record<string, any> \| null` | No | — |
| `CustomFields` | `Record<string, any> \| null` | No | GetWaiver only: each custom form field label mapped to its value. |

> [accordion] Particpants full type
>
> ```ts theme={null}
> {
>   WaiverParticipantID?: string | null,
>   WaiverID?: string | null,
>   ParticipantName?: string | null,
>   ParticipantNameFirst?: string | null,
>   DOB?: string | null,
>   Age?: string | null,
>   IsCheckedIn?: string | null,
>   IsSignee?: string | null,
>   ValuesXml?: any,
>   CustomFields?: Record<string, any> | null
> }[] | null
> ```

***

### list

`waivers.list`

Page through full waivers signed in a date range; pageIndex starts at 0

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.waivers.list({ startDate: '2024-06-01', endDate: '2024-06-30', pageIndex: 0, pageSize: 50 });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `startDate` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `endDate` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `pageIndex` | `number` | Yes | Zero-based for waiver lists and one-based for GetWaiverData — WaiverFile differs between the two. |
| `pageSize` | `number` | Yes | Waivers per page, 10 to 500. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Waivers` | `object[] \| null` | No | — |

> [accordion] Waivers full type
>
> ```ts theme={null}
> {
>   WaiverID?: string | null,
>   SiteID?: string | null,
>   WaiverEventID?: string | null,
>   WaiverFormID?: string | null,
>   WaiverFormInstanceID?: string | null,
>   DateSigned?: string | null,
>   DateAttending?: string | null,
>   SignedName?: string | null,
>   SignedNameFirst?: string | null,
>   Email?: string | null,
>   Phone?: string | null,
>   DOB?: string | null,
>   Age?: string | null,
>   Address?: string | null,
>   Address2?: string | null,
>   City?: string | null,
>   State?: string | null,
>   Zip?: string | null,
>   OptIn?: string | null,
>   HasSignature?: string | null,
>   Expired?: string | null,
>   WaiverIsDeleted?: string | null,
>   ClientIP?: string | null,
>   ClientType?: string | null,
>   ReferenceID1?: string | null,
>   ReferenceID2?: string | null,
>   ReferenceID3?: string | null,
>   FieldsXml?: string | null,
>   ValuesXml?: any,
>   Particpants?: {
>     WaiverParticipantID?: string | null,
>     WaiverID?: string | null,
>     ParticipantName?: string | null,
>     ParticipantNameFirst?: string | null,
>     DOB?: string | null,
>     Age?: string | null,
>     IsCheckedIn?: string | null,
>     IsSignee?: string | null,
>     ValuesXml?: any,
>     CustomFields?: Record<string, any> | null
>   }[] | null,
>   WaiverEvent?: Record<string, any> | null,
>   WaiverForm?: Record<string, any> | null,
>   WaiverText?: Record<string, any> | null,
>   CustomFields?: Record<string, any> | null
> }[] | null
> ```

***

### listLite

`waivers.listLite`

Page through waivers signed in a date range, with the collected data only

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.waivers.listLite({ startDate: '2024-06-01', endDate: '2024-06-30', pageIndex: 0, pageSize: 50 });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `startDate` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `endDate` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `pageIndex` | `number` | Yes | Zero-based for waiver lists and one-based for GetWaiverData — WaiverFile differs between the two. |
| `pageSize` | `number` | Yes | Waivers per page, 10 to 500. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Waivers` | `object[] \| null` | No | — |

> [accordion] Waivers full type
>
> ```ts theme={null}
> {
>   WaiverID?: string | null,
>   SiteID?: string | null,
>   WaiverEventID?: string | null,
>   WaiverFormID?: string | null,
>   WaiverFormInstanceID?: string | null,
>   DateSigned?: string | null,
>   DateAttending?: string | null,
>   SignedName?: string | null,
>   SignedNameFirst?: string | null,
>   Email?: string | null,
>   Phone?: string | null,
>   DOB?: string | null,
>   Age?: string | null,
>   Address?: string | null,
>   Address2?: string | null,
>   City?: string | null,
>   State?: string | null,
>   Zip?: string | null,
>   OptIn?: string | null,
>   HasSignature?: string | null,
>   Expired?: string | null,
>   WaiverIsDeleted?: string | null,
>   ClientIP?: string | null,
>   ClientType?: string | null,
>   ReferenceID1?: string | null,
>   ReferenceID2?: string | null,
>   ReferenceID3?: string | null,
>   FieldsXml?: string | null,
>   ValuesXml?: any,
>   Particpants?: {
>     WaiverParticipantID?: string | null,
>     WaiverID?: string | null,
>     ParticipantName?: string | null,
>     ParticipantNameFirst?: string | null,
>     DOB?: string | null,
>     Age?: string | null,
>     IsCheckedIn?: string | null,
>     IsSignee?: string | null,
>     ValuesXml?: any,
>     CustomFields?: Record<string, any> | null
>   }[] | null,
>   WaiverEvent?: Record<string, any> | null,
>   WaiverForm?: Record<string, any> | null,
>   WaiverText?: Record<string, any> | null,
>   CustomFields?: Record<string, any> | null
> }[] | null
> ```

***

### pageCount

`waivers.pageCount`

Count the waivers in a date range, to plan the paging

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.waivers.pageCount({ startDate: '2024-06-01', endDate: '2024-06-30' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `startDate` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |
| `endDate` | `string` | Yes | A date or date-time, as `yyyy-MM-dd` or ISO 8601. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Count` | `number \| null` | No | — |

***

### pdf

`waivers.pdf`

Download a signed waiver as a PDF, returned base64-encoded in `content` with its byte length

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.waivers.pdf({ waiverID: '4e5c5176-1238-45a3-8a87-35435baecaa2' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `waiverID` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `waiverID` | `string` | Yes | — |
| `contentType` | `string` | Yes | — |
| `bytes` | `number` | Yes | — |
| `content` | `string` | Yes | Base64. Decode it to get the PDF bytes. |

***

### search

`waivers.search`

Search waivers by name, or by whatever the site configures as quick-search fields

**Risk:** `read`

```ts theme={null}
await corsair.waiverfile.api.waivers.search({ terms: 'Jordan Ruiz' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `terms` | `string` | Yes | A name, or whatever the site configures as its quick-search fields. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Waivers` | `object[] \| null` | No | — |

> [accordion] Waivers full type
>
> ```ts theme={null}
> {
>   WaiverID?: string | null,
>   SiteID?: string | null,
>   WaiverEventID?: string | null,
>   WaiverFormID?: string | null,
>   WaiverFormInstanceID?: string | null,
>   DateSigned?: string | null,
>   DateAttending?: string | null,
>   SignedName?: string | null,
>   SignedNameFirst?: string | null,
>   Email?: string | null,
>   Phone?: string | null,
>   DOB?: string | null,
>   Age?: string | null,
>   Address?: string | null,
>   Address2?: string | null,
>   City?: string | null,
>   State?: string | null,
>   Zip?: string | null,
>   OptIn?: string | null,
>   HasSignature?: string | null,
>   Expired?: string | null,
>   WaiverIsDeleted?: string | null,
>   ClientIP?: string | null,
>   ClientType?: string | null,
>   ReferenceID1?: string | null,
>   ReferenceID2?: string | null,
>   ReferenceID3?: string | null,
>   FieldsXml?: string | null,
>   ValuesXml?: any,
>   Particpants?: {
>     WaiverParticipantID?: string | null,
>     WaiverID?: string | null,
>     ParticipantName?: string | null,
>     ParticipantNameFirst?: string | null,
>     DOB?: string | null,
>     Age?: string | null,
>     IsCheckedIn?: string | null,
>     IsSignee?: string | null,
>     ValuesXml?: any,
>     CustomFields?: Record<string, any> | null
>   }[] | null,
>   WaiverEvent?: Record<string, any> | null,
>   WaiverForm?: Record<string, any> | null,
>   WaiverText?: Record<string, any> | null,
>   CustomFields?: Record<string, any> | null
> }[] | null
> ```

***

## Webhooks

### subscribe

`webhooks.subscribe`

Subscribe a URL to one WaiverFile trigger, such as newwaiver or newevent, so it is posted to on each occurrence

**Risk:** `write`

```ts theme={null}
await corsair.waiverfile.api.webhooks.subscribe({ trigger: 'newwaiver', targetUrl: 'https://acme.example/hooks/waiverfile' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `trigger` | `newwaiver \| newevent \| newcheckin \| newqrscan \| newbookingcheckin \| bookingcheckinundone \| bookingcheckedin \| newmembercheckin \| membercheckinundone \| editwaiver \| editevent \| editcheckin` | Yes | The trigger whose events will be posted to `targetUrl`. |
| `targetUrl` | `string` | Yes | The URL WaiverFile will POST to. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Success` | `boolean` | Yes | — |
| `Message` | `string \| null` | No | — |

***

### unsubscribe

`webhooks.unsubscribe`

Unsubscribe a URL from one trigger, which stops its deliveries without touching any other URL

**Risk:** `write`

```ts theme={null}
await corsair.waiverfile.api.webhooks.unsubscribe({ trigger: 'newwaiver', targetUrl: 'https://acme.example/hooks/waiverfile' });
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `trigger` | `newwaiver \| newevent \| newcheckin \| newqrscan \| newbookingcheckin \| bookingcheckinundone \| bookingcheckedin \| newmembercheckin \| membercheckinundone \| editwaiver \| editevent \| editcheckin` | Yes | The trigger whose events will be posted to `targetUrl`. |
| `targetUrl` | `string` | Yes | The URL WaiverFile will POST to. |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `Success` | `boolean` | Yes | — |
| `Message` | `string \| null` | No | — |

***


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.