> ## 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.

# Database

> Bigmailer local sync: searchable entities, `.search()` filters, and operators.

The Bigmailer plugin syncs data locally. Use `corsair.bigmailer.db.<entity>.search({ data, limit?, offset? })` with the filters listed per entity.

<Info>
  **New to Corsair?** See [database operations](/concepts/database), [data synchronization](/concepts/integrations), and [multi-tenancy](/concepts/multi-tenancy).
</Info>

## Brand Properties

Path: `bigmailer.db.brandProperties.search`

```ts theme={null}
const rows = await corsair.bigmailer.db.brandProperties.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});
```

### Searchable filters

| Field            | Type      | Operators                                  |
| ---------------- | --------- | ------------------------------------------ |
| `entity_id`      | `string`  | equals, contains, startsWith, endsWith, in |
| `id`             | `string`  | equals, contains, startsWith, endsWith, in |
| `name`           | `string`  | equals, contains, startsWith, endsWith, in |
| `merge_tag_name` | `string`  | equals, contains, startsWith, endsWith, in |
| `is_html`        | `boolean` | equals                                     |
| `string_value`   | `string`  | equals, contains, startsWith, endsWith, in |
| `created`        | `number`  | equals, gt, gte, lt, lte, in               |

*Every `.search()` also accepts `limit` and `offset` for pagination. `.list()` is available on the same path without the `.search` suffix in code — see [database operations](/concepts/database).*

***

## Brands

Path: `bigmailer.db.brands.search`

```ts theme={null}
const rows = await corsair.bigmailer.db.brands.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});
```

### Searchable filters

| Field                   | Type      | Operators                                  |
| ----------------------- | --------- | ------------------------------------------ |
| `entity_id`             | `string`  | equals, contains, startsWith, endsWith, in |
| `id`                    | `string`  | equals, contains, startsWith, endsWith, in |
| `name`                  | `string`  | equals, contains, startsWith, endsWith, in |
| `from_name`             | `string`  | equals, contains, startsWith, endsWith, in |
| `from_email`            | `string`  | equals, contains, startsWith, endsWith, in |
| `filter_soft_bounces`   | `boolean` | equals                                     |
| `max_soft_bounces`      | `number`  | equals, gt, gte, lt, lte, in               |
| `bounce_danger_percent` | `number`  | equals, gt, gte, lt, lte, in               |
| `unsubscribe_text`      | `string`  | equals, contains, startsWith, endsWith, in |
| `connection_id`         | `string`  | equals, contains, startsWith, endsWith, in |
| `contact_limit`         | `number`  | equals, gt, gte, lt, lte, in               |
| `num_contacts`          | `number`  | equals, gt, gte, lt, lte, in               |
| `url`                   | `string`  | equals, contains, startsWith, endsWith, in |
| `created`               | `number`  | equals, gt, gte, lt, lte, in               |

*Every `.search()` also accepts `limit` and `offset` for pagination. `.list()` is available on the same path without the `.search` suffix in code — see [database operations](/concepts/database).*

***

## Bulk Campaigns

Path: `bigmailer.db.bulkCampaigns.search`

```ts theme={null}
const rows = await corsair.bigmailer.db.bulkCampaigns.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});
```

### Searchable filters

