# Viral Loops

```json
{
  "name": "Viral Loops",
  "slug": "viral_loops",
  "url": "https://composio.dev/toolkits/viral_loops",
  "markdown_url": "https://composio.dev/toolkits/viral_loops.md",
  "logo_url": "https://logos.composio.dev/api/viral_loops",
  "categories": [
    "advertising & marketing"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-10-04T15:12:03.219Z"
}
```

![Viral Loops logo](https://logos.composio.dev/api/viral_loops)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Viral Loops MCP or direct API to manage referral campaigns, track participants, monitor conversions, and review rewards through natural language.

## Summary

Viral Loops is a referral marketing platform for campaigns, participants, referrals, conversions, leaderboards, and rewards.
It helps teams grow through word-of-mouth campaigns with trackable referral performance.

## Categories

- advertising & marketing

## Toolkit Details

- Tools: 9

## Images

- Logo: https://logos.composio.dev/api/viral_loops

## Authentication

- **Api Key**
  - Type: `api_key`
  - Description: Api Key authentication for Viral Loops.
  - Setup:
    - Configure Api Key credentials for Viral Loops.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- List top Viral Loops campaign referrers
- Show leaderboard for summer referral campaign
- Check pending referrals for campaign

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `VIRAL_LOOPS_GET_CAMPAIGN_INFO` | Get Campaign Info | Return the connected campaign's identity, template, expiration mode and date, points, GDPR, and integration configuration without bulky presentation styling. |
| `VIRAL_LOOPS_GET_CAMPAIGN_STATS` | Get Campaign Stats | Return the connected campaign's lead count and total referral count. |
| `VIRAL_LOOPS_GET_PARTICIPANT` | Get Participant | Return one participant's profile, referral totals, rank, referrer, and reward summaries by email or referral code. |
| `VIRAL_LOOPS_LIST_PARTICIPANT_REFERRALS` | List Participant Referrals | Return one participant's referrals by email or referral code, with explicit offset pagination. The provider's response fields and pagination metadata are preserved as returned. |
| `VIRAL_LOOPS_LOOK_UP_PARTICIPANTS` | Look Up Participants | Batch lookup exact participant and referrer identifiers, returning matching campaign records with explicit offset pagination. |
| `VIRAL_LOOPS_REGISTER_PARTICIPANT` | Register Participant | Register an email address in the connected campaign, optionally with a referrer and participant metadata. This creates persistent participant data; Viral Loops provides no API operation to delete it. |
| `VIRAL_LOOPS_SEARCH_PARTICIPANTS` | Search Participants | Search campaign participants by text, conversion status, and acquisition source, with explicit offset pagination. |
| `VIRAL_LOOPS_TRACK_PARTICIPANT_CONVERSION` | Track Participant Conversion | IRREVERSIBLE: Record a conversion event for one registered participant. This operation cannot be undone and may affect conversion counts, campaign automation, and rewards. It is available only for Milestone Referral, Altruistic Referral, Online to Offline, and Universal Referral campaign templates; other templates reject it. Identify the participant by exactly one email or referral code, and optionally attach a numeric conversion value. |
| `VIRAL_LOOPS_UPDATE_PARTICIPANT` | Update Participant | Update one participant's name, referral or conversion counts, or custom data, identified by email or referral code. Campaign emails and connected integration triggers default to off; when enabled, those side effects cannot be undone. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
```python
pip install composio composio_openai openai
```

```typescript
npm install @composio/core @composio/openai openai
```

#### Path 1, Step 2: Create a Composio session

Initialize Composio with the OpenAI Responses provider and create a session scoped to Viral Loops
```python
import json
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
client = OpenAI()

session = composio.create(user_id="your-user-id", toolkits=["viral_loops"])
tools = session.tools()
```

```typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["viral_loops"] });
const tools = await session.tools();
```

#### Path 1, Step 3: Run Viral Loops tools with your agent

Send a request, execute the Viral Loops tool calls through the session, and print the final answer
```python
response = client.responses.create(
    model="gpt-5.6-sol",
    tools=tools,
    input=[{"role": "user", "content": "List the top 10 participants on my Viral Loops referral campaign leaderboard"}],
)

while True:
    tool_calls = [o for o in response.output if o.type == "function_call"]
    if not tool_calls:
        break
    results = composio.provider.handle_tool_calls(response=response, session=session)
    response = client.responses.create(
        model="gpt-5.6-sol",
        tools=tools,
        previous_response_id=response.id,
        input=[
            {"type": "function_call_output", "call_id": call.call_id, "output": json.dumps(results[i])}
            for i, call in enumerate(tool_calls)
        ],
    )

print(response.output_text)
```

```typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "List the top 10 participants on my Viral Loops referral campaign leaderboard" }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and your agent framework
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
```

#### Path 2, Step 2: Create a session with MCP enabled

Create a session scoped to Viral Loops and read its MCP URL and headers
```python
from composio import Composio

composio = Composio()
session = composio.create(user_id="your-user-id", toolkits=["viral_loops"], mcp=True)
```

```typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["viral_loops"],
  mcp: true,
});
```

#### Path 2, Step 3: Connect your agent to the MCP server

Pass the session's MCP URL and headers to your agent and run a Viral Loops request
```python
import asyncio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, AssistantMessage, TextBlock

options = ClaudeAgentOptions(
    mcp_servers={
        "composio": {
            "type": "http",
            "url": session.mcp.url,
            "headers": session.mcp.headers,
        }
    },
    system_prompt="You are a helpful assistant with access to Viral Loops tools.",
    tools=[],
    allowed_tools=["mcp__composio__*"],
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query("List the top 10 participants on my Viral Loops referral campaign leaderboard")
        async for message in client.receive_response():
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if isinstance(block, TextBlock):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "List the top 10 participants on my Viral Loops referral campaign leaderboard",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
```

## Why Use Composio?

### 1. AI Native Viral Loops Integration

- Supports both Viral Loops MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable campaign, participant, referral, and reward actions
- Rich coverage for reading, writing, and querying your Viral Loops data without bespoke integration code

### 2. Managed Auth

- Securely store Viral Loops API keys without hard-coding secrets in your agent code
- Central place to manage, scope, and revoke Viral Loops access
- Per user and per environment credentials, so your staging and production agents stay cleanly separated

### 3. Agent Optimized Design

- Tools are tuned for AI agents, so campaign and referral tasks are easier for models to understand
- Comprehensive execution logs so you always know what ran, when, and on whose behalf
- Clear tool responses help agents recover from errors and keep referral workflows moving

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Viral Loops
- Scoped, least privilege access to Viral Loops campaign, participant, conversion, and reward data
- Full audit trail of agent actions to support review, compliance, and growth-team visibility

## Use Viral Loops with any AI Agent Framework

Choose a framework you want to connect Viral Loops with:

None listed.

## Related Toolkits

- [Metaads](https://composio.dev/toolkits/metaads) - Metaads is Meta's official Ads API that lets you manage, analyze, and optimize your Facebook and Instagram ad campaigns. Streamline ad operations and gain deeper insights with robust automation.
- [Adrapid](https://composio.dev/toolkits/adrapid) - Adrapid is a platform for rapid creation of digital marketing visuals using templates. It streamlines design workflows for banners, images, and HTML5 content with automation.
- [AdRoll](https://composio.dev/toolkits/adroll) - AdRoll is a digital marketing platform for managing advertising campaigns, audiences, and account-based marketing. It helps marketers retarget customers across channels and measure performance.
- [Adtraction](https://composio.dev/toolkits/adtraction) - Adtraction is an affiliate marketing platform for partner programs, tracking links, transactions, commissions, statistics, and payments. It helps advertisers and publishers manage performance marketing with clear reporting and payout workflows.
- [Adyntel](https://composio.dev/toolkits/adyntel) - Adyntel is an API that retrieves LinkedIn ads for any company using a domain or LinkedIn Page ID. Easily access competitive ad intelligence to power your marketing workflows.
- [Beaconstac](https://composio.dev/toolkits/beaconstac) - Beaconstac is a platform for creating and managing QR codes and proximity beacons. It helps businesses engage customers and track marketing performance with powerful analytics.
- [Bouncify](https://composio.dev/toolkits/bouncify) - Bouncify is an email verification service for single addresses and bulk lists. Use it to reduce bounces, protect sender reputation, and track verification credits.
- [Bulk Email Checker](https://composio.dev/toolkits/bulk_email_checker) - Bulk Email Checker is an email verification service for checking address validity, mailbox status, domains, and mail-server signals. It helps reduce bounces, spot risky emails, and keep outreach lists cleaner before you send.
- [Campaign cleaner](https://composio.dev/toolkits/campaign_cleaner) - Campaign cleaner is an email campaign optimization tool that boosts compatibility and deliverability across email clients. It helps marketers get better results by cleaning, enhancing, and ensuring high performance for every campaign.
- [Deadline funnel](https://composio.dev/toolkits/deadline_funnel) - Deadline Funnel lets you create personalized deadlines and timers for your marketing campaigns. It helps marketers boost conversions by adding authentic urgency to offers.
- [DeBounce](https://composio.dev/toolkits/debounce) - DeBounce is an email verification service for checking address validity, deliverability, and risk. It helps keep contact lists clean so your campaigns reach real inboxes.
- [Easy Email Verification](https://composio.dev/toolkits/easy_email_verification) - Easy Email Verification is an email validation service for checking single addresses and bulk lists. Use it to reduce bounces, clean contact data, and protect sender reputation.
- [Elastic Email](https://composio.dev/toolkits/elastic_email) - Elastic Email is an email delivery and marketing platform for transactional emails, campaigns, contacts, and reporting. Use it to send reliable emails, manage audiences, verify addresses, and track performance.
- [Fairing](https://composio.dev/toolkits/fairing) - Fairing is a post-purchase survey and attribution platform for ecommerce brands. It helps teams measure which marketing channels, campaigns, and customer touchpoints drive purchases.
- [GoDaddy MCP](https://composio.dev/toolkits/godaddy_mcp) - GoDaddy MCP is a domain discovery toolkit for checking availability and generating AI-powered name ideas. Use it to move from rough business keywords to practical domain options fast.
- [Google Ads](https://composio.dev/toolkits/googleads) - Google Ads is Google's online advertising platform for creating, managing, and optimizing digital campaigns. It helps businesses reach targeted customers and maximize return on ad spend.
- [Handwrite.io](https://composio.dev/toolkits/handwrite) - Handwrite.io is a direct mail service for creating physical handwritten card orders. It helps teams send personal cards with selectable handwriting, stationery, and tracking.
- [Inblog](https://composio.dev/toolkits/inblog) - Inblog is an AI-powered blogging platform for posts, authors, tags, redirects, design settings, analytics, and lead forms. Use it to manage SEO-focused content, measure performance, and capture blog leads in one place.
- [Instantly](https://composio.dev/toolkits/instantly) - Instantly is a platform for automating cold email outreach, managing leads, and optimizing deliverability. Get better results from email campaigns with minimal manual effort.
- [Invalid Bounce](https://composio.dev/toolkits/invalid_bounce) - Invalid Bounce is an email verification service with a bulk verification API. Use it to clean email lists, reduce bounces, and protect sender reputation.

## Frequently Asked Questions

### Do I need my own developer credentials to use Viral Loops with Composio?

Yes, Viral Loops requires you to configure your own API key. Once set up, Composio handles secure credential storage and API request handling for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
