# Get all triggers (Public Catalog)

Get all available triggers for campaign configuration. Public access for catalog browsing. Use pagination parameters (page & limit) for optimal performance. Legacy support: returns array without params (deprecated - will be removed in future). Replaces GET /campaign/trigger/all

Endpoint: GET /campaign-triggers
Version: 2.0.59
Security: projectKey

## Security:

  - `projectKey` (unknown)
    apiKey in header x-project-key

## Query parameters:

  - `page` (number)
    Page number for pagination (1-based)

  - `limit` (number)
    Items per page for pagination

## Response 200:

  - `200` (unknown)
    All available triggers retrieved

## Response 200 fields (application/json):

  - `name` (number)
    Campaign trigger name

  - `description` (string)
    Campaign trigger description

  - `terms` (string)
    Terms and conditions for participation. Plain text or HTML. Multi-language handling at app level.

  - `maxPerDayPerUser` (number)
    Campaign trigger max per day per user

  - `maxPerUser` (number)
    Campaign trigger max per user

  - `minCooldownSeconds` (number)
    Campaign trigger min cooldown seconds

  - `maxGeoDistanceInMeters` (number)
    Campaign trigger max geo distance to Business in meters

  - `requiredUserInfo` (string)
    Campaign trigger required user info

  - `triggerType` (string)
    WHO can initiate a claim for this campaign.
**Values:**
- `CLAIM_BY_USER`: End users initiate claims (scan QR, tap NFC, enter geofence)
- `CLAIM_BY_BUSINESS`: Business claims on behalf of users (POS, kiosk, staff-assisted)
- `CLAIM_BY_SYSTEM`: Server/webhook automated claims (webhooks, scheduled jobs)

**Important:** This defines WHO can claim.
NOT to be confused with TriggerSource.type which defines HOW to claim (QR_CODE, NFC_TAG, GPS_GEOFENCE, etc.).
**App Logic:**
- If CLAIM_BY_USER: App shows claim UI based on triggerSources[].type
- If CLAIM_BY_BUSINESS: Requires business auth + userIdentifier in request
- If CLAIM_BY_SYSTEM: Server-to-server only, requires tenant API key
    Enum: "CLAIM_BY_USER", "CLAIM_BY_SYSTEM", "CLAIM_BY_BUSINESS"

  - `maxMultiplier` (number)
    Campaign trigger max multiplier

  - `completionThreshold` (number)
    Campaign trigger completion threshold. This indicates the number of completions required before the reward is granted

  - `maxTotal` (number)
    Campaign trigger max total completions across all users

  - `maxPerDayTotal` (number)
    Campaign trigger max total completions per day across all users

  - `maxPerSource` (number)
    Maximum claims per trigger source for this campaign. Limits how many times each individual trigger source can be used.

  - `conditions` (array)
    Campaign trigger conditions

  - `conditions.conditionType` (string, required)
    Trigger condition type
    Enum: "EQUALS", "NOT_EQUALS", "GREATER_THAN", "LESS_THAN", "CONTAINS", "IS_PART_OF"

  - `conditions.value` (object, required)
    Trigger condition value

  - `conditions.key` (string, required)
    Trigger condition key

  - `sourceLogic` (string)
    Source logic type defining how multiple trigger sources combine to activate the flow
    Enum: "any"

  - `id` (string, required)
    Campaign trigger id