| Field                 | Type      | Operators                                  |
| --------------------- | --------- | ------------------------------------------ |
| `entity_id`           | `string`  | equals, contains, startsWith, endsWith, in |
| `id`                  | `string`  | equals, contains, startsWith, endsWith, in |
| `name`                | `string`  | equals, contains, startsWith, endsWith, in |
| `status`              | `string`  | equals, contains, startsWith, endsWith, in |
| `subject`             | `string`  | equals, contains, startsWith, endsWith, in |
| `recipient_name`      | `string`  | equals, contains, startsWith, endsWith, in |
| `html`                | `string`  | equals, contains, startsWith, endsWith, in |
| `text`                | `string`  | equals, contains, startsWith, endsWith, in |
| `preview`             | `string`  | equals, contains, startsWith, endsWith, in |
| `auto_text`           | `boolean` | equals                                     |
| `link_params`         | `string`  | equals, contains, startsWith, endsWith, in |
| `track_opens`         | `boolean` | equals                                     |
| `track_clicks`        | `boolean` | equals                                     |
| `track_text_clicks`   | `boolean` | equals                                     |
| `segment_id`          | `string`  | equals, contains, startsWith, endsWith, in |
| `message_type_id`     | `string`  | equals, contains, startsWith, endsWith, in |
| `suppression_list_id` | `string`  | equals, contains, startsWith, endsWith, in |
| `scheduled_for`       | `number`  | equals, gt, gte, lt, lte, in               |
| `throttling_type`     | `string`  | equals, contains, startsWith, endsWith, in |
| `throttling_amount`   | `number`  | equals, gt, gte, lt, lte, in               |
| `throttling_period`   | `number`  | equals, gt, gte, lt, lte, in               |
| `num_sent`            | `number`  | equals, gt, gte, lt, lte, in               |
| `num_rejected`        | `number`  | equals, gt, gte, lt, lte, in               |
| `num_clicks`          | `number`  | equals, gt, gte, lt, lte, in               |
| `num_total_clicks`    | `number`  | equals, gt, gte, lt, lte, in               |
| `num_opens`           | `number`  | equals, gt, gte, lt, lte, in               |
| `num_total_opens`     | `number`  | equals, gt, gte, lt, lte, in               |
| `num_hard_bounces`    | `number`  | equals, gt, gte, lt, lte, in               |
| `num_soft_bounces`    | `number`  | equals, gt, gte, lt, lte, in               |
| `num_complaints`      | `number`  | equals, gt, gte, lt, lte, in               |
| `num_unsubscribes`    | `number`  | equals, gt, gte, lt, lte, in               |
| `started`             | `number`  | equals, gt, gte, lt, lte, in               |
| `sent`                | `number`  | equals, gt, gte, lt, lte, in               |
| `delayed_until`       | `number`  | equals, gt, gte, lt, lte, in               |
| `created`             | `number`  | equals, gt, gte, lt, lte, in               |

*Every `.search()` also accepts `limit` and `offset` for pagination. `.list()` is available on the same path without the `.search` suffix in code — see [database operations](/concepts/database).*

***

## Connections

Path: `bigmailer.db.connections.search`

```ts theme={null}
const rows = await corsair.bigmailer.db.connections.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});
```

### Searchable filters

| Field       | Type     | Operators                                  |
| ----------- | -------- | ------------------------------------------ |
| `entity_id` | `string` | equals, contains, startsWith, endsWith, in |
| `id`        | `string` | equals, contains, startsWith, endsWith, in |
| `type`      | `string` | equals, contains, startsWith, endsWith, in |
| `name`      | `string` | equals, contains, startsWith, endsWith, in |
| `created`   | `number` | equals, gt, gte, lt, lte, in               |

*Every `.search()` also accepts `limit` and `offset` for pagination. `.list()` is available on the same path without the `.search` suffix in code — see [database operations](/concepts/database).*

***

## Contacts

Path: `bigmailer.db.contacts.search`

```ts theme={null}
const rows = await corsair.bigmailer.db.contacts.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});
```

### Searchable filters

| Field              | Type      | Operators                                  |
| ------------------ | --------- | ------------------------------------------ |
| `entity_id`        | `string`  | equals, contains, startsWith, endsWith, in |
| `id`               | `string`  | equals, contains, startsWith, endsWith, in |
| `brand_id`         | `string`  | equals, contains, startsWith, endsWith, in |
| `email`            | `string`  | equals, contains, startsWith, endsWith, in |
| `unsubscribe_all`  | `boolean` | equals                                     |
| `num_soft_bounces` | `number`  | equals, gt, gte, lt, lte, in               |
| `num_hard_bounces` | `number`  | equals, gt, gte, lt, lte, in               |
| `num_complaints`   | `number`  | equals, gt, gte, lt, lte, in               |
| `created`          | `number`  | equals, gt, gte, lt, lte, in               |

*Every `.search()` also accepts `limit` and `offset` for pagination. `.list()` is available on the same path without the `.search` suffix in code — see [database operations](/concepts/database).*

***

## Fields

Path: `bigmailer.db.fields.search`

```ts theme={null}
const rows = await corsair.bigmailer.db.fields.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});
```

### Searchable filters

