[PERS SDK - v2.3.26](/sdk-reference/readme) / [Exports](/sdk-reference/modules) / CampaignApi

# Class: CampaignApi

Platform-Agnostic Campaign API Client (NEW - RESTful Design)

Updated to use the new microservice-ready campaign controllers:

- CampaignsController: Core campaign operations
- CampaignTagsController: Tag management
- CampaignTokensController: Token unit operations
- CampaignTriggersController: Trigger system
- CampaignEngagementsController: Business relationships
- CampaignClaimsController: Claims processing


Uses @explorins/pers-shared DTOs for consistency with backend.
All endpoints updated to new RESTful patterns without role revelation.

## Table of contents

### Constructors

- [constructor](/sdk-reference/classes/campaignapi#constructor)


### Methods

- [getCampaigns](/sdk-reference/classes/campaignapi#getcampaigns)
- [getCampaignById](/sdk-reference/classes/campaignapi#getcampaignbyid)
- [createCampaign](/sdk-reference/classes/campaignapi#createcampaign)
- [updateCampaign](/sdk-reference/classes/campaignapi#updatecampaign)
- [toggleCampaignActive](/sdk-reference/classes/campaignapi#togglecampaignactive)
- [toggleCampaignTestnet](/sdk-reference/classes/campaignapi#togglecampaigntestnet)
- [deleteCampaign](/sdk-reference/classes/campaignapi#deletecampaign)
- [getAllUniqueTags](/sdk-reference/classes/campaignapi#getalluniquetags)
- [updateCampaignTags](/sdk-reference/classes/campaignapi#updatecampaigntags)
- [addTagsToCampaign](/sdk-reference/classes/campaignapi#addtagstocampaign)
- [removeTagFromCampaign](/sdk-reference/classes/campaignapi#removetagfromcampaign)
- [createCampaignTokenUnit](/sdk-reference/classes/campaignapi#createcampaigntokenunit)
- [updateCampaignTokenUnit](/sdk-reference/classes/campaignapi#updatecampaigntokenunit)
- [deleteCampaignTokenUnit](/sdk-reference/classes/campaignapi#deletecampaigntokenunit)
- [getCampaignTriggers](/sdk-reference/classes/campaignapi#getcampaigntriggers)
- [getCampaignTriggerById](/sdk-reference/classes/campaignapi#getcampaigntriggerbyid)
- [createCampaignTrigger](/sdk-reference/classes/campaignapi#createcampaigntrigger)
- [updateCampaignTrigger](/sdk-reference/classes/campaignapi#updatecampaigntrigger)
- [deleteCampaignTrigger](/sdk-reference/classes/campaignapi#deletecampaigntrigger)
- [setCampaignTrigger](/sdk-reference/classes/campaignapi#setcampaigntrigger)
- [removeCampaignTrigger](/sdk-reference/classes/campaignapi#removecampaigntrigger)
- [addOrRemoveConditionToTrigger](/sdk-reference/classes/campaignapi#addorremoveconditiontotrigger)
- [addBusinessEngagementToCampaign](/sdk-reference/classes/campaignapi#addbusinessengagementtocampaign)
- [updateCampaignBusinessEngagement](/sdk-reference/classes/campaignapi#updatecampaignbusinessengagement)
- [deleteCampaignBusinessEngagement](/sdk-reference/classes/campaignapi#deletecampaignbusinessengagement)
- [claimCampaign](/sdk-reference/classes/campaignapi#claimcampaign)
- [getClaims](/sdk-reference/classes/campaignapi#getclaims)
- [getClaimsLoggedUser](/sdk-reference/classes/campaignapi#getclaimsloggeduser)
- [assignTriggerSourceToCampaign](/sdk-reference/classes/campaignapi#assigntriggersourcetocampaign)
- [removeTriggerSourceFromCampaign](/sdk-reference/classes/campaignapi#removetriggersourcefromcampaign)
- [exportCSV](/sdk-reference/classes/campaignapi#exportcsv)
- [exportClaimsCSV](/sdk-reference/classes/campaignapi#exportclaimscsv)
- [setCampaignApproval](/sdk-reference/classes/campaignapi#setcampaignapproval)


## Constructors

### constructor

• **new CampaignApi**(`apiClient`): [`CampaignApi`](/sdk-reference/classes/campaignapi)

#### Parameters

| Name | Type |
|  --- | --- |
| `apiClient` | [`PersApiClient`](/sdk-reference/classes/persapiclient) |


#### Returns

[`CampaignApi`](/sdk-reference/classes/campaignapi)

#### Defined in

[campaign/api/campaign-api.ts:38](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L38)

## Methods

### getCampaigns

▸ **getCampaigns**(`options?`): `Promise`<`PaginatedResponseDTO`<`CampaignDTO`>>

Get campaigns with pagination support
Returns paginated response with metadata (total, page, limit, hasMore)
Intelligent access: Public gets active only, Business gets own campaigns, Admin gets all

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `options?` | `CampaignQueryParams` | Filter, pagination, and include options |


#### Returns

`Promise`<`PaginatedResponseDTO`<`CampaignDTO`>>

**`Example`**

```typescript
// Get campaigns with trigger sources included
const campaigns = await api.getCampaigns({ include: ['triggerSources'] });
campaigns.data.forEach(c => console.log(c.included?.triggerSources));

// Get campaigns with claim count
const withCounts = await api.getCampaigns({ include: ['claimCount'] });
withCounts.data.forEach(c => console.log(c.claimCount));

// Filter by date range
const dateFiltered = await api.getCampaigns({ 
  startDate: new Date('2026-05-01'), 
  endDate: new Date('2026-12-31') 
});
```

#### Defined in

[campaign/api/campaign-api.ts:71](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L71)

### getCampaignById

▸ **getCampaignById**(`id`, `include?`): `Promise`<`CampaignDTO`>

PUBLIC: Get campaign by ID
NEW: /campaigns/{id}

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `id` | `string` | Campaign UUID |
| `include?` | `CampaignIncludeRelation`[] | Relations to include: 'triggerSources', 'businesses', 'claimCount' |


#### Returns

`Promise`<`CampaignDTO`>

**`Example`**

```typescript
// Get campaign with all relations
const campaign = await api.getCampaignById('123', ['triggerSources', 'businesses']);
console.log(campaign.included?.triggerSources);
console.log(campaign.included?.businesses);

// Get campaign with claim count
const withCount = await api.getCampaignById('123', ['claimCount']);
console.log(withCount.claimCount);
```

#### Defined in

[campaign/api/campaign-api.ts:111](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L111)

### createCampaign

▸ **createCampaign**(`campaign`): `Promise`<`CampaignDTO`>

ADMIN: Create campaign
NEW: POST /campaigns

#### Parameters

| Name | Type |
|  --- | --- |
| `campaign` | `CampaignCreateRequestDTO` |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:120](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L120)

### updateCampaign

▸ **updateCampaign**(`campaignId`, `campaign`): `Promise`<`CampaignDTO`>

ADMIN: Update campaign
NEW: PUT /campaigns/{id}

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |
| `campaign` | `CampaignCreateRequestDTO` |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:128](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L128)

### toggleCampaignActive

▸ **toggleCampaignActive**(`campaignId`): `Promise`<`CampaignDTO`>

ADMIN: Toggle campaign active status
NEW: PUT /campaigns/{id}/status

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:136](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L136)

### toggleCampaignTestnet

▸ **toggleCampaignTestnet**(`campaignId`): `Promise`<`CampaignDTO`>

ADMIN: Toggle campaign testnet environment
NEW: PUT /campaigns/{id}/environment

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:144](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L144)

### deleteCampaign

▸ **deleteCampaign**(`campaignId`): `Promise`<`boolean`>

ADMIN: Delete campaign
NEW: DELETE /campaigns/{id}

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |


#### Returns

`Promise`<`boolean`>

#### Defined in

[campaign/api/campaign-api.ts:152](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L152)

### getAllUniqueTags

▸ **getAllUniqueTags**(): `Promise`<`string`[]>

ADMIN: Get all unique campaign tags
NEW: GET /campaign-tags

#### Returns

`Promise`<`string`[]>

#### Defined in

[campaign/api/campaign-api.ts:164](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L164)

### updateCampaignTags

▸ **updateCampaignTags**(`campaignId`, `tags`): `Promise`<`CampaignDTO`>

ADMIN: Update campaign tags (replace all)
NEW: PUT /campaign-tags/{id}

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |
| `tags` | `string`[] |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:172](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L172)

### addTagsToCampaign

▸ **addTagsToCampaign**(`campaignId`, `tags`): `Promise`<`CampaignDTO`>

ADMIN: Add tags to campaign
NEW: POST /campaign-tags/{id}

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |
| `tags` | `string`[] |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:180](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L180)

### removeTagFromCampaign

▸ **removeTagFromCampaign**(`campaignId`, `tag`): `Promise`<`CampaignDTO`>

ADMIN: Remove tag from campaign
NEW: DELETE /campaign-tags/{id}/{tag}

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |
| `tag` | `string` |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:188](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L188)

### createCampaignTokenUnit

▸ **createCampaignTokenUnit**(`campaignId`, `campaignTokenUnit`): `Promise`<`CampaignDTO`>

ADMIN: Create campaign token unit
NEW: POST /campaign-tokens/{id}

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |
| `campaignTokenUnit` | `TokenUnitCreateRequestDTO` |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:200](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L200)

### updateCampaignTokenUnit

▸ **updateCampaignTokenUnit**(`campaignId`, `tokenUnitId`, `campaignTokenUnit`): `Promise`<`CampaignDTO`>

ADMIN: Update campaign token unit
NEW: PUT /campaign-tokens/{id}/{tokenUnitId}

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |
| `tokenUnitId` | `string` |
| `campaignTokenUnit` | `TokenUnitCreateRequestDTO` |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:208](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L208)

### deleteCampaignTokenUnit

▸ **deleteCampaignTokenUnit**(`campaignId`, `campaignTokenUnitId`): `Promise`<`CampaignDTO`>

ADMIN: Delete campaign token unit
NEW: DELETE /campaign-tokens/{id}/{tokenUnitId}

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |
| `campaignTokenUnitId` | `string` |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:216](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L216)

### getCampaignTriggers

▸ **getCampaignTriggers**(`options?`): `Promise`<`PaginatedResponseDTO`<`CampaignTriggerDTO`>>

PUBLIC: Get campaign triggers catalog with pagination
NEW: GET /campaign-triggers

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `options?` | `PaginationOptions` | Pagination and sorting options |


#### Returns

`Promise`<`PaginatedResponseDTO`<`CampaignTriggerDTO`>>

Paginated list of campaign triggers

**`Example`**

```typescript
// Get first page
const page1 = await campaignApi.getCampaignTriggers();

// Get specific page
const page2 = await campaignApi.getCampaignTriggers({ page: 2, limit: 25 });

// Access data
page1.data.forEach(trigger => console.log(trigger.name));
```

#### Defined in

[campaign/api/campaign-api.ts:243](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L243)

### getCampaignTriggerById

▸ **getCampaignTriggerById**(`triggerId`): `Promise`<`CampaignTriggerDTO`>

PUBLIC: Get campaign trigger by ID
NEW: GET /campaign-triggers/{id}

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `triggerId` | `string` | Campaign trigger UUID |


#### Returns

`Promise`<`CampaignTriggerDTO`>

Campaign trigger details

#### Defined in

[campaign/api/campaign-api.ts:260](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L260)

### createCampaignTrigger

▸ **createCampaignTrigger**(`trigger`): `Promise`<`CampaignTriggerDTO`>

ADMIN: Create campaign trigger
NEW: POST /campaign-triggers

#### Parameters

| Name | Type |
|  --- | --- |
| `trigger` | `CampaignTriggerCreateRequestDTO` |


#### Returns

`Promise`<`CampaignTriggerDTO`>

#### Defined in

[campaign/api/campaign-api.ts:268](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L268)

### updateCampaignTrigger

▸ **updateCampaignTrigger**(`triggerId`, `trigger`): `Promise`<`CampaignTriggerDTO`>

ADMIN: Update campaign trigger
NEW: PUT /campaign-triggers/{id}

#### Parameters

| Name | Type |
|  --- | --- |
| `triggerId` | `string` |
| `trigger` | `CampaignTriggerCreateRequestDTO` |


#### Returns

`Promise`<`CampaignTriggerDTO`>

#### Defined in

[campaign/api/campaign-api.ts:276](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L276)

### deleteCampaignTrigger

▸ **deleteCampaignTrigger**(`triggerId`): `Promise`<`boolean`>

ADMIN: Delete campaign trigger
NEW: DELETE /campaign-triggers/{id}

#### Parameters

| Name | Type |
|  --- | --- |
| `triggerId` | `string` |


#### Returns

`Promise`<`boolean`>

#### Defined in

[campaign/api/campaign-api.ts:284](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L284)

### setCampaignTrigger

▸ **setCampaignTrigger**(`campaignId`, `triggerId`): `Promise`<`CampaignDTO`>

ADMIN: Assign trigger to campaign
NEW: PUT /campaign-triggers/{triggerId}/assign/{campaignId}

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |
| `triggerId` | `string` |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:292](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L292)

### removeCampaignTrigger

▸ **removeCampaignTrigger**(`campaignId`, `triggerId`): `Promise`<`CampaignDTO`>

ADMIN: Remove trigger from campaign (unassign)
NEW: DELETE /campaign-triggers/{triggerId}/assign/{campaignId}

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |
| `triggerId` | `string` |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:300](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L300)

### addOrRemoveConditionToTrigger

▸ **addOrRemoveConditionToTrigger**(`triggerId`, `condition`): `Promise`<`CampaignTriggerDTO`>

ADMIN: Add/Remove condition to trigger
NEW: PUT /campaign-triggers/{triggerId}/conditions/{conditionId}

#### Parameters

| Name | Type |
|  --- | --- |
| `triggerId` | `string` |
| `condition` | `CampaignTriggerConditionDTO` |


#### Returns

`Promise`<`CampaignTriggerDTO`>

#### Defined in

[campaign/api/campaign-api.ts:308](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L308)

### addBusinessEngagementToCampaign

▸ **addBusinessEngagementToCampaign**(`campaignId`, `campaignBusinessEngagement`): `Promise`<`CampaignDTO`>

ADMIN: Add business engagement to campaign
NEW: POST /campaign-engagements/{id}

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |
| `campaignBusinessEngagement` | `CampaignBusinessEngagementCreateRequestDTO` |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:320](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L320)

### updateCampaignBusinessEngagement

▸ **updateCampaignBusinessEngagement**(`campaignId`, `businessEngagementId`, `campaignBusinessEngagement`): `Promise`<`CampaignDTO`>

ADMIN: Update campaign business engagement
NEW: PUT /campaign-engagements/{id}/{businessEngagementId}

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |
| `businessEngagementId` | `string` |
| `campaignBusinessEngagement` | `CampaignBusinessEngagementCreateRequestDTO` |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:328](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L328)

### deleteCampaignBusinessEngagement

▸ **deleteCampaignBusinessEngagement**(`campaignId`, `businessEngagementId`): `Promise`<`CampaignDTO`>

ADMIN: Delete campaign business engagement
NEW: DELETE /campaign-engagements/{id}/{businessEngagementId}

#### Parameters

| Name | Type |
|  --- | --- |
| `campaignId` | `string` |
| `businessEngagementId` | `string` |


#### Returns

`Promise`<`CampaignDTO`>

#### Defined in

[campaign/api/campaign-api.ts:336](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L336)

### claimCampaign

▸ **claimCampaign**(`request`): `Promise`<`CampaignClaimDTO`>

USER: Claim campaign reward

#### Parameters

| Name | Type |
|  --- | --- |
| `request` | `CampaignClaimRequestDTO` |


#### Returns

`Promise`<`CampaignClaimDTO`>

#### Defined in

[campaign/api/campaign-api.ts:347](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L347)

### getClaims

▸ **getClaims**(`filters?`, `include?`): `Promise`<`PaginatedResponseDTO`<`CampaignClaimDTO`>>

Unified claims retrieval method with pagination
Routes to appropriate endpoint based on filters:

- No filters: Admin gets all claims
- With userId/campaignId/businessId: Admin gets filtered claims


#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `filters?` | `Object` | Filter and pagination options |
| `filters.campaignId?` | `string` | - |
| `filters.userId?` | `string` | - |
| `filters.businessId?` | `string` | - |
| `filters.dateFrom?` | `string` | `Date` | - |
| `filters.dateTo?` | `string` | `Date` | - |
| `filters.page?` | `number` | - |
| `filters.limit?` | `number` | - |
| `filters.sortBy?` | `string` | - |
| `filters.sortOrder?` | `SortOrder` | - |
| `include?` | `CampaignClaimIncludeRelation`[] | - |


#### Returns

`Promise`<`PaginatedResponseDTO`<`CampaignClaimDTO`>>

Paginated list of campaign claims

**`Example`**

```typescript
// Admin: Get all claims
const allClaims = await campaignApi.getClaims();

// Admin: Get claims for specific user
const userClaims = await campaignApi.getClaims({ userId: 'user-123' });

// Admin: Get claims for specific campaign (paginated)
const page1 = await campaignApi.getClaims({ 
  campaignId: 'campaign-123',
  page: 1,
  limit: 50
});

// Admin: Get claims with multiple filters
const filtered = await campaignApi.getClaims({
  businessId: 'business-456',
  page: 2
});
```

#### Defined in

[campaign/api/campaign-api.ts:382](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L382)

### getClaimsLoggedUser

▸ **getClaimsLoggedUser**(`options?`, `include?`): `Promise`<`PaginatedResponseDTO`<`CampaignClaimDTO`>>

USER: Get logged-in user's own campaign claims
Uses /me endpoint for authenticated user context

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `options?` | `PaginationOptions` | Pagination options |
| `include?` | `CampaignClaimIncludeRelation`[] | Optional relations to include (campaign, user, business) |


#### Returns

`Promise`<`PaginatedResponseDTO`<`CampaignClaimDTO`>>

Paginated list of user's claims

#### Defined in

[campaign/api/campaign-api.ts:424](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L424)

### assignTriggerSourceToCampaign

▸ **assignTriggerSourceToCampaign**(`campaignId`, `triggerSourceId`): `Promise`<`CampaignDTO`>

ADMIN: Assign a trigger source to a campaign

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `campaignId` | `string` | Campaign UUID |
| `triggerSourceId` | `string` | Trigger source UUID |


#### Returns

`Promise`<`CampaignDTO`>

Updated campaign with trigger source assigned

#### Defined in

[campaign/api/campaign-api.ts:453](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L453)

### removeTriggerSourceFromCampaign

▸ **removeTriggerSourceFromCampaign**(`campaignId`, `triggerSourceId`): `Promise`<`CampaignDTO`>

ADMIN: Remove a trigger source from a campaign

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `campaignId` | `string` | Campaign UUID |
| `triggerSourceId` | `string` | Trigger source UUID |


#### Returns

`Promise`<`CampaignDTO`>

Updated campaign with trigger source removed

#### Defined in

[campaign/api/campaign-api.ts:467](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L467)

### exportCSV

▸ **exportCSV**(`options?`): `Promise`<`Blob`>

ADMIN: Export campaigns to CSV

Returns a CSV file with campaign data for the tenant.
Supports date range filtering.

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `options?` | `Object` | Export options (dateFrom, dateTo) |
| `options.dateFrom?` | `string` | - |
| `options.dateTo?` | `string` | - |


#### Returns

`Promise`<`Blob`>

CSV blob

#### Defined in

[campaign/api/campaign-api.ts:486](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L486)

### exportClaimsCSV

▸ **exportClaimsCSV**(`options?`): `Promise`<`Blob`>

ADMIN: Export campaign claims to CSV

Returns a CSV file with all campaign claim data.
Supports date range filtering.

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `options?` | `Object` | Export options (dateFrom, dateTo) |
| `options.dateFrom?` | `string` | - |
| `options.dateTo?` | `string` | - |


#### Returns

`Promise`<`Blob`>

CSV blob

#### Defined in

[campaign/api/campaign-api.ts:504](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L504)

### setCampaignApproval

▸ **setCampaignApproval**(`campaignId`, `status`, `reason?`): `Promise`<`CampaignDTO`>

ADMIN: Approve a campaign

Approves a campaign that is pending approval, changing its status to 'approved'.

Endpoint: PATCH /admin/campaigns/:id/approve
Auth: @TenantAdmin()

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `campaignId` | `string` | ID of the campaign to approve |
| `status` | `"approved"` | `"rejected"` | - |
| `reason?` | `string` | - |


#### Returns

`Promise`<`CampaignDTO`>

Updated campaign with approval metadata

#### Defined in

[campaign/api/campaign-api.ts:528](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/campaign/api/campaign-api.ts#L528)