---
title: "find many referralCampaigns"
method: GET
path: "/api/servicereferral/referralCampaigns"
tags: ["referralCampaigns"]
---

# find many referralCampaigns

`GET /api/servicereferral/referralCampaigns`

## Request

- Base URL: `https://services.fountain.com`
- URL: `https://services.fountain.com/api/servicereferral/referralCampaigns`
- Auth: HTTP bearer

Find many referralCampaigns (with filtering, projection, pagination and limiting). You can use filters in the query parameters (properly URL encoded) to restrict the search results:
- To restrict the search to specific values for a given field name, you can use the following syntax: filter[where][fieldName][eq]=value. Note that you can also nest the filter object to filter on multiple fields, like so: filter[where][and][0][fieldName1][eq]=value1&filter[where][and][1][fieldName2][eq]=value2. You can also use operators like gt, gte, lt, lte, ne, in, nin, etc.
- To limit the number of results returned by the query, use the following syntax: filter[limit]=25&filter[skip]=25
- To only return specific fields, use the projection query parameter. Usage is as follows: filter[fields][fieldName1]=true&filter[fields][fieldName2]=true.

## Query parameters

- `filter` ParametersFilter
  - `where` ParametersFilterWhere
  - `fields` ParametersFilterFields
  - `limit` number
  - `skip` number
  - `order` string[]
  - `collate` ParametersFilterCollation
    - `locale` string
    - `strength` number
    - `caseLevel` boolean
    - `numericOrdering` boolean

## Response `200`

One or many referralCampaign documents found. Wrapped in a JsonAPI root response with collection of documents as data.

