# Discord Invite Parser (`rixin/discord-invite-parser`) Actor

Powerful Discord Invite Parser actor for Apify. Automatically extracts and validates Discord invite codes/URLs to fetch real-time guild data like name, total/online member counts, description, and vanity details. Perfect for community research and server monitoring.

- **URL**: https://apify.com/rixin/discord-invite-parser.md
- **Developed by:** [Rixin Sc](https://apify.com/rixin) (community)
- **Categories:** Integrations, Social media, Automation
- **Stats:** 95 total users, 4 monthly users, 95.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Discord Invite Parser

Fetches Discord server information from invite links. Supports various invite URL formats and returns structured server data including member counts, channel info, server features, and more.

### What does Discord Invite Parser do?

Discord Invite Parser extracts detailed information from Discord server invites. Simply provide invite links or codes, and the Actor returns comprehensive server data in a human-readable format.

**Key features:**

- Parse multiple Discord invite formats (discord.gg, discord.com/invite, discordapp.com/invite, or raw codes)
- Get server details: name, description, icon, banner, features
- Retrieve member counts: total members and online members
- Access channel information: name, type, ID
- View inviter details when available
- Check invite expiration status
- Human-readable output with descriptive enum values

### What data can you get from Discord invites?

| Category | Data Fields |
|----------|-------------|
| **Server Info** | Server name, description, ID, icon URL, banner URL, splash URL |
| **Server Stats** | Total members, online members, boost count |
| **Server Settings** | Verification level, NSFW level, features list, vanity URL |
| **Channel Info** | Channel name, ID, type (TEXT, VOICE, ANNOUNCEMENT, etc.) |
| **Inviter Info** | Username, display name, ID, avatar URL |
| **Invite Details** | Invite code, type (GUILD, GROUP\_DM, FRIEND), expiration date |

### How to use Discord Invite Parser

1. Create a free [Apify account](https://console.apify.com/sign-up)
2. Open [Discord Invite Parser](https://console.apify.com/actors)
3. Add Discord invite URLs or codes to the input
4. Click "Start" and wait for the data to be extracted
5. Download your data in JSON format

### Input

The Actor accepts the following input parameters:

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `invites` | array | Yes | - | List of Discord invite URLs or codes |

#### Supported invite formats

All of these formats are supported:

- `https://discord.gg/VhS6uNK49N`
- `https://discord.com/invite/VhS6uNK49N`
- `https://discordapp.com/invite/VhS6uNK49N`
- `discord.gg/VhS6uNK49N` (without protocol)
- `VhS6uNK49N` (just the invite code)

#### Example input

```json
{
    "invites": [
        "discord.gg/VhS6uNK49N",
        "https://discord.com/invite/razer",
        "python"
    ]
}
```

### Output

Results are stored in a dataset with human-readable field names and descriptive enum values instead of raw integers.

#### Example output

```json
{
    "inviteCode": "VhS6uNK49N",
    "inviteType": "GUILD",
    "inviteUrl": "https://discord.gg/VhS6uNK49N",
    "serverId": "123456789012345678",
    "serverName": "Example Server",
    "serverDescription": "Welcome to our community!",
    "serverIconUrl": "https://cdn.discordapp.com/icons/123456789012345678/abc123.png",
    "serverSplashUrl": null,
    "serverBannerUrl": "https://cdn.discordapp.com/banners/123456789012345678/def456.png",
    "serverFeatures": ["COMMUNITY", "DISCOVERABLE", "WELCOME_SCREEN_ENABLED"],
    "verificationLevel": "MEDIUM",
    "nsfwLevel": "DEFAULT",
    "vanityUrlCode": null,
    "boostCount": 7,
    "channelId": "123456789012345679",
    "channelName": "welcome",
    "channelType": "TEXT",
    "inviterId": "123456789012345680",
    "inviterUsername": "admin",
    "inviterDisplayName": "Server Admin",
    "inviterAvatarUrl": "https://cdn.discordapp.com/avatars/123456789012345680/ghi789.png",
    "onlineMemberCount": 1234,
    "totalMemberCount": 5678,
    "expiresAt": null,
    "inputUrl": "discord.gg/VhS6uNK49N",
    "fetchedAt": "2025-01-31T12:00:00.000Z"
}
```

#### Output field descriptions

##### Invite Information

| Field | Type | Description |
|-------|------|-------------|
| `inviteCode` | string | The unique invite code |
| `inviteType` | string | Type of invite: `GUILD`, `GROUP_DM`, or `FRIEND` |
| `inviteUrl` | string | Full Discord invite URL |

##### Server Information

| Field | Type | Description |
|-------|------|-------------|
| `serverId` | string | Discord snowflake ID of the server |
| `serverName` | string | Display name of the server |
| `serverDescription` | string | Server description (if set) |
| `serverIconUrl` | string | URL to server icon image |
| `serverSplashUrl` | string | URL to invite splash image |
| `serverBannerUrl` | string | URL to server banner image |
| `serverFeatures` | array | List of enabled features (e.g., COMMUNITY, VERIFIED) |
| `verificationLevel` | string | `NONE`, `LOW`, `MEDIUM`, `HIGH`, or `VERY_HIGH` |
| `nsfwLevel` | string | `DEFAULT`, `EXPLICIT`, `SAFE`, or `AGE_RESTRICTED` |
| `vanityUrlCode` | string | Custom vanity URL (e.g., "discord-developers") |
| `boostCount` | number | Number of active Nitro boosts |

##### Channel Information

| Field | Type | Description |
|-------|------|-------------|
| `channelId` | string | Discord snowflake ID of the channel |
| `channelName` | string | Name of the invite channel |
| `channelType` | string | `TEXT`, `VOICE`, `ANNOUNCEMENT`, `FORUM`, `STAGE`, etc. |

##### Inviter Information

| Field | Type | Description |
|-------|------|-------------|
| `inviterId` | string | Discord ID of invite creator |
| `inviterUsername` | string | Username of invite creator |
| `inviterDisplayName` | string | Display name of invite creator |
| `inviterAvatarUrl` | string | URL to inviter's avatar |

##### Statistics

| Field | Type | Description |
|-------|------|-------------|
| `onlineMemberCount` | number | Approximate online members |
| `totalMemberCount` | number | Approximate total members |
| `expiresAt` | string | ISO timestamp of expiration (null if permanent) |

##### Metadata

| Field | Type | Description |
|-------|------|-------------|
| `inputUrl` | string | Original input URL/code |
| `fetchedAt` | string | ISO timestamp of data retrieval |

### Verification level meanings

| Level | Description |
|-------|-------------|
| `NONE` | Unrestricted access |
| `LOW` | Must have a verified email |
| `MEDIUM` | Must be registered for 5+ minutes |
| `HIGH` | Must be a member for 10+ minutes |
| `VERY_HIGH` | Must have a verified phone number |

### Channel type meanings

| Type | Description |
|------|-------------|
| `TEXT` | Standard text channel |
| `VOICE` | Voice channel |
| `ANNOUNCEMENT` | News/announcement channel |
| `FORUM` | Forum channel for threaded discussions |
| `STAGE` | Stage channel for audio events |
| `CATEGORY` | Channel category/folder |

### Pricing

Discord Invite Parser uses the **pay-per-event** pricing model:

| Event | Cost |
|-------|------|
| Successful invite lookup | $0.002 |
| Invite not found or expired | $0.001 |

#### Cost examples

| Scenario | Cost |
|----------|------|
| 100 successful lookups | $0.20 |
| 1,000 successful lookups | $2.00 |
| 100 lookups (80 success, 20 not found) | $0.18 |

### Use cases

- **Community research**: Analyze Discord server statistics and features
- **Marketing**: Find and evaluate potential partner communities
- **Moderation tools**: Verify invite links before sharing
- **Analytics**: Track server growth by monitoring member counts over time
- **Directory services**: Build Discord server discovery platforms

### Integrations

You can integrate Discord Invite Parser with:

- **Zapier, Make, n8n**: Automate workflows
- **Google Sheets**: Export data directly to spreadsheets
- **Webhooks**: Get notified when runs complete
- **API**: Access programmatically via REST API or SDKs

### FAQ

#### Is it legal to use Discord Invite Parser?

Yes. This Actor only accesses publicly available invite information through Discord's official API. It does not scrape private data or bypass any access controls. The invite endpoint is public and does not require authentication.

#### What happens if an invite is invalid or expired?

The Actor will log a warning and include an error record in the output with the `error` field explaining the issue (e.g., "Invite not found or expired").

#### Are there rate limits?

Discord's API has rate limits. The Actor handles these automatically with retries, but if you're processing many invites quickly, you may encounter delays. Consider spacing out large batches.

#### Can I get private server information?

No. The Actor can only retrieve information that Discord makes publicly available through invite links. Private servers with disabled invites cannot be accessed.

#### How accurate are the member counts?

Member counts are approximations provided by Discord. They are generally accurate but may have slight delays in reflecting recent changes.

# Actor input Schema

## `invites` (type: `array`):

List of Discord invite URLs or codes to parse. Supported formats:

- https://discord.gg/CODE
- https://discord.com/invite/CODE
- https://discordapp.com/invite/CODE
- discord.gg/CODE (without protocol)
- CODE (just the invite code)

Each invite will be queried to retrieve server information.

## Actor input object example

```json
{
  "invites": [
    "discord.gg/VhS6uNK49N"
  ]
}
```

# Actor output Schema

## `overview` (type: `string`):

Table view of parsed Discord invite information showing server name, member counts, and channel details.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "invites": [
        "discord.gg/VhS6uNK49N"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("rixin/discord-invite-parser").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "invites": ["discord.gg/VhS6uNK49N"] }

# Run the Actor and wait for it to finish
run = client.actor("rixin/discord-invite-parser").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "invites": [
    "discord.gg/VhS6uNK49N"
  ]
}' |
apify call rixin/discord-invite-parser --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rixin/discord-invite-parser"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/3E1uXYALhpGeOIFfj/builds/WUSvJGO59wucnuqT5/openapi.json
