# ReferralHero MCP by usefulapi (remote · referralhero.usefulapi.io)

Read ReferralHero campaigns, subscribers, referrals and rewards; add subscribers and points.

- Trust score: 62/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-25

## Components

- remote · `referralhero.usefulapi.io`: 62/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-referralhero/referralhero.md), [page](https://verifymcp.io/servers/io-usefulapi-referralhero/referralhero)

## Channel facts

- Endpoint: `https://referralhero.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.0.3`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-25.

- **Endpoint Security**: 78/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 79/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 4824 tokens (~172/item across 28 items; 28 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 29 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the ReferralHero MCP by usefulapi server?

ReferralHero MCP by usefulapi is a hosted endpoint at https://referralhero.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-usefulapi-referralhero 'https://referralhero.usefulapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-referralhero": {
      "url": "https://referralhero.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-referralhero": {
      "type": "http",
      "url": "https://referralhero.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-referralhero]
url = "https://referralhero.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-referralhero": {
      "type": "remote",
      "url": "https://referralhero.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-referralhero --url 'https://referralhero.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-referralhero:
    url: "https://referralhero.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-referralhero": {
      "Transport": "http",
      "Url": "https://referralhero.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-referralhero -t streamable-http -u 'https://referralhero.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-referralhero": {
      "type": "http",
      "url": "https://referralhero.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-25 (score 62, 0)

- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 1.0.0 → 1.0.3

### 2026-10-24 (score 62)

First indexed and scored.

## MCP tools (28)

### `referralhero_list_campaigns` (~77 tokens)

List campaigns

List the active ReferralHero campaigns (lists) in the account: uuid, name, subscriber count and creation time. The uuid is needed by every other tool. 10 per page. GET /lists.

Input parameters:

- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.

### `referralhero_get_leaderboard` (~92 tokens)

Get campaign leaderboard

The leaderboard of a campaign: its top subscribers (10 to 100) with referral counts, points and position. GET /lists/{uuid}/leaderboard.

Input parameters:

- `count` (integer): How many top subscribers, 10-100 (default 10).
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_list_campaign_rewards` (~86 tokens)

List campaign rewards

The rewards configured for a campaign (title, description, referrals needed to win each). This is the reward setup, not who earned what: see referralhero_list_unlocked_rewards for that. GET /lists/{uuid}/bonuses.

Input parameters:

- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_create_campaign` (~66 tokens)

Create campaign

WRITE: create a new ReferralHero campaign (list) with a name and a default referral URL. It adds a campaign and changes nothing existing. POST /lists.

Input parameters:

- `name` (string, required): Campaign name.
- `website` (string, required): Default referral URL (https://...).

### `referralhero_list_subscribers` (~192 tokens)

List subscribers

List the subscribers of a campaign, 50 per page, with referral code, referral link, points, position, people referred, status and referrer. Sort and filter by the extra fields. GET /lists/{uuid}/subscribers.

Input parameters:

- `extra_field` (string): Only subscribers whose extra field has this value.
- `extra_field_2` (string): Only subscribers whose extra field 2 has this value.
- `option_field` (string): Only subscribers whose option field has this value.
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `sort_by` (string): Sort order.
- `stripe_customer_id` (string): Only the subscriber linked to this Stripe customer id.
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_get_subscriber` (~115 tokens)

Get subscriber

One subscriber by id: contact data, referral code and link, points, position, referrals by level, status, fraud risk level, tags. Only verified subscribers are found. GET /lists/{uuid}/subscribers/{id}.

Input parameters:

- `subscriber_id` (string, required): Subscriber id, e.g. sub_2bad325a25d7 (the id field of a subscriber).
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_get_subscriber_by_email` (~80 tokens)

Find subscriber by email

Find one subscriber of a campaign by email. Only verified subscribers are found. GET /lists/{uuid}/subscribers/retrieve_by_email.

Input parameters:

- `email` (string, required): The subscriber's email.
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_get_subscriber_by_referral_code` (~104 tokens)

Find subscriber by referral code

Find the subscriber who owns a referral code (the mwr value in a referral link). Only verified subscribers are found. GET /lists/{uuid}/subscribers/retrieve_by_mwr.

Input parameters:

- `referral_code` (string, required): The referrer's referral code (the mwr parameter of a referral link).
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_search_subscribers_by_name` (~73 tokens)

Search subscribers by name

Search subscribers by name across all campaigns of the account, 50 per page. GET /subscribers/search_by_name.

Input parameters:

- `name` (string, required): Name to search for.
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.

### `referralhero_list_referrals` (~206 tokens)

List a subscriber's referrals

The people a subscriber referred, 50 per page. scope: all (pending, unconfirmed and confirmed, default), level_1_confirmed, level_2_confirmed, level_3_confirmed (confirmed only, by referral level), level_2_all or level_3_all (every status at that level). GET /lists/{uuid}/subscribers/{id}/{referred|level_N_referrals|level_N_all_referrals}.

Input parameters:

- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `scope` (string): Which referrals (default all).
- `sort_by` (string): Sort order.
- `subscriber_id` (string, required): Subscriber id, e.g. sub_2bad325a25d7 (the id field of a subscriber).
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_list_unlocked_rewards` (~153 tokens)

List earned rewards (campaign-wide)

Rewards unlocked by subscribers across a whole campaign: reward name, status (sent, resent, canceled, pending, flagged), value, subscriber email and id, coupon code, transaction. Filter by status to find rewards still to pay out. GET /lists/{uuid}/rewards.

Input parameters:

- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `per_page` (integer): Results per page, 1-50 (default 10).
- `status` (string): Only rewards in this status.
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_list_subscriber_rewards` (~147 tokens)

List a subscriber's rewards

Rewards one subscriber has unlocked, with status, value and coupon code. The reward id is what referralhero_update_reward_status needs. GET /lists/{uuid}/subscribers/{id}/rewards.

Input parameters:

- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `status` (string): Only rewards in this status.
- `subscriber_id` (string, required): Subscriber id, e.g. sub_2bad325a25d7 (the id field of a subscriber).
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_list_coupon_groups` (~95 tokens)

List coupon groups

Coupon groups of a campaign (id, name, active flag, coupons with availability), 50 per page. GET /lists/{uuid}/coupon_groups.

Input parameters:

- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_get_coupon_group` (~84 tokens)

Get coupon group

One coupon group with all its coupons (code, available, sent_at). GET /lists/{uuid}/coupon_groups/{id}.

Input parameters:

- `coupon_group_id` (string, required): Coupon group id (see referralhero_list_coupon_groups).
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_add_subscriber` (~499 tokens)

Add subscriber

WRITE: add a subscriber (or a referred person) to a campaign. Give the campaign's unique identifier (email, phone, wallet or custom id). By default ReferralHero sends the subscriber a confirmation (double opt-in) email and any welcome automation of the campaign: set double_optin=false to suppress the confirmation email. Set referrer (a referral code or the referrer's email) to credit a referral. POST /lists/{uuid}/subscribers.

Input parameters:

- `advocate_name` (string): Name of the advocate.
- `confirm` (boolean, required): Must be true: the user has approved this change. It can unlock rewards and make ReferralHero email or text the subscriber or referrer (automations).
- `conversion_category` (string): Subscriber type for reports and segments.
- `conversion_value` (number): Monetary value of the referral.
- `crypto_wallet_address` (string): Wallet address (when it is the unique identifier).
- `device` (string): Device used to sign up, for analytics.
- `domain` (string): URL used for the subscriber's referral link.
- `double_optin` (boolean): false = do not send the confirmation email. Default: the campaign's setting (usually sends it).
- `email` (string): Subscriber email (when email is the campaign's unique identifier).
- `extra_field` (string): Extra field value.
- `extra_field_2` (string): Extra field 2 value.
- `name` (string): Subscriber name.
- `other_identifier_value` (string): Custom identifier value (when a custom id is the unique identifier).
- `phone_number` (string): Subscriber phone number (when phone is the unique identifier).
- `points` (integer): Starting points (contest campaigns only).
- `referrer` (string): Referral code or email of the referrer to credit.
- `self_reported_source` (string): Where the subscriber says they heard about the campaign.
- `source` (string): Source, for analytics.
- `status` (string): custom_event_pending = set the referral status to pending (multi-step goals).
- `stripe_customer_id` (string): Stripe customer id to link.
- `tags` (array): Tags to assign.
- `transaction_id` (string): Unique id of the purchase this referral came from.
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_update_subscriber` (~355 tokens)

Update subscriber

WRITE: change fields of a subscriber (overwrites the given fields): name, contact identifiers, extra fields, points (contest campaigns), tags, address, referral status (qualified/unqualified). Only fields you pass change. Only verified subscribers can be updated. POST /lists/{uuid}/subscribers/{id}.

Input parameters:

- `address` (string): Address.
- `city` (string): City.
- `confirm` (boolean, required): Must be true: the user has approved this change. It can unlock rewards and make ReferralHero email or text the subscriber or referrer (automations).
- `country` (string): Country.
- `crypto_wallet_address` (string): Wallet address (when it is the unique identifier).
- `email` (string): Subscriber email (when email is the campaign's unique identifier).
- `extra_field` (string): New extra field value.
- `extra_field_2` (string): New extra field 2 value.
- `name` (string): New name.
- `other_identifier_value` (string): Custom identifier value (when a custom id is the unique identifier).
- `phone_number` (string): Subscriber phone number (when phone is the unique identifier).
- `points` (integer): New points total (contest campaigns only).
- `referral_status` (string): Mark the referral qualified or unqualified.
- `stripe_customer_id` (string): Stripe customer id.
- `subscriber_id` (string, required): Subscriber id, e.g. sub_2bad325a25d7 (the id field of a subscriber).
- `tags` (array): Tags to assign.
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_delete_subscriber` (~123 tokens)

Delete subscriber

WRITE, DESTRUCTIVE: permanently delete a subscriber from a campaign, with their referral standing. This cannot be undone. DELETE /lists/{uuid}/subscribers/{id}.

Input parameters:

- `confirm` (boolean, required): Must be true: the user has approved permanently deleting this subscriber.
- `subscriber_id` (string, required): Subscriber id, e.g. sub_2bad325a25d7 (the id field of a subscriber).
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_add_points` (~207 tokens)

Add points to a subscriber

WRITE: add points to an existing subscriber (not idempotent: each call adds again). May unlock point-based rewards. The subscriber is identified by the campaign's unique identifier. POST /lists/{uuid}/subscribers/add_points.

Input parameters:

- `confirm` (boolean, required): Must be true: the user has approved this change. It can unlock rewards and make ReferralHero email or text the subscriber or referrer (automations).
- `crypto_wallet_address` (string): Wallet address (when it is the unique identifier).
- `email` (string): Subscriber email (when email is the campaign's unique identifier).
- `other_identifier_value` (string): Custom identifier value (when a custom id is the unique identifier).
- `phone_number` (string): Subscriber phone number (when phone is the unique identifier).
- `points` (integer, required): Points to add.
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_track_transaction` (~275 tokens)

Track a transaction

WRITE: record a purchase/transaction for a subscriber (amount required) so revenue-based rewards and reports count it (not idempotent unless a transaction_id is reused). The subscriber is identified by the campaign's unique identifier. POST /lists/{uuid}/subscribers/add_transactions.

Input parameters:

- `amount` (number, required): Amount of the transaction.
- `confirm` (boolean, required): Must be true: the user has approved this change. It can unlock rewards and make ReferralHero email or text the subscriber or referrer (automations).
- `crypto_wallet_address` (string): Wallet address (when it is the unique identifier).
- `email` (string): Subscriber email (when email is the campaign's unique identifier).
- `lifetime_spend` (number): The subscriber's total lifetime spend.
- `other_identifier_value` (string): Custom identifier value (when a custom id is the unique identifier).
- `phone_number` (string): Subscriber phone number (when phone is the unique identifier).
- `product_id` (string): Product id (for product-based rewards).
- `reward_value` (number): A reward value to attach to the transaction.
- `transaction_id` (string): Your unique transaction id.
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_confirm_referral` (~268 tokens)

Confirm a referral

WRITE: confirm a verified referral when its third conversion event happens (campaigns whose goal tracks three events; otherwise ReferralHero returns an error). Confirming can unlock the referrer's rewards and send reward emails. Identify the referral by subscriber_id, or by the campaign's unique identifier. POST /lists/{uuid}/subscribers/{id}/confirm or /subscribers/confirm.

Input parameters:

- `confirm` (boolean, required): Must be true: the user has approved this change. It can unlock rewards and make ReferralHero email or text the subscriber or referrer (automations).
- `conversion_value` (number): Referral conversion value.
- `crypto_wallet_address` (string): Wallet address (when it is the unique identifier).
- `email` (string): Subscriber email (when email is the campaign's unique identifier).
- `other_identifier_value` (string): Custom identifier value (when a custom id is the unique identifier).
- `phone_number` (string): Subscriber phone number (when phone is the unique identifier).
- `subscriber_id` (string): Subscriber id, e.g. sub_2bad325a25d7 (the id field of a subscriber).
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_track_conversion_event` (~306 tokens)

Track a referral conversion event

WRITE: report a conversion event for a referral (campaigns whose goal tracks two or three events). Updates the referral from pending to confirmed (two events) or unconfirmed (three). If the referral is unknown but a referrer is given, the referral is created. May unlock rewards. POST /lists/{uuid}/subscribers/track_referral_conversion_event.

Input parameters:

- `confirm` (boolean, required): Must be true: the user has approved this change. It can unlock rewards and make ReferralHero email or text the subscriber or referrer (automations).
- `conversion_value` (number): Referral conversion value.
- `crypto_wallet_address` (string): Wallet address (when it is the unique identifier).
- `email` (string): Subscriber email (when email is the campaign's unique identifier).
- `other_identifier_value` (string): Custom identifier value (when a custom id is the unique identifier).
- `phone_number` (string): Subscriber phone number (when phone is the unique identifier).
- `product_id` (string): Product id (for product-based rewards).
- `referrer` (string): Unique identifier of the referrer (needed to create a missing referral).
- `stripe_customer_id` (string): Stripe customer id.
- `tags` (array): Tags to assign.
- `transaction_id` (string): Transaction id for the event.
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_qualify_referral` (~140 tokens)

Mark referral qualified

WRITE: mark a referral as qualified, so it counts toward the referrer's rewards. POST /lists/{uuid}/subscribers/{id}/qualify.

Input parameters:

- `confirm` (boolean, required): Must be true: the user has approved this change. It can unlock rewards and make ReferralHero email or text the subscriber or referrer (automations).
- `subscriber_id` (string, required): Subscriber id, e.g. sub_2bad325a25d7 (the id field of a subscriber).
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_unqualify_referral` (~151 tokens)

Mark referral unqualified

WRITE: mark a referral as unqualified (for example fraud or a refund), so it no longer counts toward the referrer's rewards. POST /lists/{uuid}/subscribers/{id}/unqualify.

Input parameters:

- `confirm` (boolean, required): Must be true: the user has approved this change. It can unlock rewards and make ReferralHero email or text the subscriber or referrer (automations).
- `subscriber_id` (string, required): Subscriber id, e.g. sub_2bad325a25d7 (the id field of a subscriber).
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_promote_subscriber` (~153 tokens)

Promote subscriber (winner)

WRITE: promote a subscriber to the campaign's winners list (contests and giveaways). Only verified subscribers can be promoted; an already promoted subscriber returns an error. POST /lists/{uuid}/subscribers/{id}/promote.

Input parameters:

- `confirm` (boolean, required): Must be true: the user has approved this change. It can unlock rewards and make ReferralHero email or text the subscriber or referrer (automations).
- `subscriber_id` (string, required): Subscriber id, e.g. sub_2bad325a25d7 (the id field of a subscriber).
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_unlock_promoted_reward` (~157 tokens)

Trigger a manual reward

WRITE: unlock a promoted-winner or one-off reward for a subscriber. This delivers the reward and may email the subscriber and use coupon codes. POST /lists/{uuid}/subscribers/{id}/unlock_promoted_reward.

Input parameters:

- `confirm` (boolean, required): Must be true: the user has approved delivering this reward to the subscriber now.
- `reward_id` (string, required): Id of the promotion reward (see referralhero_list_campaign_rewards).
- `subscriber_id` (string, required): Subscriber id, e.g. sub_2bad325a25d7 (the id field of a subscriber).
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_update_reward_status` (~155 tokens)

Update reward status

WRITE: set the status of an unlocked reward to sent, resent or canceled. Marking sent/resent can trigger the reward delivery email to the subscriber. Get the reward_id from referralhero_list_subscriber_rewards or referralhero_list_unlocked_rewards. POST /lists/{uuid}/subscribers/update_reward_status.

Input parameters:

- `confirm` (boolean, required): Must be true: the user has approved this reward status change (sent/resent can email the reward; canceled withdraws it).
- `reward_id` (string, required): Id of the unlocked reward.
- `status` (string, required): New status.
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_create_coupon_group` (~110 tokens)

Create coupon group

WRITE: create a coupon group for a campaign, optionally with its first coupon codes. It only adds a group. POST /lists/{uuid}/coupon_groups.

Input parameters:

- `active` (boolean): Whether the group is active (default true).
- `coupons` (array): Coupon codes to put in the group.
- `name` (string, required): Coupon group name.
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

### `referralhero_add_coupons` (~95 tokens)

Add coupons to a group

WRITE: add coupon codes to an existing coupon group. It only adds codes. POST /lists/{uuid}/coupons.

Input parameters:

- `coupon_group_id` (string, required): Coupon group id (see referralhero_list_coupon_groups).
- `coupons` (array, required): Coupon codes to add.
- `uuid` (string, required): Campaign (list) uuid, the 12-character id starting with MF (see referralhero_list_campaigns).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-referralhero/referralhero#diagnostics

## Score history

- 2026-10-25: 62
- 2026-10-24: 62

## Common questions

### What is the ReferralHero MCP by usefulapi server?

ReferralHero MCP by usefulapi is listed in the public MCP registry as io.usefulapi/referralhero. Read ReferralHero campaigns, subscribers, referrals and rewards; add subscribers and points. This page covers its hosted endpoint (https://referralhero.usefulapi.io/mcp).

### Is the ReferralHero MCP by usefulapi server safe to use?

ReferralHero MCP by usefulapi scores 62 out of 100 on VerifyMCP. 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 ReferralHero MCP by usefulapi server expose?

ReferralHero MCP by usefulapi exposes 28 tools: referralhero_list_campaigns, referralhero_get_leaderboard, referralhero_list_campaign_rewards, referralhero_create_campaign, referralhero_list_subscribers, and 23 more. Their descriptions and schemas cost roughly 4,564 tokens of context every time the server is loaded.

### Does the ReferralHero MCP by usefulapi server require authentication?

Yes. ReferralHero MCP by usefulapi asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the ReferralHero MCP by usefulapi server still maintained?

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

## Links

- Remote endpoint: https://referralhero.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/referralhero/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-referralhero/referralhero.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-referralhero/referralhero.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-referralhero/referralhero
