Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

GrowSurf

NPM · @GROWSURFTEAM/GROWSURF-MCP · 2 COMPONENTS

Build and manage GrowSurf referral and affiliate programs through AI assistants.

−1 this week 87 Trust /100

Last scanned (10 hours ago)

Scores higher than 91% of npm servers

Category Marketing and SEO

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 30 of 93 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to growsurf/growsurf-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability73
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 17450 tokens (~260/item across 67 items; 66 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management62
  • Stability check failed: the tool surface changed between 0.19.8 and 0.19.28: 1 tool removals, 46 breaking changes, 4 additions. See how to fix → Fail
Tool Coverage83
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 42% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety97
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 8 of 9 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "growsurf_agent_program_creation_eval" implies "eval" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 68 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 +15
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Malware scan: unverified → pass ▲ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Package version: 0.19.27 → 0.19.28 functional
  • 3 Nov 26 −16
    • Malware scan: pass → unverified ▼ security
    • Known CVEs: pass → unverified ▼ security
    • Schema quality: 15925 → 17691 ▼ functional
    • Dependency health: 0.86 → unverified ▼ functional
    • Package version: 0.19.24 → 0.19.27 functional
    • Package version: 0.19.24 → 0.19.26 functional
    • Package version: 0.19.24 → 0.19.25 functional
  • 25 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
    • Security disclosure: unverified → fail ▼ functional
  • 24 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
    • Security disclosure: fail → unverified ▼ functional
    • Package version: 0.19.23 → 0.19.24 functional
  • 22 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 21 Oct 26 0
    • Package version: 0.19.22 → 0.19.23 functional
  • 20 Oct 26 −15
    • Known CVEs: pass → unverified ▼ security
    • Malware scan: pass → unverified ▼ security
    • Dependency health: 0.85 → unverified ▼ functional
    • Package version: 0.19.19 → 0.19.22 functional
    • Package version: 0.19.19 → 0.19.21 functional
    • Package version: 0.19.19 → 0.19.20 functional
  • 19 Oct 26 +15
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Malware scan: unverified → pass ▲ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Package version: 0.19.16 → 0.19.19 functional
    • Package version: 0.19.16 → 0.19.18 functional
    • Package version: 0.19.16 → 0.19.17 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/@growsurfteam/growsurf-mcp@0.19.28

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo growsurf/growsurf-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/growsurf/growsurf-mcp/.github/workflows/publish.yml@refs/heads/main
Rekor log index 3687566879
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:4a5036535eaf9fe9229e904259b983cd9ac1cab50eb9b445e39768bf5e61ee9f3414c957521e6d260b599ce1fbef7a1c02ff019de861ae8a76e4809af

Background: How many MCP packages publish verified provenance →

Dependencies 93 packages
Packages resolved 93
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 66 exposed · ~16,792 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
growsurf_add_participant ~658

Add or fetch a participant by email. If the email already exists, the existing participant is returned unchanged. One exception: if that participant claimed an offer in the Claim Offer Popup and the signup is not complete yet, this call completes the signup with the original referrer and saves any non-blank `firstName`, `lastName`, and `metadata` you send. This is trusted direct enrollment and bypasses the public application review flow for affiliates. For affiliate programs, set `isAffiliate` to `true` to enroll a new participant as approved or `false` to create a non-affiliate. If you omit it, a valid `referredBy` creates a referred non-affiliate; without a valid referrer, the new participant is enrolled as approved. A valid `referredBy` can be combined with `isAffiliate: true`. Targets `campaignId` if you pass it, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
emailstringyes–
fingerprintstring––
firstNamestring––
ipAddressstring––
isAffiliateboolean–Affiliate programs only. Controls affiliate enrollment for a new participant. `true` enrolls the participant with `affiliateStatus: APPROVED`; `false` creates a non-affiliate without `affiliateStatus…
languagestring–The language of the participant's portal and program emails. Stored when it is one of the program's languages (`languages` in `growsurf_get_campaign_options`). A regional tag maps to its language (fo…
lastNamestring––
metadataobject––
mobileInstanceIdstring––
referralStatusstring––
referredAtinteger|null–When the participant was referred, in Unix milliseconds. Used only with a valid `referredBy`. If you omit `referralStatus`, GrowSurf compares this time with the program's referral credit window to se…
referredBystring––

Structured output declared, but exposes no named fields.

No examples provided.

growsurf_agent_program_creation_eval ~100

Generate Markdown prompts and acceptance checks for evaluating an agent's program-creation workflow: starter content, rewards, configuration, and frontend installation. Does not create a program or run the checks. Use `growsurf_program_design_advisor` to choose a program design, or `growsurf_integration_guide` to plan its web integration.

NameTypeReqDescription
includeOneShotPromptsboolean––
programTypestring––
NameTypeReqDescription
markdownstring–The generated guidance as a markdown document.

No examples provided.

growsurf_api_library_snippets ~154

Generate Markdown code examples for the official backend REST API libraries in TypeScript, Python, PHP, Ruby, and Java. Select `language` and `workflow`; both default to `all`. Covers setup, program lookup, participant creation, referral credit, sales, and mobile participant tokens. Returns code without executing API calls. Use `growsurf_client_snippets` for browser JavaScript or `growsurf_mobile_sdk_guide` for native or React Native app setup.

NameTypeReqDescription
campaignIdstring––
emailstring––
languagestring––
participantIdOrEmailstring––
referredBystring––
workflowstring––
NameTypeReqDescription
markdownstring–The generated guidance as a markdown document.

No examples provided.

growsurf_bulk_delete_participants ~311

Bulk delete participants from your GrowSurf program in one request. DESTRUCTIVE: deletion is permanent and cannot be undone. Successful rows lose participant access immediately; related record cleanup completes automatically, subject to required financial record retention. Each entry in `participants` is a GrowSurf participant ID or an email address (mixed lists are allowed), up to 200 entries per request — chunk larger lists across multiple calls. Returns a `summary` (total, deletedCount, notFoundCount, duplicateCount, errorCount) plus per-row `results` in request order, each with `status` DELETED, NOT_FOUND, DUPLICATE (resolves to the same participant as an earlier entry), or ERROR — both `200` and `202` responses can include NOT_FOUND or ERROR rows, and the summary reports these outcomes. A `202` response includes `analyticsErasure` when analytics erasure is pending. `DELETED` means participant access was removed; reports can retain the participant until cleanup completes. Do not repeat successful rows to finish cleanup. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
participantsarrayyesGrowSurf participant IDs and/or email addresses to delete (1-200 entries; mixed lists allowed).
NameTypeReqDescription
analyticsErasureobject–Analytics erasure is pending. Reports can retain removed participants until erasure completes. Do not repeat successful deletions.
resultsarray–One entry per submitted identifier, in request order.
summaryobject–Counts across all submitted entries.

No examples provided.

growsurf_cancel_delayed_referral ~120

Cancel a pending delayed referral trigger for a participant before the delay elapses (e.g. on refund/cancellation). Returns { success, message }. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
participantEmailstring––
participantIdstring––
NameTypeReqDescription
messagestring–Human-readable result message. Present when credit was not awarded immediately.
successboolean–Whether referral credit was awarded, scheduled, or cancelled.

No examples provided.

growsurf_capture_referral_flow_screenshots ~165

Capture temporary GrowSurf preview screenshots after a draft program is saved. Returns short-lived URLs for the controlled referrer Window and referred-friend experience, with an `expiresAt` timestamp in UTC. The screenshots reflect the saved program at capture time and do not verify installation on the customer's site. A failed inline image alone does not establish that the URL expired. This tool does not accept arbitrary URLs, HTML, JavaScript, or external screenshot targets. Targets `campaignId` if supplied, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
NameTypeReqDescription
expiresAtstring–When the signed URLs stop working (ISO 8601).
generatedAtstring–When the screenshots were captured (ISO 8601).
screenshotsarray–One entry per captured view.

No examples provided.

growsurf_client_snippets ~169

Generate Markdown browser JavaScript and CSS examples for referral tracking, embeddable elements, and the GrowSurf Window, with placement guidance. Does not install code or change a program. Use `growsurf_embeddable_element_snippet` for one HTML element, `growsurf_grsf_config_snippet` for `window.grsfConfig`, or `growsurf_api_library_snippets` for backend REST code.

NameTypeReqDescription
includeEmbeddableElementsboolean––
includeEventSubscriptionsboolean––
includeGrowSurfWindowboolean––
includeUnreadBadgeboolean––
participantAuthEnabledboolean––
programTypestring––
referralTriggerstring––
singlePageAppboolean––
NameTypeReqDescription
markdownstring–The generated guidance as a markdown document.

No examples provided.

growsurf_clone_campaign ~100

Clone your GrowSurf program (campaign) into a new DRAFT program. Integrations and credentials are not copied; active rewards are cloned. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.

Structured output declared, but exposes no named fields.

No examples provided.

growsurf_create_campaign ~652

Create a new GrowSurf program (campaign) with type-appropriate starter content and optional inline rewards. Starter content includes Design, Emails, Options, Installation, and GrowSurf Window defaults. Only `type` is required. The program starts in `DRAFT` status and is owned by the credential's bound team. `currencyISO` defaults to `USD` and is immutable after creation. `goal` sets the sharing settings at creation and cannot be set later. Incentives require the customer's chosen amount or commission rate. Without `rewards`, GrowSurf's starter rewards are switched off and award nothing. Editor-tab configuration is not accepted here. Does not require `GROWSURF_CAMPAIGN_ID`. The response includes the new program `id`.

NameTypeReqDescription
companyLogoImageUrlstring|null––
companyNamestring|null––
currencyISOstring––
goalstring–What the program is for, which seeds the share buttons and the starter rewards that suit that audience. Programs whose participants refer other businesses (`CUSTOMERS`, `USERS`, `B2B_SAAS_SELF_SERVIC…
namestring––
rewardsarray–Rewards to create with the program. Include this only when the person told you the amount and who funds it. Omit it and the program is seeded with starter rewards that are switched off, awarding noth…
typestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

growsurf_create_campaign_reward ~767

Create a new campaign reward (reward config) on your GrowSurf program. `type` must be compatible with the program type (affiliate programs support only AFFILIATE rewards; referral programs support the other types). Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
commissionStructureobject–Affiliate commission structure (AFFILIATE rewards only). Provide a positive `amount` (+ optional `amountISO`) for a FIXED commission, or `percent` for a PERCENT commission. CLICK and LEAD commissions…
conversionsRequiredinteger––
couponCodestring|null––
descriptionstring––
eventstring–The referral event that earns this Campaign Reward. Use `LEAD` for a referred signup or `CONVERSION` for a qualifying action. A `LEAD` reward requires a later custom conversion trigger. Referral rewa…
imageIconKeystring|null–The starter icon shown for the reward, or `null` when `imageUrl` is your own image. Participant pages draw this icon in your program's accent color. Also set `imageUrl` to the icon's image so the iOS…
imageUrlstring|null––
isUnlimitedboolean––
isVisibleboolean––
limitinteger––
limitDurationstring––
metadataobject–Custom key/value metadata. Sending it replaces the stored object. Each value must be a string, number, or boolean of up to 500 characters. Each key must have 1 to 40 characters once camelCased, and t…
nextMilestonePrefixstring|null––
nextMilestoneSuffixstring|null––
numberOfWinnersinteger––
orderinteger––
referralCouponCodestring|null––
referralDescriptionstring|null––
referredRewardUpfrontboolean––
referredValueobject|null–Tax valuation for the referred friend's side of a double-sided reward. `taxCharacter` is the reason the recipient earns the reward. For configurable non-commission rewards, `null` inherits the progra…
titlestring––
typestringyes–
valueobject|null–Tax valuation for the reward (the referrer's side of a double-sided reward). `fairMarketValueUSD` is the manual fair-market value in USD (major units). `taxCharacter` is the reason the recipient earn…

Structured output declared, but exposes no named fields.

No examples provided.

growsurf_create_campaign_webhook ~293

Add a webhook to your GrowSurf program. `payloadUrl` is required. `events` is the list of events this webhook is subscribed to. Omit it to subscribe the webhook to every event its program type offers, or send `[]` for none. An event the program type does not offer returns `400`. A program can have up to 5 webhooks, counting the primary webhook, so you can create up to 4. Creating another returns `400`. `secret` is write-only — GrowSurf uses it to sign deliveries (the GrowSurf-Signature HMAC header) and never returns it. A program can have only one saved Bask Health webhook across all `bask.ninja` hosts and paths, including disabled webhooks. A second Bask Health webhook returns `400`. A concurrent change to webhook settings can return `409`; reload the webhooks before retrying. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
eventsarray––
isEnabledboolean––
payloadUrlstringyes–
secretstring–Write-only. Signs deliveries; never returned.

Structured output declared, but exposes no named fields.

No examples provided.

growsurf_create_mobile_participant_token ~509

Create or fetch a participant, then create a participant-scoped mobile SDK token via GrowSurf REST. Participant creation is trusted direct enrollment and bypasses the public application review flow for affiliates. Targets `campaignId` if you pass it, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
emailstringyes–
fingerprintstring––
firstNamestring––
ipAddressstring––
isAffiliateboolean–Sets whether the participant is an affiliate. Use `true` only for trusted direct enrollment. Public applicants should follow the program's configured application flow.
languagestring–The language of the participant's portal and program emails. Stored when it is one of the program's languages (`languages` in `growsurf_get_campaign_options`). A regional tag maps to its language (fo…
lastNamestring––
metadataobject––
mobileInstanceIdstring––
referralStatusstring––
referredAtinteger|null–When the participant was referred, in Unix milliseconds. Used only with a valid `referredBy`. If you omit `referralStatus`, GrowSurf compares this time with the program's referral credit window to se…
referredBystring––
NameTypeReqDescription
expiresIninteger–Token lifetime in seconds.
isNewboolean–Whether this request created a new participant.
participantobject–The participant record (same shape as the `growsurf_get_participant` result).
participantTokenstring–Participant-scoped bearer token for GrowSurf mobile SDK participant endpoints.

No examples provided.

growsurf_create_program_resource ~269

Create a `FILE`, `LINK`, or `TEXT` resource for participants. `LINK` requires an HTTPS `url`. `TEXT` requires plain `text`. A `FILE` up to 10 MB requires a one-time `uploadTicket` and the unmodified `uploadResult` from GrowSurf's secure upload flow. New resources default to draft unless `isPublished` is set. API reference: https://growsurf.com/openapi.json. Targets `campaignId` if supplied, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
categorystring|null––
descriptionstring|null––
isPublishedboolean––
textstring–Used only with `TEXT`.
titlestringyes–
typestringyes–
uploadResultobject–The unmodified result returned by the secure upload flow. Used only with `FILE`.
uploadTicketstring–The one-time upload ticket. Used only with `FILE`.
urlstring–Used only with `LINK`.

Structured output declared, but exposes no named fields.

No examples provided.

growsurf_delete_campaign_reward ~137

Delete a campaign reward (reward config) from your GrowSurf program. The reward is deactivated, removed from the program's reward set, and any connected upfront-discount coupons are cleaned up. `campaignRewardId` is the reward key. Returns { id, success }. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
campaignRewardIdstringyes–
NameTypeReqDescription
idstring–The deleted campaign reward id.
successboolean–Whether the campaign reward was deleted.

No examples provided.

growsurf_delete_campaign_webhook ~99

Remove a webhook from your GrowSurf program by id. Returns { id, success }. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
webhookIdstringyes–
NameTypeReqDescription
idstring–Id of the webhook that was deleted.
successboolean–Whether the webhook was deleted.

No examples provided.

growsurf_delete_program_resource ~101

Delete a participant resource from your GrowSurf program. This does not remove its reusable Media Center asset. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
resourceIdstringyes–
NameTypeReqDescription
idstring–The deleted resource id.
successboolean–Whether the resource was deleted.

No examples provided.

growsurf_email_participant ~586

Send an email to a participant (by GrowSurf participant ID or email). Provide EITHER `emailType` to trigger one of the program's configured email templates, OR `subject` + `body` for a free-form email (optionally `preheader`). For programs with `settings.design.layoutMode` set to `INLINE`, `body` must include `{{emailFooter}}`; `{{emailHeader}}` is optional. Free-form emails are sent with the same compliance handling (company name, postal address, and an unsubscribe link are added automatically, and unsubscribed participants are suppressed). Sending requires the team to be verified by GrowSurf and a verified custom email domain on the program (set up in *Program Editor > 3. Emails > Email Settings*). Returns 400 until one is verified. The email is accepted for delivery. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
bodystring–Free-form HTML body. You can personalize it with dynamic text, inserting `{{...}}` tokens like `{{firstName}}` or `{{shareUrl}}`. See [Guide to using dynamic text in GrowSurf emails](https://support.…
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
emailTypestring–The program email template to trigger. Send the camelCase key; the available types depend on the program type. The template's `isEnabled` setting controls automatic sends only, so this tool can trigg…
participantEmailstring––
participantIdstring––
preheaderstring––
subjectstring–Free-form subject. Supports dynamic text (`{{...}}` tokens), the same as the body.
NameTypeReqDescription
statusstring–The email was accepted for delivery.
successboolean–Whether the email request was accepted.

No examples provided.

growsurf_embeddable_element_snippet ~100

Generate one embeddable element's HTML as Markdown. Choose `element`; optionally include participant authentication attributes. Does not install the element or change a program. Use `growsurf_client_snippets` for a broader browser integration or `growsurf_grsf_config_snippet` for page-level participant auto authentication.

NameTypeReqDescription
elementstringyes–
participantobject––
withAuthAttributesboolean––
NameTypeReqDescription
markdownstring–The generated guidance as a markdown document.

No examples provided.

growsurf_get_campaign ~111

Fetch your GrowSurf campaign (program) details via REST. Embedded reward settings do not establish that an individual reward was earned, approved, or delivered. Earned reward records belong to the individual participant. Targets `campaignId` if supplied, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
NameTypeReqDescription
currencyISOstring|null–The program currency as an ISO 4217 code (e.g. `USD`).
idstring–The program's unique id.
impressionCountinteger–Total referral-link views across participants.
inviteCountinteger–Total invites sent by participants.
namestring–The program name (internal only, never shown to participants).
participantCountinteger–Total participants.
referralCountinteger–Total referrals.
rewardEvidenceobject–What this response establishes about rewards. Combine with other reads; unknown here does not override evidence elsewhere.
rewardsarray–The program's reward configs (`CampaignReward`). Item shape is documented on the `growsurf_list_campaign_rewards` tool.
statusstring–The program status.
typestring–The program type.
winnerCountinteger–Participants with at least one approved reward.

No examples provided.

growsurf_get_campaign_activation_analytics ~320

Fetch strict activation for eligible participants in one enrollment cohort. Referral programs group by `enrolledAsAdvocateAt`; affiliate programs group by `approvedAsAffiliateAt`. The ordered stages are `ELIGIBLE`, `PORTAL_VIEWED`, `SHARE_ACTION`, `UNIQUE_REFERRAL_VISIT`, `LEAD`, and `CREDITED_REFERRAL`. Each participant gets the selected 7- or 30-day observation window. Omit both cohort bounds for the latest fully matured cohort. Read `coverageStartAt`, `state`, and `reason` before interpreting a null or zero; unavailable history does not mean an action never happened. Targets `campaignId` if passed, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
cohortFrominteger–Inclusive eligibility-cohort start, Unix timestamp in ms. Use with `cohortTo`.
cohortIntervalstring–Bucket size for `cohorts`. Defaults to `day`.
cohortTointeger–Exclusive eligibility-cohort end, Unix timestamp in ms. Must be greater than `cohortFrom`.
observationWindowDaysinteger–Days after eligibility in which stages can count. Defaults to `30`.
timezonestring–IANA timezone used to advance cohort boundaries. Defaults to `UTC`.
NameTypeReqDescription
aggregateobject–Strict activation metrics for one exact enrollment cohort.
cohortIntervalstring–Bucket size for `cohorts`.
cohortsarray–Selected range split into exact half-open eligibility-cohort buckets.
coverageStartAtinteger|null–Earliest expected complete activation capture time (Unix ms), or `null` until coverage begins.
metricContractVersioninteger–Shared activation and engagement metric version.
observationWindowDaysinteger–Days after eligibility in which stages count.
portalViewedHelperTextstring–Display definition for a qualifying signed-in portal view.
portalViewedLabelstring–Program-specific display label for the stable `PORTAL_VIEWED` stage.
programTypestring–Program eligibility model.
timezonestring–IANA timezone used to advance cohort boundaries.

No examples provided.

growsurf_get_campaign_analytics ~468

Fetch analytics for your GrowSurf program: participants, referrals, impressions, per-channel shares, and affiliate revenue, commission, and payout metrics when applicable. Pass `interval` (`day`, `week`, or `month`) for a per-period `series`. Pass comma-separated `include` values for `previousPeriod`, `statusCounts`, `rates`, `email`, or `engagement`. `engagement` groups unique active, sharing, repeat, and retained participants by when portal views and share actions occurred. Its `coverageStartAt`, `state`, and `reason` distinguish measured zeroes from partial or unavailable history. Scope the timeframe with `days` (default 365, max 1825) or an explicit `startDate`/`endDate` window. Explicit dates must both be positive Unix timestamps in milliseconds, with `endDate` >= `startDate` and a maximum span of 1825 days. `timezone` and `platform` apply to engagement only. Targets `campaignId` if passed, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
daysinteger––
endDateinteger–End of the timeframe, positive Unix timestamp in milliseconds. Supply `startDate` too; `endDate` must be >= `startDate` and at most 1825 days later.
includestring–Comma-separated optional data: `previousPeriod`, `statusCounts`, `rates`, `email`, and `engagement`. Combine values when the question needs more than one view.
intervalstring–day/week/month adds a per-period `series`; total (default) returns totals only.
platformstring–Client-platform filter for engagement. Defaults to `ALL`.
startDateinteger–Start of the timeframe, positive Unix timestamp in milliseconds. Supply `endDate` too; the window must span at most 1825 days.
timezonestring–IANA timezone for engagement interval and distinct-day calculations. Used with `include=engagement`.
NameTypeReqDescription
analyticsobject–Analytics totals: `invites`, `impressions`, `uniqueImpressions`, `participants`, `referrals`, `referralCreditPendings`, `referralCreditExpireds`, per-channel share counts (`emailShares`, `twitterShar…
emailobject–Sent, delivered, opened, clicked, bounced, and spam complaint metrics for program emails in the requested window.
endDateinteger–End of the analytics timeframe, as a Unix timestamp in milliseconds.
engagementobject–Opt-in participant engagement grouped by when activity occurred.
previousPeriodobject–Totals for the equal-length window immediately before the requested one (`analytics`, `startDate`, `endDate`). Present only when `include` contains `previousPeriod`.
ratesobject–Derived referral rates, each a ratio from 0 to 1. Present only when `include` contains `rates`.
seriesarray–Per-period totals in ascending order. Present only when `interval` is `day`, `week`, or `month`.
startDateinteger–Start of the analytics timeframe, as a Unix timestamp in milliseconds.
statusCountsobject–Status-count breakdowns: dashboard-aligned reward counts, and for affiliate programs `affiliateStatus`, `commissionStatus`, and `payoutStatus` (counts and amounts in minor currency units (e.g. cents)…

No examples provided.

growsurf_get_campaign_custom_domain ~156

Fetch the custom domain that serves your GrowSurf program's landing pages, such as `https://refer.example.com`. Returns `domain` (`null` when none is set), `isVerified`, `verifiedAt`, and `dnsRecord`, the `CNAME` record to add at the DNS provider. This read does not check DNS; use `growsurf_verify_campaign_custom_domain` for a live check. Targets `campaignId` if supplied, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
NameTypeReqDescription
createdAtinteger|null–When the domain was set, in epoch milliseconds. `null` when no domain is set.
dnsRecordobject|null–The DNS record to add at the DNS provider. `null` when no domain is set.
domainstring|null–The custom domain, such as `https://refer.example.com`, or `null` when none is set.
isVerifiedboolean–Whether the domain's `CNAME` record pointed to `dnsRecord.value` at the last check. Landing pages load on the domain only when this is `true`.
updatedAtinteger|null–When the domain record last changed, in epoch milliseconds. `null` when no domain is set.
verifiedAtinteger|null–When the DNS check passed, in epoch milliseconds. `null` while unverified.

No examples provided.

growsurf_get_campaign_design ~332

Fetch the configured design fields for your GrowSurf program, including GrowSurf Window content, colors, sharing sections, participant avatars under `participantAvatarStyle`, referred-visitor content such as the Claim Offer Popup, the website widget under `widget`, the participant Traffic report under `trafficInsights` (it starts on for new affiliate programs and hidden for referral programs, and every setting is returned with its default copy), participant sign-in copy under `login`, payout-destination confirmation page copy under `payoutDestinationConfirmation`, country-name overrides under `countryLabels`, and the participant Settings panel under `participantSettings` (its `languageSectionTitle` and `languageSectionInstructionsText` label the language picker shown when the program has more than one language). `participantAvatarStyle` is `CHARACTERS`, `INITIALS`, `ANIMALS`, or `GRADIENT`; missing or unknown values mean `INITIALS`. `visualStyle` is the program Style (`GLOW`, `CLEAN`, `FLAT`, `ROUND`, `TINT`, or `GLASS`) and is omitted when the program has no saved Style. The confirmation section is omitted when no confirmation fields are stored. Stored `null` fields are returned as `null`; omitted and `null` fields use localized defaults. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
NameTypeReqDescription
affiliateSummaryobject–Affiliate programs only. The affiliate's row of summary tiles (clicks, revenue, payouts).
commissionsobject–Affiliate programs only. The Commissions section of the participant portal.
countryLabelsobject–Participant-facing country-name overrides keyed by ISO 3166-1 alpha-2 code (for example `GB`). Each label replaces the default country name wherever participants pick a country, such as payout and ta…
headerobject–Header content for participants (`postText`) and non-participants (`preText`), and the progress labels beside a participant's numbers: `referralsMadeText` (up to 100 characters, shown for single-side…
landingPagesobject–Portal and landing pages: company info, `content`, `styles`, third-party script ids, and SEO meta tags. `content.howItWorksTitle` is the plain-text heading above the How it works steps (up to 255 cha…
leaderboardobject–The leaderboard section: labels, selectors, and name masking.
loginobject–The returning-participant sign-in form plus its success, resend, validation, and error text.
participantAvatarStylestring–How participant avatars appear in the GrowSurf Window. New programs start with `INITIALS`. Programs with a missing or unknown stored value return `INITIALS` for backward compatibility.
participantSettingsobject–The participant's account settings area (logout, language picker, PayPal and Wise payout confirmation/status messages, tax details). `languageSectionTitle` (up to 100 characters) and `languageSection…
payoutDestinationConfirmationobject–Customizable text for the payout-destination confirmation page opened from payout integration cards. One shared set applies to every enabled payout provider. Provider-aware text may use `{{payoutProv…
payoutsobject–Affiliate programs only. The Payouts section of the participant portal.
referralStatusobject–The section listing who a participant invited and each invite's progress. `revealInviteEmails` lets a signed-in participant see original invitation addresses when disclosure permission was recorded.…
referralSummaryobject–Referral programs only. The participant's row of summary tiles (clicks, leads, referrals, rewards). `stats.rewardsEarned.displayMode` selects `COUNT` (approved reward count) or `AMOUNT` (total of the…
referredExperienceobject–The banner, headline, and Claim Offer Popup shown to a visitor who arrives through a referral link. The popup is available for referral and affiliate programs.
resourcesobject–Participant Resources presentation settings: visibility, title, link and copy labels, the message shown when nothing is published, the section icon, and `emptyStateGraphic` (`type`: `DEFAULT`, `IMAGE…
rewardsobject–Heading, icon, and empty-state text of the rewards panel.
shareobject–Share channels, invite settings, and share-button styling.
signupobject–Signup form fields, GDPR consent, and button and login text.
statsobject–The participant's referral-progress stats panel. Only `title` is editable.
themeobject–Visual theme styling (colors, shadows, and similar).
trafficInsightsobject–The Traffic report participants can open from the GrowSurf window: visits to their share link over time and where those visits came from. It starts on for new affiliate programs and hidden for referr…
visualStylestring–The program Style. It sets corners, shadows, button shape and background on program pages and the GrowSurf Window. New referral programs start with `GLOW`, and new affiliate programs start with `CLEA…
widgetobject–The website widget — the invite that sits in a corner of the customer's own site. It renders as a button or as a card, and its card folds back into the button when a visitor closes it. Both audience…
windowobject–Layout of the GrowSurf window (`navigationMode`: `TABS` or `LIST`).

No examples provided.

growsurf_get_campaign_emails ~143

Fetch the Emails tab configuration for your GrowSurf program, including participant and admin email templates, settings, and read-only fields. `settings.sender.fromEmail` is read-only and can be changed in the dashboard after domain verification. When updating, omit unchanged sender fields; `fromName` and `replyToEmail` cannot be cleared with `null`. Targets `campaignId` if supplied, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
NameTypeReqDescription
affiliateApplicationApprovedobject–Tells an applicant their affiliate application was approved. Affiliate programs only. Transactional; its toggle cannot be changed.
affiliateApplicationDeniedobject–Tells an applicant their affiliate application was not approved. Affiliate programs only. Transactional; its toggle cannot be changed.
affiliateApplicationEmailCorrectionobject–Asks an applicant to confirm a corrected email address. Its body must contain `{{identityVerificationLink}}`. Affiliate programs only. Transactional; its toggle cannot be changed.
affiliateApplicationReceivedobject–Confirms an affiliate application was received and is under review. Affiliate programs only. Transactional; its toggle cannot be changed.
affiliateApplicationStatusLinkobject–Sends an applicant a secure link to view their application status. Its body must keep `{{applicationStatusLink}}`. Affiliate programs only. Transactional; its toggle cannot be changed.
affiliateEmailChangeVerificationobject–Asks an affiliate to confirm a new account email address. Its body must contain `{{identityVerificationLink}}`. Affiliate programs only. Transactional; its toggle cannot be changed.
campaignEndedNonWinnersobject–Sent to non-winners when the program ends. Referral programs only.
campaignEndedWinnersobject–Sent to reward winners when the program ends. Referral programs only.
commissionAdjustedobject–Sent when a commission is adjusted after a refund or chargeback. Affiliate programs only.
commissionGeneratedobject–Sent to an affiliate when they earn a new commission. Affiliate programs only.
followUpReminderobject–Optional reminder to the referrer about directly invited contacts who have not signed up after `delayDays` (integer 2–30, default 3). Existing reminder dates stay unchanged. Disabled by default. Only…
goalAchievedobject–Sent when a participant unlocks a reward. Referral programs only.
inviteobject–The invitation email a participant sends to friends. `useCompanyReplyTo` sets who receives replies.
inviteAffiliateobject–Invites a prospective affiliate to join the program. Its body must keep `{{affiliateInviteLink}}`. Affiliate programs only. Promotional; its toggle can be changed.
loginLinkobject–One-time sign-in link for returning participants. Transactional; its toggle cannot be changed.
offerClaimedobject–Sent when a referred visitor saves an offer through the Claim Offer Popup. Referral and affiliate programs. Promotional; its toggle can be changed.
payoutDestinationChangedobject–Tells a participant their payout destination changed. Its body must keep `{{payoutDestinationMaskedEmail}}`. Referral and affiliate programs. Transactional; its toggle cannot be changed.
payoutDestinationConfirmationobject–Asks a participant to confirm the payout destination where they will receive payouts, such as a PayPal or Wise email address. Its body may use `{{payoutProvider}}` and must keep `{{payoutDestinationC…
payoutPendingobject–Sent when a payout is on the way. Affiliate programs only.
payoutSentSuccessobject–Sent when a payout completes. Affiliate programs only.
progressUpdateMonthlyobject–Month-end progress recap for participants. Referral and affiliate programs.
referralLinkUsedobject–Sent to a referrer when they earn referral credit. Referral programs only.
referralLinkViewedFirstTimeobject–Sent the first time a participant's referral link is viewed. Referral and affiliate programs.
referredSignupobject–Sent to a referrer each time someone signs up using their link. Referral and affiliate programs.
settingsobject–Sender (`sender`), physical contact address (`contact`), and shared design (`design`) settings. The design object includes `unsubscribeAffiliateInvite` for direct affiliate invitation emails. Its rea…
taxInfoApprovedobject–Tells a participant their tax form is complete and approved. Transactional; its toggle cannot be changed.
taxInfoMissingobject–Asks a participant to submit required tax information. Transactional; its toggle cannot be changed.
taxInfoReceivedobject–Confirms submitted tax information was received. Transactional; its toggle cannot be changed.
taxInfoRejectedobject–Tells a participant their tax information needs to be resubmitted. Transactional; its toggle cannot be changed.
welcomeNonReferredobject–Welcome email for a participant who joins without being referred. Referral and affiliate programs.
welcomeReferredobject–Welcome email for someone who signs up through a referral link. Referral programs only.

No examples provided.

growsurf_get_campaign_installation ~113

Fetch the Installation tab configuration for your GrowSurf program (embed/installation and tracking setup). Returns the full object with every field and its current value — the same shape you send back on update. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
NameTypeReqDescription
allowedUrlsarray–Every additional browser origin where the GrowSurf Window or SDK may run, including development origins such as `http://localhost:3000`. Preserve the full array when patching it. An origin absent fro…
instructionSelectionsobject–Saved choices shown in the Program Editor installation guide.
mobileobject–GrowSurf iOS and Android SDK settings.
offerPageRedirectSecondsinteger|null–Seconds a GrowSurf page with the Claim Offer Popup waits before redirecting a referred friend. Needs `useGrowSurfHostedLinks`. `null` means the page is off.
referralTriggerstring–Referral programs only. `ON_SIGNUP` counts a referral as soon as the friend signs up; `CUSTOM` also requires a qualifying action. `CUSTOM` is available for programs installed on a website or a GrowSu…
shareUrlstring–The landing page referred friends reach from a referral link. Set this before adding other origins to `allowedUrls`.
signupobject–Custom signup-form settings (used with `FORM_DETECTION`).
signupEventstring–The signup tracking method: automatic form detection, or participants added via the SDKs and REST API.
useGrowSurfHostedLinksboolean–Use GrowSurf-hosted referral links that route clicks by the visitor's device. Mainly for mobile apps.

No examples provided.

growsurf_get_campaign_options ~161

Fetch the Options tab configuration for your GrowSurf program (referral triggers, anti-fraud lists and toggles, affiliate enrollment and application review, notifications, the program's languages under `languages`, and other behavior options). Returns the full object with every field and its current value, the same shape you send back on update. `autoFulfillRewards: false` permits manual fulfillment and does not prove that any reward went undelivered. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
NameTypeReqDescription
affiliateApplicationModestring–Affiliate programs only. How public signups join the program. `OPEN_ENROLLMENT` enrolls them directly; `MANUAL_REVIEW` collects an application you approve or deny; `AUTO_APPROVE` collects the applica…
affiliateApplicationReviewEstimateBusinessDaysinteger|null–Affiliate programs only. Optional review-time expectation shown to pending applicants, in business days (1-60). `null` clears it.
affiliateReapplicationCooldownDaysinteger–Affiliate programs only. How many days a denied applicant waits before they can apply again (1-365, default 30). Only used when `affiliateReapplicationPolicy` is `AFTER_COOLDOWN`.
affiliateReapplicationPolicystring–Affiliate programs only. Whether a denied applicant may apply again. `AFTER_COOLDOWN` (the default) allows a new application once `affiliateReapplicationCooldownDays` has passed; `DISABLED` never all…
attributionModelstring–Selects which server-verified visit receives conversion credit within `referralCookieWindowDays`. `LAST_CLICK` is used when this field is missing, including for programs created before attribution mo…
autoBlockFraudboolean–Automatically block signups flagged as high fraud risk.
autoFulfillRewardsboolean–Referral programs only. Automatically mark earned rewards as fulfilled. `false` permits manual fulfillment and does not establish a delivery failure.
blockPaidAdsTrafficboolean–Do not attribute referrals from visitors who arrived through paid ads.
enforceGdprComplianceboolean–Store only the minimum participant data (no IP addresses, fingerprints, or mobile instance ids).
fraudobject–Anti-fraud settings: `blockedEmails`/`blockedIps`/`blockedCountries` and matching allow lists, `blockBurnerEmails`, `blockDataCenterIps`, `blockHighRiskReferrers`, `autoBlockHighRiskIps`, per-IP sign…
languagesobject–The languages the program runs in. Participants see the portal and program emails in their language. Translations are managed in the dashboard.
notificationEmailsobject–Owner notification settings: `recipients` plus per-event `events` toggles.
payoutThresholdinteger|null–Affiliate programs only. Minimum payout in minor currency units (e.g. cents). `0` or `null` means no minimum.
referralCookieWindowDaysinteger–How long a referral-link click is remembered in the visitor's browser, in days.
referralCreditWindowDaysinteger|null–How long a referred friend has to complete the qualifying action, in days. `null` means the credit never expires.
requireManualFraudApprovalboolean–Flag suspected fraud for review instead of blocking signups automatically.
requireManualRewardApprovalboolean–Referral programs only. Hold each earned reward for manual approval before it unlocks.
requireParticipantAuthboolean–Require returning participants to authenticate. Affiliate programs require `true`.
rewardEvidenceobject–What this response establishes about rewards. Combine with other reads; unknown here does not override evidence elsewhere.
taxDocumentationobject–Affiliate programs only. Company billing details (name, address, VAT number) used on affiliate payout invoices and for VAT handling.

No examples provided.

growsurf_get_integration_connect_link ~266

Return a dashboard link to an integration's connect panel in the GrowSurf Program Editor (Options > Integrations). Connecting Stripe, PayPal, Wise, or another account requires the user to complete the dashboard flow; the API cannot connect an account on their behalf. `integration` accepts supported keys, including camelCase keys such as `constantContact` and `helpScout`. The result reports whether the integration is `connected`, `enabled`, or `autoDisabled`. If the program check cannot run, `programVerified` is `false` and the result still includes a production dashboard link. Tango Card, Tremendous, Bask Health, CareValidate, MD Integrations, Lithos, and Telegra apply only to referral programs. Wise applies only to affiliate programs. Targets `campaignId` if supplied, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstring–Target program for the link. Defaults to GROWSURF_CAMPAIGN_ID.
integrationstringyesThe integration to connect. Must exactly match one of the supported keys (for example `wisecom`; some are camelCase, e.g. `constantContact`, `campaignMonitor`, `helpScout`, `pabblyConnect`, `baskHeal…
NameTypeReqDescription
affiliateOnlyboolean–`true` when the integration applies to affiliate programs only.
autoDisabledboolean–Whether GrowSurf switched the integration off after repeated delivery failures. Present only when `programVerified` is `true`.
categorystring–The integration's category.
connectedboolean–Whether the program has stored credentials for this integration. Present only when `programVerified` is `true`.
enabledboolean–Whether the integration is switched on and currently working. Present only when `programVerified` is `true`.
integrationstring–The integration key that was requested.
labelstring–Human-readable integration name.
notestring–Instructions to relay to the user.
programVerifiedboolean–`true` when the program's live integration list was read, so the program id is confirmed and the three state fields below are present and current. `false` when that read was unavailable, for example…
referralOnlyboolean–`true` when the integration applies to referral programs only.
urlstring–Dashboard link that opens the integration's connect panel.

No examples provided.

growsurf_get_participant ~170

Fetch a single participant by GrowSurf participant ID or email address. `referralStatus` describes credit to their referrer; `referralCount` counts referrals this participant generated, so zero is consistent with `CREDIT_AWARDED`. In `rewards`, `approved` records approval; `status`, `isFulfilled`, and `fulfilledAt` record fulfillment marking, not confirmation of delivery. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
participantEmailstring––
participantIdstring––
NameTypeReqDescription
affiliateEnrollmentSourcestring|null–Affiliate programs only. How the affiliate enrolled (`OPEN_ENROLLMENT`, `APPLICATION`, `PARTICIPANT_AUTH`, `INVITE`, `REST_API`, `CSV`, or `DASHBOARD`). `null` when not recorded.
affiliateStatusstring|null–Affiliate programs only. The enrolled affiliate's status (`APPROVED`, `SUSPENDED`, or `BANNED`). `null` for participants who are not affiliates.
allMatchingFraudstersarray–Other participants flagged as matching this participant during anti-fraud checks.
createdAtinteger–When the participant joined, as a Unix timestamp in milliseconds.
emailstring–The participant's email address.
fingerprintstring|null–Browser identifier recorded for the participant, or `null`.
firstNamestring|null–The participant's first name.
fraudReasonCodestring–Reason code behind `fraudRiskLevel` (e.g. `UNIQUE_IDENTITY`, `DUPLICATE_EMAIL`, `MANUAL_UPDATE`).
fraudRiskLevelstring–The participant's fraud risk level.
idstring–The participant's unique id.
impressionCountinteger–Total views of the participant's referral link.
inviteCountinteger–Invites sent by the participant.
ipAddressstring|null–IP address recorded for the participant, or `null`.
isAffiliateboolean–Affiliate programs only. Whether this participant is an enrolled affiliate. A referred customer who has not joined the program is `false`.
isNewboolean–`true` when the request created the participant. Returned by participant creation calls.
isWinnerboolean–`true` once the participant has earned at least one reward.
languagestring–The language code of the participant's portal and program emails, such as `es`. The program's base language unless the participant (or you) picked another of the program's languages.
lastNamestring|null–The participant's last name.
leadCountinteger–Pending referrals that have not converted yet.
metadataobject–Custom key/value metadata (single level).
mobileInstanceIdstring|null–App-install scoped identifier supplied by a native app, or `null`.
monthlyRankinteger–Current-month leaderboard rank (resets monthly).
monthlyReferralCountinteger–Referrals credited this month (resets monthly).
monthlyReferralsarray–Ids of participants they successfully referred this month (100 most recent).
notesstring|null–Internal notes. Never shown to participants.
payoutSettingsobject–Actions the participant must complete before a payout can be released. Always present.
paypalEmailAddressstring–PayPal email address on file, used for affiliate or PayPal reward payouts.
prevMonthlyRankinteger–Previous-month leaderboard rank.
prevMonthlyReferralCountinteger–Referrals credited the previous month.
rankinteger–All-time leaderboard rank.
referralCountinteger–All-time referrals credited to the participant.
referralLeadQualifiedAtinteger|null–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.
referralSourcestring–How the participant joined the program. `DIRECT` means without a referrer, `PARTICIPANT` means through a participant referral, `IMPORT` means through a CSV import, `MANUAL` means through the dashboar…
referralStatusstring–The referrer's credit status for this participant. Present only when the participant was referred.
referralsarray–Ids of participants they successfully referred (100 most recent).
referredBystring–Id of the referrer. Present only when the participant was referred.
referrerobject|null–The participant's referrer. It has the same fields as a participant, and its own `referrer` is always `null`. Present only when the participant was referred.
rewardEvidenceobject–What this response establishes about rewards. Combine with other reads; unknown here does not override evidence elsewhere.
rewardsarray–Rewards the participant has earned.
shareCountobject–Share counts keyed by channel (e.g. `email`, `facebook`, `twitter`, `copyRefLink`, `iosNativeShare`).
shareUrlstring–The participant's unique referral link. Omitted for affiliate program participants who are not approved affiliates.
uniqueImpressionCountinteger–Unique views of the participant's referral link.
unreadCommissionsCountinteger–Commissions the participant has not yet viewed. Affiliate programs only.
unreadPayoutsCountinteger–Payouts the participant has not yet viewed. Affiliate programs only.
unsubscribedboolean–`true` if the participant unsubscribed from program emails.
vanityKeysarray–The participant's vanity keys.

No examples provided.

growsurf_get_participant_activity_logs ~169

List a participant's activity logs (by GrowSurf participant ID or email), most recent first, offset/limit paginated. `limit` is 1-100 (default 20); `offset` skips logs. The response `offset` is the cursor for the next page (null when there are no more). Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
limitinteger––
offsetinteger––
participantEmailstring––
participantIdstring––
NameTypeReqDescription
activityLogsarray–Activity log entries for the participant.
limitinteger–Number of activity logs returned per page.
offsetinteger|null–Offset for the next page, or `null` when there are no more logs.

No examples provided.

growsurf_get_participant_analytics ~445

Fetch analytics for one participant by GrowSurf participant ID or email. The base response includes all-time engagement, rank, share, and applicable affiliate revenue, commission, and payout metrics. Add `activation` to `include` for the program-specific eligibility anchor and covered first milestones, including `firstPortalViewedAt` and `firstShareChannel`. A null milestone with a partial or unavailable `state` is unknown, not proof that the action never happened. Request both `activation` and `series` for covered `portalViews` and `shareActions` buckets. Filter optional series and email data with `days` (up to 1825) or both `startDate` and `endDate` as positive Unix timestamps in milliseconds. `endDate` must be at or after `startDate`, and the range can span at most 1825 days. These date parameters do not filter the base response or activation milestones. Targets `campaignId` if passed, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
daysinteger–Number of days for optional `series` and `email` analytics. Does not filter the all-time base response.
endDateinteger–End of the optional-data timeframe, positive Unix timestamp in milliseconds. Supply `startDate` too; `endDate` must be >= `startDate` and at most 1825 days later.
includestring–Comma-separated optional data. Current values are `series`, `email`, and `activation`; the API returns `400` for unknown values.
intervalstring–Bucket size for `series` and email series. Defaults to `day`.
participantEmailstring––
participantIdstring––
startDateinteger–Start of the optional-data timeframe, positive Unix timestamp in milliseconds. Supply `endDate` too; the window must span at most 1825 days.
NameTypeReqDescription
activationobject–Opt-in covered eligibility and first-milestone analytics for one participant.
analyticsobject–All-time participant analytics totals. Date-window parameters do not filter these fields.
emailobject–Sent, delivered, opened, clicked, bounced, and spam complaint metrics for program emails in the requested window.
endDateinteger–Window end (Unix ms). Present with `series` or `email`.
ranksobject–Leaderboard ranks for this participant.
seriesarray–This participant's per-period activity. Present when `include` contains `series`.
shareCountobject–Per-channel share counts (e.g. `email`, `facebook`, `twitter`).
startDateinteger–Window start (Unix ms). Present with `series` or `email`.

No examples provided.

growsurf_get_participant_payout_destination ~184

Get a participant's payout-destination status (by GrowSurf participant ID or email) across every payout provider enabled for the program (PayPal, Venmo, or Wise). For each provider it reports the current `status`, the confirmed payout email, the legal recipient type, and — when a delivery bounced or a recipient was invalidated — the repair reason. `activeProvider` is the provider that currently gets paid, or null until the participant confirms one. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
participantEmailstring––
participantIdstring––
NameTypeReqDescription
activeProviderstring|null–The payout provider currently selected, or `null` until the participant confirms one. Provider identifiers are open-ended; current examples include `PAYPAL`, `VENMO`, and `WISECOM`.
destinationsarray–One entry per enabled payout provider describing the participant's destination for it.
enabledProvidersarray–Payout provider identifiers enabled for this program. Values are open-ended; current examples include `PAYPAL`, `VENMO`, and `WISECOM`.

No examples provided.

growsurf_get_team ~80

Fetch the team bound to the API key or OAuth connection. `verificationStatus` is `VERIFIED` once GrowSurf has verified the team, which is required before a program can email participants. Personal profiles and internal identifiers are not returned. Requires `GROWSURF_API_KEY`; does not require `GROWSURF_CAMPAIGN_ID`.

Input schema present but exposes no named parameters.

NameTypeReqDescription
namestring–The team's display name.
verificationRequestedAtinteger|null–When verification was last requested, as a Unix timestamp in milliseconds.
verificationStatusstring–Team verification state. `VERIFIED` is required before a program can send participant emails.

No examples provided.

growsurf_grsf_config_snippet ~107

Generate the HTML code for GrowSurf Participant Auto Authentication using `window.grsfConfig`. The generated code belongs in `<head>`, before the GrowSurf Universal Code.

NameTypeReqDescription
affiliateJoinboolean––
campaignIdstring––
emailstring––
enableParticipantAutoAuthboolean––
hashstring––
includeAutoAuthCommentHeaderboolean––
useCampaignIdPlaceholderboolean––
NameTypeReqDescription
markdownstring–The generated guidance as a markdown document.

No examples provided.

growsurf_integration_guide ~155

Plan a web integration for a referral or affiliate program. Returns Markdown steps for installing the Universal Code, identifying participants, tracking referrals or sales, and verifying webhooks. Does not inspect or change a program. Use `growsurf_client_snippets` for browser JavaScript examples, `growsurf_api_library_snippets` for backend code, or `growsurf_mobile_sdk_guide` for native or React Native apps.

NameTypeReqDescription
participantAuthEnabledboolean––
programTypestring––
referralTriggerstring––
singlePageAppboolean––
webhookSecuritystring–Always recommends signature verification. Legacy values are accepted for compatibility and cannot disable verification.
NameTypeReqDescription
markdownstring–The generated guidance as a markdown document.

No examples provided.

growsurf_list_campaign_rewards ~144

List your GrowSurf program's configured Campaign Rewards, including switched-off rewards and rewards whose group is not selected. Deleted rewards are excluded. A reward can be earned only when it also appears in the campaign response's embedded `rewards` array. These settings do not establish that a participant earned or received a reward; earned reward records belong to the individual participant. Targets `campaignId` if supplied, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
NameTypeReqDescription
rewardEvidenceobject–What this response establishes about rewards. Combine with other reads; unknown here does not override evidence elsewhere.
rewardsarray–The program's configured Campaign Rewards, including switched-off rewards. Deleted rewards are excluded.

No examples provided.

growsurf_list_campaign_webhooks ~89

List your GrowSurf program's webhooks (secrets are never returned). Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringyesTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Program IDs also identify newly created programs without restarting the server.
NameTypeReqDescription
webhooksarray–Webhooks configured for the program.

No examples provided.

Install

How do I install the GrowSurf MCP server?

GrowSurf runs locally as an npm package, launched with npx -y @growsurfteam/growsurf-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @growsurfteam/growsurf-mcp

# add to Claude Code
claude mcp add com-growsurf-growsurf -- npx -y @growsurfteam/growsurf-mcp
Common questions

What is the GrowSurf MCP server?

GrowSurf is an MCP server listed in the public MCP registry as com.growsurf/growsurf. Build and manage GrowSurf referral and affiliate programs through AI assistants. This page covers its npm package (@growsurfteam/growsurf-mcp).

Is the GrowSurf MCP server safe to use?

GrowSurf scores 87 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the GrowSurf MCP server expose?

GrowSurf exposes 66 tools: growsurf_integration_guide, growsurf_agent_program_creation_eval, growsurf_program_design_advisor, growsurf_troubleshoot_referral_tracking, growsurf_mobile_sdk_guide, and 61 more. Their descriptions and schemas cost roughly 16,792 tokens of context every time the server is loaded.

Is the GrowSurf MCP server still maintained?

GrowSurf is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the GrowSurf MCP server under?

GrowSurf declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.