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 · SCANNED SEP 20

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

+4 this week 90 Trust /100
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
  • 31 of 97 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 2 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability70
  • 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 15055 tokens (~235/item across 64 items; 63 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 Management87
  • Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage82
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 37% 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
  • 7 of 8 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 65 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
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
// .cursor/mcp.json
{
  "mcpServers": {
    "com-growsurf-growsurf": {
      "command": "npx",
      "args": [
        "-y",
        "@growsurfteam/growsurf-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-growsurf-growsurf": {
      "command": "npx",
      "args": [
        "-y",
        "@growsurfteam/growsurf-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add com-growsurf-growsurf -- npx -y @growsurfteam/growsurf-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-growsurf-growsurf": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@growsurfteam/growsurf-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-growsurf-growsurf --command npx --arg -y --arg @growsurfteam/growsurf-mcp
# ~/.hermes/config.yaml
mcp_servers:
  com-growsurf-growsurf:
    command: "npx"
    args: ["-y", "@growsurfteam/growsurf-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-growsurf-growsurf": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@growsurfteam/growsurf-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add com-growsurf-growsurf -t stdio -c npx -a -y @growsurfteam/growsurf-mcp
// mcp.json
{
  "mcpServers": {
    "com-growsurf-growsurf": {
      "command": "npx",
      "args": [
        "-y",
        "@growsurfteam/growsurf-mcp"
      ]
    }
  }
}
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.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 +1
    • Tool safety: pass → unverified security
    • Stability: 0.73 → unverified security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Package version: 0.15.1 → 0.16.0 functional
  • 15 Sept 26 +16
    • Malware scan: unverified → pass security
  • 14 Sept 26 −14
    • Malware scan: pass → unverified security
    • Known CVEs: pass → unverified security
    • Tool safety: pass → unverified security
    • Stability: 0.63 → unverified security
    • Schema quality: 182 → 233 functional
    • Schema quality: 100 → unverified functional
    • Capabilities: pass → unverified functional
    • Dependency health: 0.84 → unverified functional
    • Tool coverage: 100 → unverified functional
    • Tool coverage: 26% → 37% functional
    • Package version: 0.12.2 → 0.15.1 functional
    • Package version: 0.12.2 → 0.15.0 functional
  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 8 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 6 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

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 20 Sept 2026 · Analysed npm/@growsurfteam/growsurf-mcp@0.16.0

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 2879038350
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:86ff035edaff67263b9a2bcfd63894e1ca58fe1cabdfefd683d6ccc4d376c60e53416b88f79bf5cc0477783f1bd187aada2539292cc58c9a9ceb01781

Background: How many MCP packages publish verified provenance →

Dependencies 97 packages
Packages resolved 97
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 63 exposed · ~14,397 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 ~327

Add or fetch a participant by email. Existing participants are returned unchanged. This is trusted direct enrollment; do not use it for a public application when the program requires affiliate review. 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
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
emailstringyes
fingerprintstring
firstNamestring
ipAddressstring
isAffiliatebooleanAffiliate programs only. Controls affiliate enrollment for a new participant. `true` enrolls the participant with `affiliateStatus: APPROVED`; `false` creates a non-affiliate without `affiliateStatus…
lastNamestring
metadataobject
mobileInstanceIdstring
referralStatusstring
referredBystring

Structured output declared, but exposes no named fields.

No examples provided.

growsurf_agent_program_creation_eval ~63

Generate one-shot GrowSurf program-creation eval prompts and acceptance checks for agent steering: starter content review, conservative rewards, configuration review, and frontend install proof.

NameTypeReqDescription
includeOneShotPromptsboolean
programTypestring
NameTypeReqDescription
markdownstringThe generated guidance as a markdown document.

No examples provided.

growsurf_api_library_snippets ~84

Generate official REST API library snippets for TypeScript, Python, PHP, Ruby, and Java, including Create Mobile Participant Token.

NameTypeReqDescription
campaignIdstring
emailstring
languagestring
participantIdOrEmailstring
referredBystring
workflowstring
NameTypeReqDescription
markdownstringThe generated guidance as a markdown document.

No examples provided.

growsurf_bulk_delete_participants ~321

Bulk delete participants from your GrowSurf program in one request. DESTRUCTIVE: deletion is permanent, cannot be undone, and removes the participants' referrals, rewards, commissions, and payout records. 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, so check the summary. A `202` response includes `analyticsErasure` when analytics erasure is pending. `DELETED` means participant cleanup completed; reports can retain the participant until analytics erasure completes. Do not repeat successful rows to finish analytics erasure. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
participantsarrayyesGrowSurf participant IDs and/or email addresses to delete (1-200 entries; mixed lists allowed).
NameTypeReqDescription
analyticsErasureobjectAnalytics erasure is pending. Reports can retain removed participants until erasure completes. Do not repeat successful deletions.
resultsarrayOne entry per submitted identifier, in request order.
summaryobjectCounts across all submitted entries.

No examples provided.

growsurf_cancel_delayed_referral ~134

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
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
participantEmailstring
participantIdstring
NameTypeReqDescription
messagestringHuman-readable result message. Present when credit was not awarded immediately.
successbooleanWhether referral credit was awarded, scheduled, or cancelled.

No examples provided.

growsurf_capture_referral_flow_screenshots ~160

Capture temporary GrowSurf preview screenshots after the user explicitly asks for screenshots or screenshot proof. Returns short-lived URLs for the controlled referrer Window and referred-friend experience for this program. This does not prove the user's installed site; use browser automation for that. This tool does not accept arbitrary URLs, HTML, JavaScript, or external screenshot targets. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
NameTypeReqDescription
expiresAtstringWhen the signed URLs stop working (ISO 8601).
generatedAtstringWhen the screenshots were captured (ISO 8601).
screenshotsarrayOne entry per captured view.

No examples provided.

growsurf_client_snippets ~121

Generate copy-pasteable client-side snippets for GrowSurf referral tracking, embeddable elements, and the GrowSurf Window (JS + CSS), with placement guidance for app UI work.

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

No examples provided.

growsurf_clone_campaign ~114

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
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…

Structured output declared, but exposes no named fields.

No examples provided.

growsurf_create_account ~404

Create a brand-new GrowSurf account and return an API key. Call this tool only after the authorized owner explicitly approves account creation and accepts GrowSurf's Terms of Service (https://growsurf.com/terms) and Privacy Policy (https://growsurf.com/privacy). This is the only tool that does not require `GROWSURF_API_KEY`. The account starts a 14-day Business trial without a credit card. The endpoint returns the new key once in `apiKey`. A lost key cannot be recovered through this API, so do not create an account here unless you can store the key somewhere that outlives the current conversation. If you cannot, ask the account owner to connect GrowSurf's hosted MCP server at `https://mcp.growsurf.com` instead, which keeps the credential with your tool rather than in chat. The key is locked until the account owner's email address is verified. Until then, program and resource endpoints return a `403` with error code `EMAIL_NOT_VERIFIED_ERROR`. Create the account, tell the owner to click the link in the verification email, then retry until that error clears. Use `growsurf_resend_team_owner_verification_email` if the email was lost. The welcome email also contains a set-password link for dashboard access. Accounts whose email is never verified are deleted automatically after 7 days. Verification unlocks the same key you were given, so keep it and retry rather than asking for a replacement. Separately, the API key is replaced the first time the account owner signs in to the GrowSurf dashboard; after that the previous key returns a `403` with error code `NOT_AUTHORIZED_ERROR`. Some actions, such as emailing participants, also require GrowSurf to verify the team. Personal and disposable email addresses are not accepted.

NameTypeReqDescription
companystring
emailstringyes
firstNamestring
lastNamestring
NameTypeReqDescription
apiKeystringAn API key for the new account. Shown once, locked (`403` `EMAIL_NOT_VERIFIED_ERROR`) until the account's email is verified, and rotated when the owner first signs in to the dashboard.
emailstringEmail address for the new account.
verificationStatusstringTeam verification state for the new account.

No examples provided.

growsurf_create_campaign ~514

Create a new GrowSurf program (campaign) pre-populated with type-appropriate starter content, optionally with inline rewards. Starter content includes Design, Emails, Options, Installation, and GrowSurf Window defaults. Only `type` is required; the program is created in `DRAFT` status owned by the credential's bound team. `currencyISO` sets the program's currency (defaults to `USD`) and is immutable after creation. Pass `goal` so the share settings suit the audience; it is set here or not at all. Ask the person for the incentive rather than choosing one: leave `rewards` out unless they named an amount, and tell them the program starts with GrowSurf's starter rewards switched off so it awards nothing yet. Editor-tab config (design, emails, options, installation) is not accepted here. Fetch and review those config sub-resources after creation, then patch only what needs to change. Does NOT require GROWSURF_CAMPAIGN_ID. The response includes the new program `id`; pass it as `campaignId` to the other tools (or set GROWSURF_CAMPAIGN_ID) to configure and operate the program.

NameTypeReqDescription
companyLogoImageUrlstring
companyNamestring
currencyISOstring
goalstringWhat the program is for, which seeds share settings that suit that audience. Programs selling to businesses (`CUSTOMERS`, `USERS`, `B2B_SAAS_SELF_SERVICE`, `B2B_SAAS_ENTERPRISE`) start with the Linke…
namestring
rewardsarrayRewards 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 ~548

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
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
commissionStructureobjectAffiliate 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
descriptionstring
eventstringThe 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…
imageUrlstring
isUnlimitedboolean
isVisibleboolean
limitinteger
limitDurationstring
metadataobject
nextMilestonePrefixstring
nextMilestoneSuffixstring
numberOfWinnersinteger
orderinteger
referralCouponCodestring
referralDescriptionstring
referredRewardUpfrontboolean
referredValueobjectTax 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
valueobjectTax 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 ~194

Add a webhook to your GrowSurf program. `payloadUrl` is required. `events` is the list of events this webhook is subscribed to (omit to subscribe it to no events). `secret` is write-only — GrowSurf uses it to sign deliveries (the GrowSurf-Signature HMAC header) and never returns it. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
eventsarray
isEnabledboolean
payloadUrlstringyes
secretstringWrite-only. Signs deliveries; never returned.

Structured output declared, but exposes no named fields.

No examples provided.

growsurf_create_mobile_participant_token ~238

Create or fetch a participant, then create a participant-scoped mobile SDK token via GrowSurf REST. Participant creation is trusted direct enrollment; do not use it for a public application when the program requires affiliate review. Targets `campaignId` if you pass it, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
emailstringyes
fingerprintstring
firstNamestring
ipAddressstring
isAffiliatebooleanSets whether the participant is an affiliate. Use `true` only for trusted direct enrollment. Public applicants should follow the program's configured application flow.
lastNamestring
metadataobject
mobileInstanceIdstring
referralStatusstring
referredBystring
NameTypeReqDescription
expiresInintegerToken lifetime in seconds.
isNewbooleanWhether this request created a new participant.
participantobjectThe participant record (same shape as the `growsurf_get_participant` result).
participantTokenstringParticipant-scoped bearer token for GrowSurf mobile SDK participant endpoints.

No examples provided.

growsurf_create_program_resource ~273

Create a `FILE`, `LINK`, or `TEXT` resource for participants. `LINK` requires an HTTPS `url`. `TEXT` requires plain `text`. For a `FILE` up to 10 MB, call `growsurf_prepare_program_resource_file` first and pass its `uploadTicket` and `uploadResult` unchanged. New resources default to draft unless you set `isPublished`. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
categorystring|null
descriptionstring|null
isPublishedboolean
textstringUsed only with `TEXT`.
titlestringyes
typestringyes
uploadResultobjectThe unmodified result returned by the secure upload flow. Used only with `FILE`.
uploadTicketstringThe one-time upload ticket. Used only with `FILE`.
urlstringUsed only with `LINK`.

Structured output declared, but exposes no named fields.

No examples provided.

growsurf_delete_campaign_reward ~151

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
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
campaignRewardIdstringyes
NameTypeReqDescription
idstringThe deleted campaign reward id.
successbooleanWhether the campaign reward was deleted.

No examples provided.

growsurf_delete_campaign_webhook ~113

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

NameTypeReqDescription
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
webhookIdstringyes
NameTypeReqDescription
idstringId of the webhook that was deleted.
successbooleanWhether the webhook was deleted.

No examples provided.

growsurf_delete_program_resource ~115

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
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
resourceIdstringyes
NameTypeReqDescription
idstringThe deleted resource id.
successbooleanWhether the resource was deleted.

No examples provided.

growsurf_email_participant ~525

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`). 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 *Campaign 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
bodystringFree-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.…
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
emailTypestringThe 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
subjectstringFree-form subject. Supports dynamic text (`{{...}}` tokens), the same as the body.
NameTypeReqDescription
statusstringThe email was accepted for delivery.
successbooleanWhether the email request was accepted.

No examples provided.

growsurf_embeddable_element_snippet ~55

Generate the HTML snippet for a GrowSurf embeddable element (with optional auth attributes).

NameTypeReqDescription
elementstringyes
participantobject
withAuthAttributesboolean
NameTypeReqDescription
markdownstringThe generated guidance as a markdown document.

No examples provided.

growsurf_get_campaign ~125

Fetch your GrowSurf campaign (program) details via REST. Embedded reward settings do not establish that an individual reward was earned, approved, or delivered; read the affected participant for earned reward records. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
NameTypeReqDescription
currencyISOstring|nullThe program currency as an ISO 4217 code (e.g. `USD`).
idstringThe program's unique id.
impressionCountintegerTotal referral-link views across participants.
inviteCountintegerTotal invites sent by participants.
namestringThe program name (internal only, never shown to participants).
participantCountintegerTotal participants.
referralCountintegerTotal referrals.
rewardEvidenceobjectWhat this response establishes about rewards. Combine with other reads; unknown here does not override evidence elsewhere.
rewardsarrayThe program's reward configs (`CampaignReward`). Item shape is documented on the `growsurf_list_campaign_rewards` tool.
statusstringThe program status.
typestringThe program type.
winnerCountintegerParticipants with at least one approved reward.

No examples provided.

growsurf_get_campaign_activation_analytics ~334

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
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
cohortFromintegerInclusive eligibility-cohort start, Unix timestamp in ms. Use with `cohortTo`.
cohortIntervalstringBucket size for `cohorts`. Defaults to `day`.
cohortTointegerExclusive eligibility-cohort end, Unix timestamp in ms. Must be greater than `cohortFrom`.
observationWindowDaysintegerDays after eligibility in which stages can count. Defaults to `30`.
timezonestringIANA timezone used to advance cohort boundaries. Defaults to `UTC`.
NameTypeReqDescription
aggregateobjectStrict activation metrics for one exact enrollment cohort.
cohortIntervalstringBucket size for `cohorts`.
cohortsarraySelected range split into exact half-open eligibility-cohort buckets.
coverageStartAtinteger|nullEarliest expected complete activation capture time (Unix ms), or `null` until coverage begins.
metricContractVersionintegerShared activation and engagement metric version.
observationWindowDaysintegerDays after eligibility in which stages count.
portalViewedHelperTextstringDisplay definition for a qualifying signed-in portal view.
portalViewedLabelstringProgram-specific display label for the stable `PORTAL_VIEWED` stage.
programTypestringProgram eligibility model.
timezonestringIANA timezone used to advance cohort boundaries.

No examples provided.

growsurf_get_campaign_analytics ~461

Fetch analytics for your GrowSurf program: participants, referrals, impressions, per-channel shares, and affiliate revenue, commission, and payout metrics when applicable. For what impressions, unique impressions, leads, and referrals mean, or why counts differ from another analytics tool, call `growsurf_troubleshoot_referral_tracking` with symptom `numbers_do_not_match` rather than guessing. 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 (Unix ms). `timezone` and `platform` apply to engagement only. Targets `campaignId` if passed, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
daysinteger
endDateintegerEnd of the timeframe, Unix timestamp in ms.
includestringComma-separated optional data: `previousPeriod`, `statusCounts`, `rates`, `email`, and `engagement`. Combine values when the question needs more than one view.
intervalstringday/week/month adds a per-period `series`; total (default) returns totals only.
platformstringClient-platform filter for engagement. Defaults to `ALL`.
startDateintegerStart of the timeframe, Unix timestamp in ms. Use with endDate instead of days.
timezonestringIANA timezone for engagement interval and distinct-day calculations. Used with `include=engagement`.
NameTypeReqDescription
analyticsobjectAnalytics totals: `invites`, `impressions`, `uniqueImpressions`, `participants`, `referrals`, `referralCreditPendings`, `referralCreditExpireds`, per-channel share counts (`emailShares`, `twitterShar…
emailobjectSent, delivered, opened, clicked, bounced, and spam complaint metrics for program emails in the requested window.
endDateintegerEnd of the analytics timeframe, as a Unix timestamp in milliseconds.
engagementobjectOpt-in participant engagement grouped by when activity occurred.
previousPeriodobjectTotals for the equal-length window immediately before the requested one (`analytics`, `startDate`, `endDate`). Present only when `include` contains `previousPeriod`.
ratesobjectDerived referral rates, each a ratio from 0 to 1. Present only when `include` contains `rates`.
seriesarrayPer-period totals in ascending order. Present only when `interval` is `day`, `week`, or `month`.
startDateintegerStart of the analytics timeframe, as a Unix timestamp in milliseconds.
statusCountsobjectStatus-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_design ~226

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, participant sign-in copy under `login`, payout-destination confirmation page copy under `payoutDestinationConfirmation`, and country-name overrides under `countryLabels`. `participantAvatarStyle` is `CHARACTERS`, `INITIALS`, `ANIMALS`, or `GRADIENT`; missing or unknown values mean `INITIALS`. 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
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
NameTypeReqDescription
affiliateSummaryobjectAffiliate programs only. The affiliate's row of summary tiles (clicks, revenue, payouts).
commissionsobjectAffiliate programs only. The Commissions section of the participant portal.
countryLabelsobjectParticipant-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…
headerobjectHeader content for participants (`postText`) and non-participants (`preText`).
landingPagesobjectPortal and landing pages: company info, `content`, `styles`, third-party script ids, and SEO meta tags.
leaderboardobjectThe leaderboard section: labels, selectors, and name masking.
loginobjectThe returning-participant sign-in form plus its success, resend, validation, and error text.
participantAvatarStylestringHow participant avatars appear in the GrowSurf Window. New programs use `CHARACTERS`; missing or unknown stored values return `INITIALS`.
participantSettingsobjectThe participant's account settings area (logout, PayPal and Wise payout confirmation/status messages, tax details).
payoutDestinationConfirmationobjectCustomizable 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…
payoutsobjectAffiliate programs only. The Payouts section of the participant portal.
referralStatusobjectThe section listing who a participant invited and each invite's progress.
referralSummaryobjectReferral programs only. The participant's row of summary tiles (clicks, leads, referrals, rewards).
referredExperienceobjectThe 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.
resourcesobjectParticipant Resources presentation settings: visibility, title, link and copy labels, the message shown when nothing is published, and the section icon. Resource items use the program Resource tools.
rewardsobjectHeading, icon, and empty-state text of the rewards panel.
shareobjectShare channels, invite settings, and share-button styling.
signupobjectSignup form fields, GDPR consent, and button and login text.
statsobjectThe participant's referral-progress stats panel. Only `title` is editable.
themeobjectVisual theme styling (colors, shadows, and similar).
windowobjectLayout of the GrowSurf window (`navigationMode`: `TABS` or `LIST`).

No examples provided.

growsurf_get_campaign_emails ~128

Fetch the Emails tab configuration for your GrowSurf program (participant and admin email templates and settings). 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
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
NameTypeReqDescription
affiliateApplicationApprovedobjectTells an applicant their affiliate application was approved. Affiliate programs only. Transactional; its toggle cannot be changed.
affiliateApplicationDeniedobjectTells an applicant their affiliate application was not approved. Affiliate programs only. Transactional; its toggle cannot be changed.
affiliateApplicationEmailCorrectionobjectAsks an applicant to confirm a corrected email address. Its body must contain `{{identityVerificationLink}}`. Affiliate programs only. Transactional; its toggle cannot be changed.
affiliateApplicationReceivedobjectConfirms an affiliate application was received and is under review. Affiliate programs only. Transactional; its toggle cannot be changed.
affiliateApplicationStatusLinkobjectSends an applicant a secure link to view their application status. Its body must keep `{{applicationStatusLink}}`. Affiliate programs only. Transactional; its toggle cannot be changed.
affiliateEmailChangeVerificationobjectAsks an affiliate to confirm a new account email address. Its body must contain `{{identityVerificationLink}}`. Affiliate programs only. Transactional; its toggle cannot be changed.
campaignEndedNonWinnersobjectSent to non-winners when the program ends. Referral programs only.
campaignEndedWinnersobjectSent to reward winners when the program ends. Referral programs only.
commissionAdjustedobjectSent when a commission is adjusted after a refund or chargeback. Affiliate programs only.
commissionGeneratedobjectSent to an affiliate when they earn a new commission. Affiliate programs only.
goalAchievedobjectSent when a participant unlocks a reward. Referral programs only.
inviteobjectThe invitation email a participant sends to friends. `useCompanyReplyTo` sets who receives replies.
inviteAffiliateobjectInvites a prospective affiliate to join the program. Its body must keep `{{affiliateInviteLink}}`. Affiliate programs only. Promotional; its toggle can be changed.
loginLinkobjectOne-time sign-in link for returning participants. Transactional; its toggle cannot be changed.
offerClaimedobjectSent when a referred visitor saves an offer through the Claim Offer Popup. Referral and affiliate programs. Promotional; its toggle can be changed.
payoutDestinationChangedobjectTells a participant their payout destination changed. Its body must keep `{{payoutDestinationMaskedEmail}}`. Referral and affiliate programs. Transactional; its toggle cannot be changed.
payoutDestinationConfirmationobjectAsks 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…
payoutPendingobjectSent when a payout is on the way. Affiliate programs only.
payoutSentSuccessobjectSent when a payout completes. Affiliate programs only.
progressUpdateMonthlyobjectMonth-end progress recap for participants. Referral and affiliate programs.
referralLinkUsedobjectSent to a referrer when they earn referral credit. Referral programs only.
referralLinkViewedFirstTimeobjectSent the first time a participant's referral link is viewed. Referral and affiliate programs.
referredSignupobjectSent to a referrer each time someone signs up using their link. Referral and affiliate programs.
settingsobjectSender (`sender`), physical contact address (`contact`), and shared design (`design`) settings. The design object includes `unsubscribeAffiliateInvite` for direct affiliate invitation emails.
taxInfoApprovedobjectTells a participant their tax form is complete and approved. Transactional; its toggle cannot be changed.
taxInfoMissingobjectAsks a participant to submit required tax information. Transactional; its toggle cannot be changed.
taxInfoReceivedobjectConfirms submitted tax information was received. Transactional; its toggle cannot be changed.
taxInfoRejectedobjectTells a participant their tax information needs to be resubmitted. Transactional; its toggle cannot be changed.
welcomeNonReferredobjectWelcome email for a participant who joins without being referred. Referral and affiliate programs.
welcomeReferredobjectWelcome email for someone who signs up through a referral link. Referral programs only.

No examples provided.

growsurf_get_campaign_installation ~127

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
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
NameTypeReqDescription
allowedUrlsarrayEvery 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…
mobileobjectGrowSurf iOS and Android SDK settings.
referralTriggerstringReferral programs only. `ON_SIGNUP` counts a referral as soon as the friend signs up; `CUSTOM` also requires a qualifying action.
shareUrlstringThe landing page referred friends reach from a referral link. Set this before adding other origins to `allowedUrls`.
signupobjectCustom signup-form settings (used with `FORM_DETECTION`).
signupEventstringThe signup tracking method: automatic form detection, or participants added via the SDKs and REST API.
useGrowSurfHostedLinksbooleanUse GrowSurf-hosted referral links that route clicks by the visitor's device. Mainly for mobile apps.

No examples provided.

growsurf_get_campaign_options ~167

Fetch the Options tab configuration for your GrowSurf program (referral triggers, anti-fraud lists and toggles, affiliate enrollment and application review, notifications, 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
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
NameTypeReqDescription
affiliateApplicationModestringAffiliate 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|nullAffiliate programs only. Optional review-time expectation shown to pending applicants, in business days (1-60). `null` clears it.
affiliateReapplicationCooldownDaysintegerAffiliate 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`.
affiliateReapplicationPolicystringAffiliate programs only. Whether a denied applicant may apply again. `AFTER_COOLDOWN` (the default) allows a new application once `affiliateReapplicationCooldownDays` has passed; `DISABLED` never all…
autoBlockFraudbooleanAutomatically block signups flagged as high fraud risk.
autoFulfillRewardsbooleanReferral programs only. Automatically mark earned rewards as fulfilled. `false` permits manual fulfillment and does not establish a delivery failure.
blockPaidAdsTrafficbooleanDo not attribute referrals from visitors who arrived through paid ads.
enforceGdprCompliancebooleanStore only the minimum participant data (no IP addresses, fingerprints, or mobile instance ids).
fraudobjectAnti-fraud settings: `blockedEmails`/`blockedIps`/`blockedCountries` and matching allow lists, `blockBurnerEmails`, `blockDataCenterIps`, `blockHighRiskReferrers`, `autoBlockHighRiskIps`, per-IP sign…
notificationEmailsobjectOwner notification settings: `recipients` plus per-event `events` toggles.
payoutThresholdinteger|nullAffiliate programs only. Minimum payout in minor currency units (e.g. cents). `0` or `null` means no minimum.
referralCookieWindowDaysintegerHow long a referral-link click is remembered in the visitor's browser, in days.
referralCreditWindowDaysinteger|nullHow long a referred friend has to complete the qualifying action, in days. `null` means the credit never expires.
requireManualFraudApprovalbooleanFlag suspected fraud for review instead of blocking signups automatically.
requireManualRewardApprovalbooleanReferral programs only. Hold each earned reward for manual approval before it unlocks.
requireParticipantAuthbooleanRequire returning participants to authenticate. Affiliate programs require `true`.
rewardEvidenceobjectWhat this response establishes about rewards. Combine with other reads; unknown here does not override evidence elsewhere.
taxDocumentationobjectAffiliate 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 ~364

Return a dashboard link that opens a specific integration's connect panel in the GrowSurf Program Editor (Options > Integrations). Use this whenever a user says they want to connect an integration, for example "connect Stripe", "set up PayPal or Wise payouts", "send Tango Card gift cards", or "sync signups to Mailchimp": call it with the `integration` key and give the user the returned `url` to open. Connecting an integration happens in the dashboard, not through the API. GrowSurf cannot link a Stripe, PayPal, Wise, or other account on the user's behalf, so hand them the link. `integration` must be one of the supported keys (some are camelCase, e.g. `constantContact`, `helpScout`). The link points at GROWSURF_CAMPAIGN_ID; pass `campaignId` to target a different program. The program is checked before the link is returned, and the result also reports whether the integration is already `connected`, `enabled`, or `autoDisabled`, so you can skip handing over a link the user does not need. If that check cannot run, `programVerified` comes back `false` and you still get a working production link. Tango Card, Tremendous, and Bask Health apply to referral programs only. Wise applies to affiliate programs only.

NameTypeReqDescription
campaignIdstringTarget 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.
autoDisabledbooleanWhether GrowSurf switched the integration off after repeated delivery failures. Present only when `programVerified` is `true`.
categorystringThe integration's category.
connectedbooleanWhether the program has stored credentials for this integration. Present only when `programVerified` is `true`.
enabledbooleanWhether the integration is switched on and currently working. Present only when `programVerified` is `true`.
integrationstringThe integration key that was requested.
labelstringHuman-readable integration name.
notestringInstructions 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.
urlstringDashboard link that opens the integration's connect panel.

No examples provided.

growsurf_get_participant ~203

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. Use `growsurf_list_participants` first if you need to find a participant ID. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
participantEmailstring
participantIdstring
NameTypeReqDescription
affiliateEnrollmentSourcestring|nullAffiliate programs only. How the affiliate enrolled (`OPEN_ENROLLMENT`, `APPLICATION`, `PARTICIPANT_AUTH`, `INVITE`, `REST_API`, `CSV`, or `DASHBOARD`). `null` when not recorded.
affiliateStatusstring|nullAffiliate programs only. The enrolled affiliate's status (`APPROVED`, `SUSPENDED`, or `BANNED`). `null` for participants who are not affiliates.
allMatchingFraudstersarrayOther participants flagged as matching this participant during anti-fraud checks.
createdAtintegerWhen the participant joined, as a Unix timestamp in milliseconds.
emailstringThe participant's email address.
fingerprintstring|nullBrowser identifier recorded for the participant, or `null`.
firstNamestring|nullThe participant's first name.
fraudReasonCodestringReason code behind `fraudRiskLevel` (e.g. `UNIQUE_IDENTITY`, `DUPLICATE_EMAIL`, `MANUAL_UPDATE`).
fraudRiskLevelstringThe participant's fraud risk level.
idstringThe participant's unique id.
impressionCountintegerTotal views of the participant's referral link.
inviteCountintegerInvites sent by the participant.
ipAddressstring|nullIP address recorded for the participant, or `null`.
isAffiliatebooleanAffiliate 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.
lastNamestring|nullThe participant's last name.
metadataobjectCustom key/value metadata (single level).
mobileInstanceIdstring|nullApp-install scoped identifier supplied by a native app, or `null`.
monthlyRankintegerCurrent-month leaderboard rank (resets monthly).
monthlyReferralCountintegerReferrals credited this month (resets monthly).
monthlyReferralsarrayIds of participants they successfully referred this month (100 most recent).
notesstring|nullInternal notes. Never shown to participants.
payoutSettingsobjectActions the participant must complete before a payout can be released. Always present.
paypalEmailAddressstringPayPal email address on file, used for affiliate or PayPal reward payouts.
prevMonthlyRankintegerPrevious-month leaderboard rank.
prevMonthlyReferralCountintegerReferrals credited the previous month.
rankintegerAll-time leaderboard rank.
referralCountintegerAll-time referrals credited to the participant.
referralSourcestringHow the participant joined the program.
referralStatusstringThe referrer's credit status for this participant. Present only when the participant was referred.
referralsarrayIds of participants they successfully referred (100 most recent).
referredBystringId of the referrer. Present only when the participant was referred.
referrerobject|nullSummary of the participant's referrer (same core fields as a participant). Present only when the participant was referred.
rewardEvidenceobjectWhat this response establishes about rewards. Combine with other reads; unknown here does not override evidence elsewhere.
rewardsarrayRewards the participant has earned.
shareCountobjectShare counts keyed by channel (e.g. `email`, `facebook`, `twitter`, `copyRefLink`, `iosNativeShare`).
shareUrlstringThe participant's unique referral link. Omitted for affiliate program participants who are not approved affiliates.
uniqueImpressionCountintegerUnique views of the participant's referral link.
unreadCommissionsCountintegerCommissions the participant has not yet viewed. Affiliate programs only.
unreadPayoutsCountintegerPayouts the participant has not yet viewed. Affiliate programs only.
unsubscribedboolean`true` if the participant unsubscribed from program emails.
vanityKeysarrayThe participant's vanity keys.

No examples provided.

growsurf_get_participant_activity_logs ~183

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
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
limitinteger
offsetinteger
participantEmailstring
participantIdstring
NameTypeReqDescription
activityLogsarrayActivity log entries for the participant.
limitintegerNumber of activity logs returned per page.
offsetinteger|nullOffset for the next page, or `null` when there are no more logs.

No examples provided.

growsurf_get_participant_analytics ~374

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. Date-window parameters filter optional series and email data, not the base response or activation milestones. Targets `campaignId` if passed, otherwise `GROWSURF_CAMPAIGN_ID`.

NameTypeReqDescription
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
daysintegerNumber of days for optional `series` and `email` analytics. Does not filter the all-time base response.
endDateintegerEnd of the optional-data timeframe, Unix timestamp in ms. Use with `startDate`.
includestringComma-separated optional data. Current values are `series`, `email`, and `activation`; the API returns `400` for unknown values.
intervalstringBucket size for `series` and email series. Defaults to `day`.
participantEmailstring
participantIdstring
startDateintegerStart of the optional-data timeframe, Unix timestamp in ms. Use with `endDate` instead of `days`.
NameTypeReqDescription
activationobjectOpt-in covered eligibility and first-milestone analytics for one participant.
analyticsobjectAll-time participant analytics totals. Date-window parameters do not filter these fields.
emailobjectSent, delivered, opened, clicked, bounced, and spam complaint metrics for program emails in the requested window.
endDateintegerWindow end (Unix ms). Present with `series` or `email`.
ranksobjectLeaderboard ranks for this participant.
seriesarrayThis participant's per-period activity. Present when `include` contains `series`.
shareCountobjectPer-channel share counts (e.g. `email`, `facebook`, `twitter`).
startDateintegerWindow start (Unix ms). Present with `series` or `email`.

No examples provided.

growsurf_get_participant_payout_destination ~195

Get a participant's payout-destination status (by GrowSurf participant ID or email) across every payout provider enabled for the program (PayPal and/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
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
participantEmailstring
participantIdstring
NameTypeReqDescription
activeProviderstring|nullThe payout provider currently selected, or `null` until the participant confirms one. Provider identifiers are open-ended; current examples include `PAYPAL` and `WISECOM`.
destinationsarrayOne entry per enabled payout provider describing the participant's destination for it.
enabledProvidersarrayPayout provider identifiers enabled for this program. Values are open-ended; current examples include `PAYPAL` 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
namestringThe team's display name.
verificationRequestedAtinteger|nullWhen verification was last requested, as a Unix timestamp in milliseconds.
verificationStatusstringTeam verification state. `VERIFIED` is required before a program can send participant emails.

No examples provided.

growsurf_grsf_config_snippet ~98

Generate the <head> snippet for participant auto-auth using window.grsfConfig (place before the GrowSurf Universal Code).

NameTypeReqDescription
affiliateJoinboolean
campaignIdstring
emailstring
enableParticipantAutoAuthboolean
hashstring
includeAutoAuthCommentHeaderboolean
useCampaignIdPlaceholderboolean
NameTypeReqDescription
markdownstringThe generated guidance as a markdown document.

No examples provided.

growsurf_integration_guide ~70

Generate a guided, happy-path GrowSurf integration plan (referral + affiliate).

NameTypeReqDescription
participantAuthEnabledboolean
programTypestring
referralTriggerstring
singlePageAppboolean
webhookSecuritystring
NameTypeReqDescription
markdownstringThe generated guidance as a markdown document.

No examples provided.

growsurf_list_campaign_rewards ~125

List your GrowSurf program's configured rewards. These settings do not establish that a participant earned or received a reward; inspect their `rewards` with `growsurf_get_participant`. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
NameTypeReqDescription
rewardEvidenceobjectWhat this response establishes about rewards. Combine with other reads; unknown here does not override evidence elsewhere.
rewardsarrayThe program's active, visible, and enabled reward configs.

No examples provided.

growsurf_list_campaign_webhooks ~103

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

NameTypeReqDescription
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
NameTypeReqDescription
webhooksarrayWebhooks configured for the program.

No examples provided.

growsurf_list_campaigns ~60

List the GrowSurf programs available to the bound team. Use this first when you need to choose a `campaignId` before calling campaign-scoped tools. Deleted programs are not returned. Does NOT require GROWSURF_CAMPAIGN_ID.

Input schema present but exposes no named parameters.

NameTypeReqDescription
campaignsarrayPrograms available to the API key's bound team.

No examples provided.

growsurf_list_integrations ~264

List every integration your GrowSurf program can connect (Stripe, PayPal, Wise, Mailchimp, Slack, Zapier, Webhooks, and more) with its current state, so you can check whether an integration is connected before you act on it. Each entry has `connected` (credentials are stored), `enabled` (switched on and working), `autoDisabled` (GrowSurf switched it off after repeated delivery failures — the credentials are still stored, but nothing is delivered until the user reconnects it), and `connectUrl` (the dashboard link to hand the user). Integrations that do not apply to the program type are omitted (for example, Wise on a referral program). Read-only: connecting an integration happens in the GrowSurf dashboard, not through the API — call `growsurf_get_integration_connect_link` for the link to hand the user. Targets `campaignId` if you pass it, otherwise GROWSURF_CAMPAIGN_ID.

NameTypeReqDescription
campaignIdstringTarget program (campaign) id for this call. Defaults to GROWSURF_CAMPAIGN_ID when omitted. Pass the `id` returned by growsurf_create_campaign to configure or operate a program you just created, witho…
NameTypeReqDescription
integrationsarrayEvery integration this program can connect, in the order the GrowSurf dashboard lists them.

No examples provided.

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 90 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 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 63 tools: growsurf_integration_guide, growsurf_agent_program_creation_eval, growsurf_program_design_advisor, growsurf_troubleshoot_referral_tracking, growsurf_mobile_sdk_guide, and 58 more. Their descriptions and schemas cost roughly 14,397 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 20 September 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.