- object
  - `data` ReferralCampaign[]
    - `uuid` string, uuid
    - `createdAt` string, date-time
    - `createdBy` string, uuid
    - `lastUpdatedAt` string, date-time
    - `lastUpdatedBy` string, uuid
    - `lastUpdatedByAudience` string
    - `lastUpdatedByAudienceUuid` string, uuid
    - `lastUpdatedByImpersonatedBy` string, uuid
    - `lastUpdatedByCompanyUuid` string, uuid
    - `lastUpdatedByEnterpriseUuid` string, uuid
    - `version` number: schema version number
    - `companyUuid` string, uuid, required
    - `status` 'draft' | 'published' | 'archived', required
    - `title` string, required
    - `allowedChannels` string[], nullable
    - `description` string
    - `segmentUuids` string[]
    - `syncedSegmentUuids` string[]: Segments the launch work was queued for. Absent on a campaign saved before the field existed. A published campaign whose set differs from `segmentUuids` still has launch work pending; saving the campaign again queues it.
    - `segmentSyncToken` string: Changes on every save that changes `segmentUuids` or `status`. The service uses it to record queued launch work only for the latest such save.
    - `virtualSegments` object[]
      - `uuid` string, uuid
      - `createdAt` string, date-time
      - `createdBy` string, uuid
      - `lastUpdatedAt` string, date-time
      - `lastUpdatedBy` string, uuid
      - `lastUpdatedByAudience` string
      - `lastUpdatedByAudienceUuid` string, uuid
      - `lastUpdatedByImpersonatedBy` string, uuid
      - `lastUpdatedByCompanyUuid` string, uuid
      - `lastUpdatedByEnterpriseUuid` string, uuid
      - `name` string, required
      - `description` string
      - `filters` string
      - `filterValues` string
      - `pipeline` string
      - `reference` object: For automatic segments, set a reference to make it easier to retrieve/update/delete when that reference changes
      - `companyUuid` string, uuid
      - `subscriptions` object[]
        - `service` 'activity' | 'attendance' | 'authorization' | 'broker' | 'compliance' | 'compliancev2' | 'communicate' | 'doctor' | 'employment' | 'integrations' | 'logger' | 'media' | 'messaging' | 'ocr' | 'occupations-mcp' | 'organizations' | 'pool' | 'pulse' | 'referral' | 'scheduler' | 'security' | 'segmentation' | 'staff' | 'support' | 'todo' | 'workforce'
        - `key` string
      - `segmentType` 'unitary' | 'default' | 'automatic' | 'observer' | 'worker_notification' | 'employer_notification'
      - `forceMatch` boolean: if true, will match worker even if they have the property `segmentEnabled` to true
      - `dynamicFilters` object, nullable
        - `event` string, required
        - `eventOffsetDirection` 'before' | 'after' | 'on', required
        - `offsetDays` number
        - `finalOffsetDirection` 'before' | 'after' | 'on'
      - `observerRecurrence` object, nullable
        - `type` 'annual', required
      - `observerTemplate` boolean: when enabled, this is meant to be a template/blueprint for actual observerSegments
      - `baseObserverSegmentUuids` string[]
      - `timezone` string
    - `positions` object[]
      - `uuid` string, required
      - `name` string, required
    - `locations` object[]
      - `uuid` string, required
      - `name` string, required
    - `default` boolean
    - `messages` object
      - `whatsapp` object
        - `enabled` boolean, required
        - `templateUuid` string, uuid, nullable
      - `email` object
        - `enabled` boolean, required
        - `subject` string
        - `content` string
      - `sms` object
        - `enabled` boolean, required
        - `content` string
    - `referrerUpdates` object
      - `whatsapp` object
        - `enabled` boolean, required
        - `appliedTemplateUuid` string, uuid, nullable
        - `hiredTemplateUuid` string, uuid, nullable
    - `incentives` object[]
      - `rewardType` 'both' | 'worker' | 'applicant', required
      - `currency` 'USD' | 'GBP' | 'EUR' | 'ARS' | 'AUD' | 'BRL' | 'CAD' | 'CHF' | 'DKK' | 'INR' | 'PHP' | 'NZD' | 'SAR' | 'COP' | 'GTQ', required
      - `cashValue` number, required
      - `numberOfDays` number
      - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted'
      - `payoutConditions` object[]
        - `conditions` object[], required
          - `numberOfDays` number, required
          - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted', required
        - `attributeConditions` object[]
          - `customAttributeUuid` string, uuid, required
          - `customAttributeName` string
          - `dataType` 'string' | 'number' | 'boolean' | 'date' | 'select', required
          - `value` union, required
            - string
            - string[]
    - `incentive` object
      - `rewardType` 'both' | 'worker' | 'applicant', required
      - `currency` 'USD' | 'GBP' | 'EUR' | 'ARS' | 'AUD' | 'BRL' | 'CAD' | 'CHF' | 'DKK' | 'INR' | 'PHP' | 'NZD' | 'SAR' | 'COP' | 'GTQ', required
      - `cashValue` number, required
      - `numberOfDays` number
      - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted'
      - `payoutConditions` object[]
        - `conditions` object[], required
          - `numberOfDays` number, required
          - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted', required
        - `attributeConditions` object[]
          - `customAttributeUuid` string, uuid, required
          - `customAttributeName` string
          - `dataType` 'string' | 'number' | 'boolean' | 'date' | 'select', required
          - `value` union, required
            - string
            - string[]
    - `reminder` object
      - `enabled` boolean, required: Whether the reminder is enabled
      - `scheme` 'every' | 'once after': Frequency of the reminder
      - `count` number: Frequency count the reminder is sent
      - `unitOfTime` 'day' | 'week' | 'month': Type of frequency for the reminder (day, week, or month)
      - `remindAt` string, date-time: The specific time the reminder is sent
      - `messages` object
        - `whatsapp` object
          - `enabled` boolean, required
          - `templateUuid` string, uuid, nullable
        - `email` object
          - `enabled` boolean, required
          - `subject` string
          - `content` string
        - `sms` object
          - `enabled` boolean, required
          - `content` string
    - `duration` object
      - `startsAt` string, date-time, required
      - `endsAt` string, date-time
      - `indefinite` boolean, required
    - `draft` object
      - `title` string
      - `segmentUuids` string[]
      - `positions` object[]
        - `uuid` string, required
        - `name` string, required
      - `locations` object[]
        - `uuid` string, required
        - `name` string, required
      - `messages` object
        - `whatsapp` object
          - `enabled` boolean, required
          - `templateUuid` string, uuid, nullable
        - `email` object
          - `enabled` boolean, required
          - `subject` string
          - `content` string
        - `sms` object
          - `enabled` boolean, required
          - `content` string
      - `referrerUpdates` object
        - `whatsapp` object
          - `enabled` boolean, required
          - `appliedTemplateUuid` string, uuid, nullable
          - `hiredTemplateUuid` string, uuid, nullable
      - `reminder` object
        - `enabled` boolean, required: Whether the reminder is enabled
        - `scheme` 'every' | 'once after': Frequency of the reminder
        - `count` number: Frequency count the reminder is sent
        - `unitOfTime` 'day' | 'week' | 'month': Type of frequency for the reminder (day, week, or month)
        - `remindAt` string, date-time: The specific time the reminder is sent
        - `messages` object
          - `whatsapp` object
            - `enabled` boolean, required
            - `templateUuid` string, uuid, nullable
          - `email` object
            - `enabled` boolean, required
            - `subject` string
            - `content` string
          - `sms` object
            - `enabled` boolean, required
            - `content` string
      - `duration` object
        - `startsAt` string, date-time, required
        - `endsAt` string, date-time
        - `indefinite` boolean, required
      - `incentives` object[]
        - `rewardType` 'both' | 'worker' | 'applicant', required
        - `currency` 'USD' | 'GBP' | 'EUR' | 'ARS' | 'AUD' | 'BRL' | 'CAD' | 'CHF' | 'DKK' | 'INR' | 'PHP' | 'NZD' | 'SAR' | 'COP' | 'GTQ', required
        - `cashValue` number, required
        - `numberOfDays` number
        - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted'
        - `payoutConditions` object[]
          - `conditions` object[], required
            - `numberOfDays` number, required
            - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted', required
          - `attributeConditions` object[]
            - `customAttributeUuid` string, uuid, required
            - `customAttributeName` string
            - `dataType` 'string' | 'number' | 'boolean' | 'date' | 'select', required
            - `value` union, required
              - …
      - `incentive` object
        - `rewardType` 'both' | 'worker' | 'applicant', required
        - `currency` 'USD' | 'GBP' | 'EUR' | 'ARS' | 'AUD' | 'BRL' | 'CAD' | 'CHF' | 'DKK' | 'INR' | 'PHP' | 'NZD' | 'SAR' | 'COP' | 'GTQ', required
        - `cashValue` number, required
        - `numberOfDays` number
        - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted'
        - `payoutConditions` object[]
          - `conditions` object[], required
            - `numberOfDays` number, required
            - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted', required
          - `attributeConditions` object[]
            - `customAttributeUuid` string, uuid, required
            - `customAttributeName` string
            - `dataType` 'string' | 'number' | 'boolean' | 'date' | 'select', required
            - `value` union, required
              - …
      - `limitAvailability` boolean
      - `customAttributeUuid` string, uuid
    - `limitAvailability` boolean
    - `customAttributeUuid` string, uuid
    - `virtualCustomAttribute` object
      - `uuid` string, uuid
      - `createdAt` string, date-time: Creation timestamp
      - `createdBy` string, uuid: Creator UUID
      - `lastUpdatedAt` string, date-time: Last update timestamp
      - `lastUpdatedBy` string, uuid: Last updater UUID
      - `lastUpdatedByAudience` string: Audience of last updater
      - `lastUpdatedByAudienceUuid` string, uuid: Audience UUID of last updater
      - `lastUpdatedByImpersonatedBy` string, uuid: Impersonator UUID
      - `lastUpdatedByCompanyUuid` string, uuid: Company UUID of last updater
      - `lastUpdatedByEnterpriseUuid` string, uuid: Enterprise UUID of last updater
      - `companyUuid` string, uuid: Company UUID
      - `label` string, required
      - `key` string
      - `dataType` 'string' | 'number' | 'date' | 'boolean' | 'select' | 'address' | 'media' | 'signature' | 'complianceDocument', required
      - `description` string
      - `options` object[]
        - `value` string, required
        - `label` string
        - `archived` boolean: If true, this option is unavailable for new worker selections.
        - `hireValue` unknown
      - `resource` string
      - `resourceIdentifier` string, uuid
      - `readOnly` boolean: If true, this attribute cannot be modified. Can only be set by system.
      - `hidden` boolean: If true, this attribute won't be shown. Can only be set by system.
      - `protected` boolean: If true, this attribute can only be accessed by users with certain rights.
      - `hireDataKeyId` integer: The ID of the hire data key
      - `origin` 'wx' | 'hire': Which system authored this attribute definition
      - `attributeSectionUuid` string, uuid, nullable: UUID of the attributeSection this attribute is grouped under on the worker profile Attributes tab. Null, absent or a deleted section means unassigned: the UI renders an unassigned applicant-origin attribute (hireDataKeyId set) under the virtual "Applicant Attributes" section, otherwise under a trailing "Other" group. A hidden attribute never renders, even inside a company section.
      - `validation` union: Optional format rule enforced on this attribute. Absent means no rule: exactly the pre-validation behavior. Send null to remove a rule — over JSON that is the only way to say "clear it", since an absent key is a partial patch that leaves the stored rule alone.
        - object
          - `rule` 'regex', required
          - `config` object, required
            - `pattern` string, required
            - `flags` string
          - `message` string
        - object
          - `rule` 'email', required
          - `config` object
          - `message` string
        - object
          - `rule` 'phone', required
          - `config` object
            - `locale` string
          - `message` string
        - object
          - `rule` 'bankAccountNumber', required
          - `config` object
          - `message` string
        - object
          - `rule` 'bankRoutingNumber', required
          - `config` object
          - `message` string
        - object
          - `rule` 'iban', required
          - `config` object
          - `message` string
        - object
          - `rule` 'postalCode', required
          - `config` object
            - `locale` string
          - `message` string
        - object
          - `rule` 'taxId', required
          - `config` object, required
            - `locale` string, required
          - `message` string
        - object
          - `rule` 'passport', required
          - `config` object, required
            - `locale` string, required
          - `message` string
        - object
          - `rule` 'restrictedCharacters', required
          - `config` object, required
            - `characters` string, required
          - `message` string
        - object
          - `rule` 'minLength', required
          - `config` object, required
            - `value` integer, required
          - `message` string
        - object
          - `rule` 'maxLength', required
          - `config` object, required
            - `value` integer, required
          - `message` string
        - object
          - `rule` 'minValue', required
          - `config` object, required
            - `value` number, required
          - `message` string
        - object
          - `rule` 'maxValue', required
          - `config` object, required
            - `value` number, required
          - `message` string
        - object
          - `rule` 'pastDate', required
          - `config` object
          - `message` string
        - object
          - `rule` 'futureDate', required
          - `config` object
          - `message` string
        - unknown
      - `generation` integer: Monotonically increasing definition generation. Increments only when the validation rule changes. A value is current against the rule only when its lastCheckedGeneration equals this. Read-only.
  - `meta` ResponsesPartMeta
    - `timestamp` string, date-time, required
    - `verb` 'OPTION' | 'GET' | 'PUT' | 'POST' | 'PATCH' | 'DELETE'
    - `path` string
    - `jti` string
    - `rid` string
    - `count` number
    - `capped` boolean: The server lowered filter[limit] to its ceiling. Page with filter[skip] to read past it.
    - `status` string
    - `duration` number
    - `size` number

## Other responses

- `500`: default error response

---

[API](https://skmtc.dev/fountain/apis/worker-experience-public-api.md) - [All operations](https://skmtc.dev/fountain/apis/worker-experience-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fountain/apis/worker-experience-public-api/revisions/6b9a31f79e22?raw)
