> ## Documentation Index
> Fetch the complete documentation index at: https://docs.argalabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Discord

> Discord Scenario seeding parameters, nested fields, and examples

Use `discord` in `twins` and put this configuration under `seed_config.discord`.

Discord server with guilds, text channels, and bot-authored messages.

## Example seed

This is the complete Scenario request body for [creating a Scenario](https://docs.argalabs.com/api-reference/post-create-a-scenario.md). You can also import it with `arga test-runner scenarios import --file scenario.json`.

```json theme={null}
{
  "name": "Discord eval fixture",
  "twins": [
    "discord"
  ],
  "seed_config": {
    "discord": {
      "guilds": [
        {
          "name": "Server Name",
          "channels": [
            {
              "name": "channel-name",
              "messages": [
                {
                  "content": "message text"
                }
              ]
            }
          ]
        }
      ]
    }
  }
}
```

## Parameters

The following fields belong directly inside `seed_config.discord`. Required nested fields are marked in their tables. Provider-native objects can contain service-specific fields beyond the representative record shapes below.

| Parameter | Type | Description |
| - | - | - |
| `guilds` | `object[]` | Guilds fixtures in provider-native format. |

## Seeding behavior

Use one guild per Scenario. The current adapter resets the twin for each guild entry, so later entries replace earlier guilds. Messages are seeded as the configured bot; message author overrides are not applied.

## Resource fields

These tables describe the record shapes used by the example. Keep native field names and casing. Map keys such as property names, IDs, and metadata keys are supplied by your fixture.

### `guilds[]`

| Parameter | Type | Description |
| - | - | - |
| `name` | `string` | Human-readable name. |
| `channels` | `object[]` | Channels fixtures in provider-native format. |

### `guilds[].channels[]`

| Parameter | Type | Description |
| - | - | - |
| `name` | `string` | Human-readable name. |
| `messages` | `object[]` | Messages to create in the twin. |

### `guilds[].channels[].messages[]`

| Parameter | Type | Description |
| - | - | - |
| `content` | `string` | Text content. |

## API coverage and limitations

**Twin name:** `discord`

**Supports**

* Discord API v10 routes for guilds, channels, messages, reactions, threads, members, roles, bans, invites, webhooks, emojis, stickers, scheduled events, stage instances, auto-moderation rules, soundboard sounds, guild templates, and user endpoints.
* Bot-token authentication, deterministic seeding, admin state inspection, event delivery, replay, and webhook subscriptions.
* Message creation with `multipart/form-data` file uploads using `files[n]` or `file` parts plus `payload_json` or `content`.
* Configurable server boost levels for upload-size and emoji-slot limits.

**Known limitations**

* Channels, roles, members, and messages start empty unless seeded or created through API calls.
* Behavior focuses on REST API compatibility and event delivery; real Discord gateway/websocket behavior is not the primary fidelity target.
* Unsupported or malformed request shapes return Discord-style validation errors rather than silently succeeding.

**MCP tools:** `get_twin_catalog`, `provision_twins`, `start_url_validation`, `get_validation_results`.

See [Scenario seeding](https://docs.argalabs.com/twins/seeding.md) for saving, provisioning, and resetting fixtures.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.