GrowSurf · Schema

Participant

Detailed information about a program participant.

ReferralsMarketingSoftware-as-a-ServiceHealthcareFintechCompany

Properties

Name Type Description
id string The unique identifier of the participant.
isAffiliate boolean Affiliate programs only. Whether this participant is an enrolled affiliate. A referred customer who has not joined the program is `false`.
affiliateStatus stringnull Affiliate programs only. The enrolled affiliate's status (`APPROVED`, `SUSPENDED`, or `BANNED`). `null` for participants who are not affiliates.
affiliateEnrollmentSource stringnull Affiliate programs only. How the affiliate enrolled (`OPEN_ENROLLMENT`, `APPLICATION`, `PARTICIPANT_AUTH`, `INVITE`, `REST_API`, `CSV`, or `DASHBOARD`). `null` when not recorded.
firstName stringnull The first name of the participant.
lastName stringnull The last name of the participant.
email string The email of the participant.
paypalEmailAddress string The PayPal email address on file for the participant, used for affiliate or PayPal reward payouts.
referralCount integer The total number of referrals made by the participant.
monthlyReferralCount integer The total number of referrals made this month by the participant (resets at the end of the month).
prevMonthlyReferralCount integer The total number of referrals made the previous month by the participant.
leadCount integer The number of pending referrals the participant made that have not converted into successful referrals yet. Not cumulative: it goes down when a lead converts.
rank integer The rank of the participant.
monthlyRank integer The monthly rank of the participant. This rank resets to 0 at the end of each month.
prevMonthlyRank integer The previous monthly rank of the participant. Not returned if the participant did not exist in your program during the previous month.
shareUrl string The unique share URL of the participant. Omitted for affiliate program participants who are not approved affiliates.
createdAt integer The date the participant was added to the program (UTC milliseconds).
referralSource object The source of how the participant joined the program.
referralStatus object If the participant was referred, the referrer's status in receiving the referral credit. Only applicable if the participant was referred into the program.
referredBy string The ID of the referrer. Only applicable if the participant was referred into the program.
referralLeadQualifiedAt integernull When this referred signup counted as a lead for the referrer, in Unix milliseconds. Set only when the program's `referralTrigger` is `CUSTOM`. Lead-event Campaign Rewards and commissions use it.
fraudRiskLevel object A value that represents the integrity of the participant.
fraudReasonCode string Machine-readable label for the participant's `fraudRiskLevel`. The label identifies broad outcomes such as unique or duplicate participant data, suspicious referral activity, configured access rules,
isWinner boolean `true` if the participant has earned one or more rewards.
shareCount object An object containing counts of how many times the participant has shared their referral link, keyed by channel. Standard web channels include `email`, `facebook`, and `twitter`; SDK/native-share chann
impressionCount integer The total number of impressions the participant has made.
uniqueImpressionCount integer The total number of unique impressions the participant has made.
inviteCount integer The total number of invites the participant has sent.
referrals array A list of `Participant` IDs who were successfully referred by the participant. Limited to the 100 most recently referred friends.
monthlyReferrals array A list of `Participant` IDs successfully referred by the participant this month (resets at the end of the month). Limited to the 100 most recent.
referrer object An object containing the participant's referrer information. Only applicable if the participant was referred into the program.
ipAddress stringnull The IP address recorded for the participant, or `null` when unavailable.
fingerprint stringnull The browser identifier recorded for the participant, or `null` when unavailable.
mobileInstanceId stringnull App-install scoped identifier supplied by a native app, or `null` when unavailable. The official mobile SDKs generate a lowercase UUID. Not stored when strict GDPR/CCPA mode is enabled.
metadata object An object containing any custom key-value data, useful for saving additional data for the participant (e.g., `company`, `companySize`). Metadata is never used by GrowSurf and usage is optional. Metada
notes stringnull Internal notes about the participant, added via the [GrowSurf Dashboard](https://growsurf.com/dashboard).
unsubscribed boolean `true` if the participant has unsubscribed from program emails.
language string The language of the participant's portal and program emails. The program's base language unless the participant (or you) picked another of the program's languages.
rewards array A list of the rewards the participant has earned.
vanityKeys array The list of vanity keys that the participant has.
unreadCommissionsCount integer Affiliate programs only. The number of commissions the participant has not yet viewed.
unreadPayoutsCount integer Affiliate programs only. The number of payouts the participant has not yet viewed.
isNew boolean Whether this participant was newly created by the request. Returned by participant creation calls; `false` when the participant already existed.
allMatchingFraudsters array A list of other participant IDs associated with this participant's fraud status.
payoutSettings object Payout-related actions the participant must complete before a payout can be released (e.g. configuring a payout destination or submitting a W-9/W-8 tax form). Always present; the requiredActions array
View JSON Schema on GitHub

JSON Schema

growsurf-com-participant-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/growsurf-com/json-schema/growsurf-com-participant-schema.json",
  "title": "Participant",
  "description": "Detailed information about a program participant.",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/growsurf-com-openapi.json#/components/schemas/Participant",
  "type": "object",
  "required": [
    "id",
    "referralCount",
    "monthlyReferralCount",
    "rank",
    "monthlyRank",
    "rewards",
    "email"
  ],
  "properties": {
    "id": {
      "type": "string",
      "readOnly": true,
      "description": "The unique identifier of the participant."
    },
    "isAffiliate": {
      "type": "boolean",
      "readOnly": true,
      "description": "Affiliate programs only. Whether this participant is an enrolled affiliate. A referred customer who has not joined the program is `false`."
    },
    "affiliateStatus": {
      "type": [
        "string",
        "null"
      ],
      "readOnly": true,
      "description": "Affiliate programs only. The enrolled affiliate's status (`APPROVED`, `SUSPENDED`, or `BANNED`). `null` for participants who are not affiliates."
    },
    "affiliateEnrollmentSource": {
      "type": [
        "string",
        "null"
      ],
      "readOnly": true,
      "description": "Affiliate programs only. How the affiliate enrolled (`OPEN_ENROLLMENT`, `APPLICATION`, `PARTICIPANT_AUTH`, `INVITE`, `REST_API`, `CSV`, or `DASHBOARD`). `null` when not recorded."
    },
    "firstName": {
      "type": [
        "string",
        "null"
      ],
      "description": "The first name of the participant."
    },
    "lastName": {
      "type": [
        "string",
        "null"
      ],
      "description": "The last name of the participant."
    },
    "email": {
      "type": "string",
      "description": "The email of the participant."
    },
    "paypalEmailAddress": {
      "type": "string",
      "format": "email",
      "readOnly": true,
      "description": "The PayPal email address on file for the participant, used for affiliate or PayPal reward payouts."
    },
    "referralCount": {
      "type": "integer",
      "readOnly": true,
      "description": "The total number of referrals made by the participant."
    },
    "monthlyReferralCount": {
      "type": "integer",
      "readOnly": true,
      "description": "The total number of referrals made this month by the participant (resets at the end of the month)."
    },
    "prevMonthlyReferralCount": {
      "type": "integer",
      "readOnly": true,
      "description": "The total number of referrals made the previous month by the participant."
    },
    "leadCount": {
      "type": "integer",
      "readOnly": true,
      "description": "The number of pending referrals the participant made that have not converted into successful referrals yet. Not cumulative: it goes down when a lead converts."
    },
    "rank": {
      "type": "integer",
      "readOnly": true,
      "description": "The rank of the participant."
    },
    "monthlyRank": {
      "type": "integer",
      "readOnly": true,
      "description": "The monthly rank of the participant. This rank resets to 0 at the end of each month."
    },
    "prevMonthlyRank": {
      "type": "integer",
      "readOnly": true,
      "description": "The previous monthly rank of the participant. Not returned if the participant did not exist in your program during the previous month."
    },
    "shareUrl": {
      "type": "string",
      "readOnly": true,
      "description": "The unique share URL of the participant. Omitted for affiliate program\nparticipants who are not approved affiliates."
    },
    "createdAt": {
      "type": "integer",
      "format": "int64",
      "readOnly": true,
      "description": "The date the participant was added to the program (UTC milliseconds)."
    },
    "referralSource": {
      "$ref": "#/$defs/ReferralSource",
      "readOnly": true,
      "description": "The source of how the participant joined the program."
    },
    "referralStatus": {
      "$ref": "#/$defs/ReferralStatus",
      "description": "If the participant was referred, the referrer's status in receiving the referral credit. Only applicable if the participant was referred into the program."
    },
    "referredBy": {
      "type": "string",
      "description": "The ID of the referrer. Only applicable if the participant was referred into the program."
    },
    "referralLeadQualifiedAt": {
      "type": [
        "integer",
        "null"
      ],
      "format": "int64",
      "readOnly": true,
      "description": "When this referred signup counted as a lead for the referrer, in Unix milliseconds. Set only when the program's `referralTrigger` is `CUSTOM`. Lead-event Campaign Rewards and commissions use it."
    },
    "fraudRiskLevel": {
      "$ref": "#/$defs/FraudRiskLevel",
      "readOnly": true,
      "description": "A value that represents the integrity of the participant."
    },
    "fraudReasonCode": {
      "type": "string",
      "readOnly": true,
      "description": "Machine-readable label for the participant's `fraudRiskLevel`. The label identifies broad\noutcomes such as unique or duplicate participant data, suspicious referral activity,\nconfigured access rules, or a manual update.\n\nCurrent labels include `UNIQUE_IDENTITY`, `DUPLICATE_EMAIL`, `DUPLICATE_IDENTITY`,\n`DUPLICATE_IDENTITY_EXCESSIVE`, `EMAIL_FRAUD`, `SIMILAR_EMAIL`, `SIMILAR_FIRST_NAME`,\n`SIMILAR_LAST_NAME`, `REFERRAL_EMAIL_PATTERN`, `REFERRAL_CHAIN_FRAUD`,\n`REFERRAL_VELOCITY_FRAUD`, `DOMAIN_CLUSTERING_FRAUD`, `MANUAL_UPDATE`, `WHITELISTED`,\n`BLACKLIST_MATCH`, `BLOCKED_IP`, and `REFERRER_HIGH_RISK`. Treat this as a diagnostic\nlabel because GrowSurf can add labels without notice."
    },
    "isWinner": {
      "type": "boolean",
      "readOnly": true,
      "description": "`true` if the participant has earned one or more rewards."
    },
    "shareCount": {
      "type": "object",
      "readOnly": true,
      "additionalProperties": {
        "type": "integer"
      },
      "description": "An object containing counts of how many times the participant has shared their referral link, keyed by channel. Standard web channels include `email`, `facebook`, and `twitter`; SDK/native-share channels include `iosNativeShare` and `androidNativeShare`."
    },
    "impressionCount": {
      "type": "integer",
      "readOnly": true,
      "description": "The total number of impressions the participant has made."
    },
    "uniqueImpressionCount": {
      "type": "integer",
      "readOnly": true,
      "description": "The total number of unique impressions the participant has made."
    },
    "inviteCount": {
      "type": "integer",
      "readOnly": true,
      "description": "The total number of invites the participant has sent."
    },
    "referrals": {
      "type": "array",
      "readOnly": true,
      "items": {
        "type": "string"
      },
      "description": "A list of `Participant` IDs who were successfully referred by the participant. Limited to the 100 most recently referred friends."
    },
    "monthlyReferrals": {
      "type": "array",
      "readOnly": true,
      "items": {
        "type": "string"
      },
      "description": "A list of `Participant` IDs successfully referred by the participant this month (resets at the end of the month). Limited to the 100 most recent."
    },
    "referrer": {
      "readOnly": true,
      "oneOf": [
        {
          "$ref": "#/$defs/ParticipantReferrer"
        },
        {
          "type": "null"
        }
      ],
      "description": "An object containing the participant's referrer information. Only applicable if the participant was referred into the program."
    },
    "ipAddress": {
      "type": [
        "string",
        "null"
      ],
      "description": "The IP address recorded for the participant, or `null` when unavailable."
    },
    "fingerprint": {
      "type": [
        "string",
        "null"
      ],
      "description": "The browser identifier recorded for the participant, or `null` when unavailable."
    },
    "mobileInstanceId": {
      "type": [
        "string",
        "null"
      ],
      "description": "App-install scoped identifier supplied by a native app, or `null` when unavailable. The official mobile SDKs generate a lowercase UUID. Not stored when strict GDPR/CCPA mode is enabled."
    },
    "metadata": {
      "$ref": "#/$defs/Metadata",
      "description": "An object containing any custom key-value data, useful for saving additional data for the participant (e.g., `company`, `companySize`). Metadata is never used by GrowSurf and usage is optional. Metadata is returned only in REST API calls, and never in JavaScript Web API calls. See [API Guidelines](https://docs.growsurf.com/developer-tools/rest-api/api-guidelines)."
    },
    "notes": {
      "type": [
        "string",
        "null"
      ],
      "description": "Internal notes about the participant, added via the [GrowSurf Dashboard](https://growsurf.com/dashboard)."
    },
    "unsubscribed": {
      "type": "boolean",
      "description": "`true` if the participant has unsubscribed from program emails."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "es",
        "fr",
        "de",
        "it",
        "pt-BR",
        "nl",
        "pl",
        "sv",
        "tr",
        "ja",
        "ko",
        "zh-CN",
        "id",
        "da",
        "nb",
        "nn",
        "fi",
        "is",
        "cs",
        "sk",
        "hu",
        "ro",
        "hr",
        "sl",
        "et",
        "lv",
        "lt",
        "el",
        "bg",
        "uk",
        "ru",
        "pt-PT",
        "ca",
        "vi",
        "ms",
        "fil",
        "af",
        "sw",
        "zh-TW",
        "es-419"
      ],
      "description": "The language of the participant's portal and program emails. The program's base language unless the participant (or you) picked another of the program's languages."
    },
    "rewards": {
      "type": "array",
      "readOnly": true,
      "items": {
        "$ref": "#/$defs/ParticipantReward"
      },
      "description": "A list of the rewards the participant has earned."
    },
    "vanityKeys": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The list of vanity keys that the participant has."
    },
    "unreadCommissionsCount": {
      "type": "integer",
      "readOnly": true,
      "description": "Affiliate programs only. The number of commissions the participant has not yet viewed."
    },
    "unreadPayoutsCount": {
      "type": "integer",
      "readOnly": true,
      "description": "Affiliate programs only. The number of payouts the participant has not yet viewed."
    },
    "isNew": {
      "type": "boolean",
      "readOnly": true,
      "description": "Whether this participant was newly created by the request. Returned by participant creation calls; `false` when the participant already existed."
    },
    "allMatchingFraudsters": {
      "type": "array",
      "readOnly": true,
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "A list of other participant IDs associated with this participant's fraud status."
    },
    "payoutSettings": {
      "type": "object",
      "readOnly": true,
      "description": "Payout-related actions the participant must complete before a payout can be released (e.g. configuring a payout destination or submitting a W-9/W-8 tax form). Always present; the requiredActions array is empty when no action is required.",
      "properties": {
        "requiredActions": {
          "description": "Actions the participant must complete before payouts can be sent.",
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string",
            "enum": [
              "PAYOUT_DESTINATION",
              "TAX_INFO"
            ]
          }
        }
      }
    }
  },
  "$defs": {
    "CommissionStructure": {
      "type": "object",
      "description": "The commission configuration for an affiliate reward. Present only for affiliate programs.",
      "properties": {
        "amount": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 1,
          "maximum": 999999999999,
          "description": "Fixed commission amount in the currency's smallest denomination, used when `type` is `FIXED`. The maximum is `100000000` (1,000,000.00) for USD, EUR, and GBP. `null` for percentage-based commissions."
        },
        "amountISO": {
          "type": [
            "string",
            "null"
          ],
          "description": "ISO 4217 currency code for the fixed `amount`. Defaults to the program's currency when omitted. Must match the campaign `currencyISO` when provided. `null` for percentage-based commissions."
        },
        "event": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "CLICK",
            "LEAD",
            "SALE",
            null
          ],
          "description": "The event that generates a commission. Missing legacy values read as `SALE`."
        },
        "type": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "PERCENT",
            "FIXED",
            null
          ],
          "description": "How the commission is calculated: `PERCENT` (a percentage of the sale) or `FIXED` (a fixed `amount`)."
        },
        "minPaidReferrals": {
          "type": [
            "integer",
            "null"
          ],
          "description": "The minimum number of paid referrals required before commissions are earned."
        },
        "holdDuration": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Number of days a commission is held before it can be paid out."
        },
        "duration": {
          "type": [
            "string",
            "null"
          ],
          "description": "How long commissions continue to be earned for a referred customer: `FOREVER`, `REPEATING`, or `ONCE`. Only applies when `event` is `SALE`. `null` for `CLICK` and `LEAD` commissions, which pay once per event."
        },
        "durationInMonths": {
          "type": [
            "integer",
            "null"
          ],
          "description": "When `duration` is `REPEATING`, the number of months over which commissions are earned. `null` otherwise."
        },
        "approvalRequired": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "`true` if commissions require manual approval before they can be paid out."
        },
        "percent": {
          "type": [
            "number",
            "null"
          ],
          "description": "The commission percentage, used when `type` is `PERCENT`."
        },
        "hasMaxAmount": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "`true` if a maximum commission amount cap is configured."
        },
        "maxAmount": {
          "type": [
            "integer",
            "null"
          ],
          "description": "The maximum commission amount cap in the currency's smallest denomination. `null` if no cap is set."
        },
        "maxAmountISO": {
          "type": [
            "string",
            "null"
          ],
          "description": "The [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) currency code for `maxAmount`. Must match the campaign `currencyISO` when provided."
        },
        "hasIntro": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "`true` if an introductory commission rate is configured. Only applies when `event` is `SALE`. Always `false` for `CLICK` and `LEAD` commissions, whose `intro*` fields are `null`."
        },
        "introType": {
          "type": [
            "string",
            "null"
          ],
          "description": "How the introductory commission is calculated: `PERCENT` or `FIXED`."
        },
        "introPercent": {
          "type": [
            "number",
            "null"
          ],
          "description": "The introductory commission percentage, used when `introType` is `PERCENT`."
        },
        "introAmount": {
          "type": [
            "integer",
            "null"
          ],
          "description": "The introductory commission amount in the currency's smallest denomination, used when `introType` is `FIXED`."
        },
        "introAmountISO": {
          "type": [
            "string",
            "null"
          ],
          "description": "The [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) currency code for `introAmount`. Must match the campaign `currencyISO` when provided."
        },
        "introDuration": {
          "type": [
            "string",
            "null"
          ],
          "description": "How long the introductory rate applies."
        },
        "introDurationInMonths": {
          "type": [
            "integer",
            "null"
          ],
          "description": "When `introDuration` is repeating, the number of months the introductory rate applies."
        }
      },
      "additionalProperties": false
    },
    "FraudRiskLevel": {
      "type": "string",
      "enum": [
        "LOW",
        "MEDIUM",
        "HIGH"
      ]
    },
    "Metadata": {
      "type": "object",
      "description": "Shallow custom metadata object.",
      "additionalProperties": true
    },
    "Participant": {
      "type": "object",
      "description": "Detailed information about a program participant.",
      "required": [
        "id",
        "referralCount",
        "monthlyReferralCount",
        "rank",
        "monthlyRank",
        "rewards",
        "email"
      ],
      "properties": {
        "id": {
          "type": "string",
          "readOnly": true,
          "description": "The unique identifier of the participant."
        },
        "isAffiliate": {
          "type": "boolean",
          "readOnly": true,
          "description": "Affiliate programs only. Whether this participant is an enrolled affiliate. A referred customer who has not joined the program is `false`."
        },
        "affiliateStatus": {
          "type": [
            "string",
            "null"
          ],
          "readOnly": true,
          "description": "Affiliate programs only. The enrolled affiliate's status (`APPROVED`, `SUSPENDED`, or `BANNED`). `null` for participants who are not affiliates."
        },
        "affiliateEnrollmentSource": {
          "type": [
            "string",
            "null"
          ],
          "readOnly": true,
          "description": "Affiliate programs only. How the affiliate enrolled (`OPEN_ENROLLMENT`, `APPLICATION`, `PARTICIPANT_AUTH`, `INVITE`, `REST_API`, `CSV`, or `DASHBOARD`). `null` when not recorded."
        },
        "firstName": {
          "type": [
            "string",
            "null"
          ],
          "description": "The first name of the participant."
        },
        "lastName": {
          "type": [
            "string",
            "null"
          ],
          "description": "The last name of the participant."
        },
        "email": {
          "type": "string",
          "description": "The email of the participant."
        },
        "paypalEmailAddress": {
          "type": "string",
          "format": "email",
          "readOnly": true,
          "description": "The PayPal email address on file for the participant, used for affiliate or PayPal reward payouts."
        },
        "referralCount": {
          "type": "integer",
          "readOnly": true,
          "description": "The total number of referrals made by the participant."
        },
        "monthlyReferralCount": {
          "type": "integer",
          "readOnly": true,
          "description": "The total number of referrals made this month by the participant (resets at the end of the month)."
        },
        "prevMonthlyReferralCount": {
          "type": "integer",
          "readOnly": true,
          "description": "The total number of referrals made the previous month by the participant."
        },
        "leadCount": {
          "type": "integer",
          "readOnly": true,
          "description": "The number of pending referrals the participant made that have not converted into successful referrals yet. Not cumulative: it goes down when a lead converts."
        },
        "rank": {
          "type": "integer",
          "readOnly": true,
          "description": "The rank of the participant."
        },
        "monthlyRank": {
          "type": "integer",
          "readOnly": true,
          "description": "The monthly rank of the participant. This rank resets to 0 at the end of each month."
        },
        "prevMonthlyRank": {
          "type": "integer",
          "readOnly": true,
          "description": "The previous monthly rank of the participant. Not returned if the participant did not exist in your program during the previous month."
        },
        "shareUrl": {
          "type": "string",
          "readOnly": true,
          "description": "The unique share URL of the participant. Omitted for affiliate program\nparticipants who are not approved affiliates."
        },
        "createdAt": {
          "type": "integer",
          "format": "int64",
          "readOnly": true,
          "description": "The date the participant was added to the program (UTC milliseconds)."
        },
        "referralSource": {
          "$ref": "#/$defs/ReferralSource",
          "readOnly": true,
          "description": "The source of how the participant joined the program."
        },
        "referralStatus": {
          "$ref": "#/$defs/ReferralStatus",
          "description": "If the participant was referred, the referrer's status in receiving the referral credit. Only applicable if the participant was referred into the program."
        },
        "referredBy": {
          "type": "string",
          "description": "The ID of the referrer. Only applicable if the participant was referred into the program."
        },
        "referralLeadQualifiedAt": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int64",
          "readOnly": true,
          "description": "When this referred signup counted as a lead for the referrer, in Unix milliseconds. Set only when the program's `referralTrigger` is `CUSTOM`. Lead-event Campaign Rewards and commissions use it."
        },
        "fraudRiskLevel": {
          "$ref": "#/$defs/FraudRiskLevel",
          "readOnly": true,
          "description": "A value that represents the integrity of the participant."
        },
        "fraudReasonCode": {
          "type": "string",
          "readOnly": true,
          "description": "Machine-readable label for the participant's `fraudRiskLevel`. The label identifies broad\noutcomes such as unique or duplicate participant data, suspicious referral activity,\nconfigured access rules, or a manual update.\n\nCurrent labels include `UNIQUE_IDENTITY`, `DUPLICATE_EMAIL`, `DUPLICATE_IDENTITY`,\n`DUPLICATE_IDENTITY_EXCESSIVE`, `EMAIL_FRAUD`, `SIMILAR_EMAIL`, `SIMILAR_FIRST_NAME`,\n`SIMILAR_LAST_NAME`, `REFERRAL_EMAIL_PATTERN`, `REFERRAL_CHAIN_FRAUD`,\n`REFERRAL_VELOCITY_FRAUD`, `DOMAIN_CLUSTERING_FRAUD`, `MANUAL_UPDATE`, `WHITELISTED`,\n`BLACKLIST_MATCH`, `BLOCKED_IP`, and `REFERRER_HIGH_RISK`. Treat this as a diagnostic\nlabel because GrowSurf can add labels without notice."
        },
        "isWinner": {
          "type": "boolean",
          "readOnly": true,
          "description": "`true` if the participant has earned one or more rewards."
        },
        "shareCount": {
          "type": "object",
          "readOnly": true,
          "additionalProperties": {
            "type": "integer"
          },
          "description": "An object containing counts of how many times the participant has shared their referral link, keyed by channel. Standard web channels include `email`, `facebook`, and `twitter`; SDK/native-share channels include `iosNativeShare` and `androidNativeShare`."
        },
        "impressionCount": {
          "type": "integer",
          "readOnly": true,
          "description": "The total number of impressions the participant has made."
        },
        "uniqueImpressionCount": {
          "type": "integer",
          "readOnly": true,
          "description": "The total number of unique impressions the participant has made."
        },
        "inviteCount": {
          "type": "integer",
          "readOnly": true,
          "description": "The total number of invites the participant has sent."
        },
        "referrals": {
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "A list of `Participant` IDs who were successfully referred by the participant. Limited to the 100 most recently referred friends."
        },
        "monthlyReferrals": {
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "A list of `Participant` IDs successfully referred by the participant this month (resets at the end of the month). Limited to the 100 most recent."
        },
        "referrer": {
          "readOnly": true,
          "oneOf": [
            {
              "$ref": "#/$defs/ParticipantReferrer"
            },
            {
              "type": "null"
            }
          ],
          "description": "An object containing the participant's referrer information. Only applicable if the participant was referred into the program."
        },
        "ipAddress": {
          "type": [
            "string",
            "null"
          ],
          "description": "The IP address recorded for the participant, or `null` when unavailable."
        },
        "fingerprint": {
          "type": [
            "string",
            "null"
          ],
          "description": "The browser identifier recorded for the participant, or `null` when unavailable."
        },
        "mobileInstanceId": {
          "type": [
            "string",
            "null"
          ],
          "description": "App-install scoped identifier supplied by a native app, or `null` when unavailable. The official mobile SDKs generate a lowercase UUID. Not stored when strict GDPR/CCPA mode is enabled."
        },
        "metadata": {
          "$ref": "#/$defs/Metadata",
          "description": "An object containing any custom key-value data, useful for saving additional data for the participant (e.g., `company`, `companySize`). Metadata is never used by GrowSurf and usage is optional. Metadata is returned only in REST API calls, and never in JavaScript Web API calls. See [API Guidelines](https://docs.growsurf.com/developer-tools/rest-api/api-guidelines)."
        },
        "notes": {
          "type": [
            "string",
            "null"
          ],
          "description": "Internal notes about the participant, added via the [GrowSurf Dashboard](https://growsurf.com/dashboard)."
        },
        "unsubscribed": {
          "type": "boolean",
          "description": "`true` if the participant has unsubscribed from program emails."
        },
        "language": {
          "type": "string",
          "enum": [
            "en",
            "es",
            "fr",
            "de",
            "it",
            "pt-BR",
            "nl",
            "pl",
            "sv",
            "tr",
            "ja",
            "ko",
            "zh-CN",
            "id",
            "da",
            "nb",
            "nn",
            "fi",
            "is",
            "cs",
            "sk",
            "hu",
            "ro",
            "hr",
            "sl",
            "et",
            "lv",
            "lt",
            "el",
            "bg",
            "uk",
            "ru",
            "pt-PT",
            "ca",
            "vi",
            "ms",
            "fil",
            "af",
            "sw",
            "zh-TW",
            "es-419"
          ],
          "description": "The language of the participant's portal and program emails. The program's base language unless the participant (or you) picked another of the program's languages."
        },
        "rewards": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "#/$defs/ParticipantReward"
          },
          "description": "A list of the rewards the participant has earned."
        },
        "vanityKeys": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of vanity keys that the participant has."
        },
        "unreadCommissionsCount": {
          "type": "integer",
          "readOnly": true,
          "description": "Affiliate programs only. The number of commissions the participant has not yet viewed."
        },
        "unreadPayoutsCount": {
          "type": "integer",
          "readOnly": true,
          "description": "Affiliate programs only. The number of payouts the participant has not yet viewed."
        },
        "isNew": {
          "type": "boolean",
          "readOnly": true,
          "description": "Whether this participant was newly created by the request. Returned by participant creation calls; `false` when the participant already existed."
        },
        "allMatchingFraudsters": {
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "object",
            "additionalProperties": true
          },
          "description": "A list of other participant IDs associated with this participant's fraud status."
        },
        "payoutSettings": {
          "type": "object",
          "readOnly": true,
          "description": "Payout-related actions the participant must complete before a payout can be released (e.g. configuring a payout destination or submitting a W-9/W-8 tax form). Always present; the requiredActions array is empty when no action is required.",
          "properties": {
            "requiredActions": {
              "description": "Actions the participant must complete before payouts can be sent.",
              "type": "array",
              "readOnly": true,
              "items": {
                "type": "string",
                "enum": [
                  "PAYOUT_DESTINATION",
                  "TAX_INFO"
                ]
              }
            }
          }
        }
      }
    },
    "ParticipantReferrer": {
      "description": "The participant's referrer, returned within the `referrer` field of a `Participant`. It has the\nsame fields as a `Participant`. Its own `referrer` is always `null`.",
      "allOf": [
        {
          "$ref": "#/$defs/Participant"
        }
      ]
    },
    "ParticipantReward": {
      "type": "object",
      "description": "A reward that a participant has earned. This is different from a program `Reward` Object and contains information pertinent only to the participant that earned the reward.",
      "required": [
        "id",
        "rewardId",
        "status"
      ],
      "properties": {
        "id": {
          "type": "string",
          "readOnly": true,
          "description": "The unique identifier of the participant's reward. This is different for every new reward the participant earns."
        },
        "rewardId": {
          "type": "string",
          "readOnly": true,
          "description": "The ID of the program `Reward` (`CampaignReward`) that this participant has earned."
        },
        "status": {
          "$ref": "#/$defs/RewardStatus",
          "readOnly": true,
          "description": "The status of the participant's reward."
        },
        "unread": {
          "type": "boolean",
          "readOnly": true,
          "description": "`true` if the participant has not yet seen the reward in a GrowSurf window."
        },
        "approved": {
          "type": "boolean",
          "readOnly": true,
          "description": "`true` if the participant's reward has been approved."
        },
        "app

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://artifacts.apis.io/growsurf-com/json-schema/growsurf-com-participant-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/growsurf-com-participant"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.