| Field            | Type     | Operators                                  |
| ---------------- | -------- | ------------------------------------------ |
| `entity_id`      | `string` | equals, contains, startsWith, endsWith, in |
| `id`             | `string` | equals, contains, startsWith, endsWith, in |
| `name`           | `string` | equals, contains, startsWith, endsWith, in |
| `type`           | `string` | equals, contains, startsWith, endsWith, in |
| `merge_tag_name` | `string` | equals, contains, startsWith, endsWith, in |
| `sample_value`   | `string` | equals, contains, startsWith, endsWith, in |
| `created`        | `number` | equals, gt, gte, lt, lte, in               |

*Every `.search()` also accepts `limit` and `offset` for pagination. `.list()` is available on the same path without the `.search` suffix in code — see [database operations](/concepts/database).*

***

## Lists

Path: `bigmailer.db.lists.search`

```ts theme={null}
const rows = await corsair.bigmailer.db.lists.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});
```

### Searchable filters

| Field          | Type      | Operators                                  |
| -------------- | --------- | ------------------------------------------ |
| `entity_id`    | `string`  | equals, contains, startsWith, endsWith, in |
| `id`           | `string`  | equals, contains, startsWith, endsWith, in |
| `name`         | `string`  | equals, contains, startsWith, endsWith, in |
| `all`          | `boolean` | equals                                     |
| `num_contacts` | `number`  | equals, gt, gte, lt, lte, in               |
| `created`      | `number`  | equals, gt, gte, lt, lte, in               |

*Every `.search()` also accepts `limit` and `offset` for pagination. `.list()` is available on the same path without the `.search` suffix in code — see [database operations](/concepts/database).*

***

## Message Types

Path: `bigmailer.db.messageTypes.search`

```ts theme={null}
const rows = await corsair.bigmailer.db.messageTypes.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});
```

### Searchable filters

| Field       | Type     | Operators                                  |
| ----------- | -------- | ------------------------------------------ |
| `entity_id` | `string` | equals, contains, startsWith, endsWith, in |
| `id`        | `string` | equals, contains, startsWith, endsWith, in |
| `type`      | `string` | equals, contains, startsWith, endsWith, in |
| `name`      | `string` | equals, contains, startsWith, endsWith, in |
| `created`   | `number` | equals, gt, gte, lt, lte, in               |

*Every `.search()` also accepts `limit` and `offset` for pagination. `.list()` is available on the same path without the `.search` suffix in code — see [database operations](/concepts/database).*

***

## Segments

Path: `bigmailer.db.segments.search`

```ts theme={null}
const rows = await corsair.bigmailer.db.segments.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});
```

### Searchable filters

| Field       | Type     | Operators                                  |
| ----------- | -------- | ------------------------------------------ |
| `entity_id` | `string` | equals, contains, startsWith, endsWith, in |
| `id`        | `string` | equals, contains, startsWith, endsWith, in |
| `name`      | `string` | equals, contains, startsWith, endsWith, in |
| `operator`  | `string` | equals, contains, startsWith, endsWith, in |
| `created`   | `number` | equals, gt, gte, lt, lte, in               |

*Every `.search()` also accepts `limit` and `offset` for pagination. `.list()` is available on the same path without the `.search` suffix in code — see [database operations](/concepts/database).*

***

## Senders

Path: `bigmailer.db.senders.search`

```ts theme={null}
const rows = await corsair.bigmailer.db.senders.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});
```

### Searchable filters

| Field             | Type      | Operators                                  |
| ----------------- | --------- | ------------------------------------------ |
| `entity_id`       | `string`  | equals, contains, startsWith, endsWith, in |
| `id`              | `string`  | equals, contains, startsWith, endsWith, in |
| `identity_type`   | `string`  | equals, contains, startsWith, endsWith, in |
| `Identity`        | `string`  | equals, contains, startsWith, endsWith, in |
| `BounceDomain`    | `string`  | equals, contains, startsWith, endsWith, in |
| `share_type`      | `string`  | equals, contains, startsWith, endsWith, in |
| `verified`        | `boolean` | equals                                     |
| `bounce_verified` | `boolean` | equals                                     |
| `created`         | `number`  | equals, gt, gte, lt, lte, in               |

*Every `.search()` also accepts `limit` and `offset` for pagination. `.list()` is available on the same path without the `.search` suffix in code — see [database operations](/concepts/database).*

***

## Suppression Lists

Path: `bigmailer.db.suppressionLists.search`

```ts theme={null}
const rows = await corsair.bigmailer.db.suppressionLists.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});
```

### Searchable filters

| Field       | Type     | Operators                                  |
| ----------- | -------- | ------------------------------------------ |
| `entity_id` | `string` | equals, contains, startsWith, endsWith, in |
| `id`        | `string` | equals, contains, startsWith, endsWith, in |
| `file_name` | `string` | equals, contains, startsWith, endsWith, in |
| `file_size` | `number` | equals, gt, gte, lt, lte, in               |
| `created`   | `number` | equals, gt, gte, lt, lte, in               |

*Every `.search()` also accepts `limit` and `offset` for pagination. `.list()` is available on the same path without the `.search` suffix in code — see [database operations](/concepts/database).*

***

## Templates

Path: `bigmailer.db.templates.search`

```ts theme={null}
const rows = await corsair.bigmailer.db.templates.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});
```

### Searchable filters

| Field                 | Type      | Operators                                  |
| --------------------- | --------- | ------------------------------------------ |
| `entity_id`           | `string`  | equals, contains, startsWith, endsWith, in |
| `id`                  | `string`  | equals, contains, startsWith, endsWith, in |
| `name`                | `string`  | equals, contains, startsWith, endsWith, in |
| `type`                | `string`  | equals, contains, startsWith, endsWith, in |
| `shared_with_account` | `boolean` | equals                                     |
| `html`                | `string`  | equals, contains, startsWith, endsWith, in |
| `created`             | `number`  | equals, gt, gte, lt, lte, in               |

*Every `.search()` also accepts `limit` and `offset` for pagination. `.list()` is available on the same path without the `.search` suffix in code — see [database operations](/concepts/database).*

***

## Transactional Campaigns

Path: `bigmailer.db.transactionalCampaigns.search`

```ts theme={null}
const rows = await corsair.bigmailer.db.transactionalCampaigns.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});
```

### Searchable filters

| Field               | Type      | Operators                                  |
| ------------------- | --------- | ------------------------------------------ |
| `entity_id`         | `string`  | equals, contains, startsWith, endsWith, in |
| `id`                | `string`  | equals, contains, startsWith, endsWith, in |
| `name`              | `string`  | equals, contains, startsWith, endsWith, in |
| `status`            | `string`  | equals, contains, startsWith, endsWith, in |
| `subject`           | `string`  | equals, contains, startsWith, endsWith, in |
| `recipient_name`    | `string`  | equals, contains, startsWith, endsWith, in |
| `html`              | `string`  | equals, contains, startsWith, endsWith, in |
| `text`              | `string`  | equals, contains, startsWith, endsWith, in |
| `preview`           | `string`  | equals, contains, startsWith, endsWith, in |
| `auto_text`         | `boolean` | equals                                     |
| `link_params`       | `string`  | equals, contains, startsWith, endsWith, in |
| `track_opens`       | `boolean` | equals                                     |
| `track_clicks`      | `boolean` | equals                                     |
| `track_text_clicks` | `boolean` | equals                                     |
| `message_type_id`   | `string`  | equals, contains, startsWith, endsWith, in |
| `list_id`           | `string`  | equals, contains, startsWith, endsWith, in |
| `num_sent`          | `number`  | equals, gt, gte, lt, lte, in               |
| `num_rejected`      | `number`  | equals, gt, gte, lt, lte, in               |
| `num_clicks`        | `number`  | equals, gt, gte, lt, lte, in               |
| `num_opens`         | `number`  | equals, gt, gte, lt, lte, in               |
| `num_hard_bounces`  | `number`  | equals, gt, gte, lt, lte, in               |
| `num_soft_bounces`  | `number`  | equals, gt, gte, lt, lte, in               |
| `num_complaints`    | `number`  | equals, gt, gte, lt, lte, in               |
| `num_unsubscribes`  | `number`  | equals, gt, gte, lt, lte, in               |
| `started`           | `number`  | equals, gt, gte, lt, lte, in               |
| `sent`              | `number`  | equals, gt, gte, lt, lte, in               |
| `created`           | `number`  | equals, gt, gte, lt, lte, in               |

*Every `.search()` also accepts `limit` and `offset` for pagination. `.list()` is available on the same path without the `.search` suffix in code — see [database operations](/concepts/database).*

***
