> ## Documentation Index
> Fetch the complete documentation index at: https://discord-platform-username.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Invite Resource

export const Route = ({method, children}) => {
  return <div className="MDXRoute">
      <span className={"verb" + " " + method.toLowerCase()}>{method}</span>
      <span className="url">{children}</span>
    </div>;
};

export const ManualAnchor = ({id}) => {
  return <div className="MDXManualAnchor" id={id}></div>;
};

### Invite Object

Represents a code that when used, adds a user to a guild or group DM channel.

<ManualAnchor id="invite-object-invite-structure" />

###### Invite Structure

| Field                         | Type                                                                                                     | Description                                                                                                        |
| ----------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| type                          | integer                                                                                                  | the [type of invite](/developers/resources/invite#invite-object-invite-types)                                      |
| code                          | string                                                                                                   | the invite code (unique ID)                                                                                        |
| guild?                        | partial [guild](/developers/resources/guild#guild-object) object                                         | the guild this invite is for                                                                                       |
| channel                       | ?partial [channel](/developers/resources/channel#channel-object) object                                  | the channel this invite is for                                                                                     |
| inviter?                      | [user](/developers/resources/user#user-object) object                                                    | the user who created the invite                                                                                    |
| target\_type?                 | integer                                                                                                  | the [type of target](/developers/resources/invite#invite-object-invite-target-types) for this voice channel invite |
| target\_user?                 | [user](/developers/resources/user#user-object) object                                                    | the user whose stream to display for this voice channel stream invite                                              |
| target\_application?          | partial [application](/developers/resources/application#application-object) object                       | the embedded application to open for this voice channel embedded application invite                                |
| approximate\_presence\_count? | integer                                                                                                  | approximate count of online members, returned from the `GET /invites/<code>` endpoint when `with_counts` is `true` |
| approximate\_member\_count?   | integer                                                                                                  | approximate count of total members, returned from the `GET /invites/<code>` endpoint when `with_counts` is `true`  |
| expires\_at                   | ?ISO8601 timestamp                                                                                       | the expiration date of this invite                                                                                 |
| guild\_scheduled\_event?      | [guild scheduled event](/developers/resources/guild-scheduled-event#guild-scheduled-event-object) object | guild scheduled event data, only included if `guild_scheduled_event_id` contains a valid guild scheduled event id  |
| flags?                        | integer                                                                                                  | [guild invite flags](/developers/resources/invite#invite-object-guild-invite-flags) for guild invites              |
| roles?\*                      | array of partial [role](/developers/topics/permissions#role-object) objects                              | the roles assigned to the user upon accepting the invite.                                                          |

\* This is a partial role object that only contains `id`, `name`, `position`, `color`, `colors`, `icon`, and `unicode_emoji`.

<ManualAnchor id="invite-object-invite-types" />

###### Invite Types

| Type      | Value |
| --------- | ----- |
| GUILD     | 0     |
| GROUP\_DM | 1     |
| FRIEND    | 2     |

<ManualAnchor id="invite-object-invite-target-types" />

###### Invite Target Types

| Type                  | Value |
| --------------------- | ----- |
| STREAM                | 1     |
| EMBEDDED\_APPLICATION | 2     |

<ManualAnchor id="invite-object-guild-invite-flags" />

###### Guild Invite Flags

| Flag              | Value    | Description                                       |
| ----------------- | -------- | ------------------------------------------------- |
| IS\_GUEST\_INVITE | `1 << 0` | this invite is a guest invite for a voice channel |

<ManualAnchor id="invite-object-example-invite-object" />

###### Example Invite Object

```json theme={null}
{
  "type": 0,
  "code": "0vCdhLbwjZZTWZLD",
  "guild": {
    "id": "165176875973476352",
    "name": "CS:GO Fraggers Only",
    "splash": null,
    "banner": null,
    "description": "Very good description",
    "icon": null,
    "features": ["NEWS", "DISCOVERABLE"],
    "verification_level": 2,
    "vanity_url_code": null,
    "nsfw_level": 0,
    "premium_subscription_count": 5
  },
  "channel": {
    "id": "165176875973476352",
    "name": "illuminati",
    "type": 0
  },
  "inviter": {
    "id": "115590097100865541",
    "username": "speed",
    "avatar": "deadbeef",
    "discriminator": "7653",
    "public_flags": 131328
  },
  "target_type": 1,
  "target_user": {
    "id": "165176875973476352",
    "username": "bob",
    "avatar": "deadbeef",
    "discriminator": "1234",
    "public_flags": 64
  }
}
```

### Invite Metadata Object

Extra information about an invite, will extend the [invite](/developers/resources/invite#invite-object) object.

<ManualAnchor id="invite-metadata-object-invite-metadata-structure" />

###### Invite Metadata Structure

| Field       | Type              | Description                                          |
| ----------- | ----------------- | ---------------------------------------------------- |
| uses        | integer           | number of times this invite has been used            |
| max\_uses   | integer           | max number of times this invite can be used          |
| max\_age    | integer           | duration (in seconds) after which the invite expires |
| temporary   | boolean           | whether this invite only grants temporary membership |
| created\_at | ISO8601 timestamp | when this invite was created                         |

<ManualAnchor id="invite-metadata-object-example-invite-metadata" />

###### Example Invite Metadata

```json theme={null}
{
  "uses": 0,
  "max_uses": 0,
  "max_age": 0,
  "temporary": false,
  "created_at": "2016-03-31T19:15:39.954000+00:00"
}
```

### Invite Stage Instance Object

<Warning>
  This is deprecated.
</Warning>

<ManualAnchor id="invite-stage-instance-object-invite-stage-instance-structure" />

###### Invite Stage Instance Structure

| Field              | Type                                                                                     | Description                                        |
| ------------------ | ---------------------------------------------------------------------------------------- | -------------------------------------------------- |
| members            | array of partial [guild member](/developers/resources/guild#guild-member-object) objects | the members speaking in the Stage                  |
| participant\_count | integer                                                                                  | the number of users in the Stage                   |
| speaker\_count     | integer                                                                                  | the number of users speaking in the Stage          |
| topic              | string                                                                                   | the topic of the Stage instance (1-120 characters) |

<ManualAnchor id="invite-stage-instance-object-example-invite-stage-instance" />

###### Example Invite Stage Instance

```json theme={null}
{
  "topic": "The debate is over: diet is better than regular",
  "participant_count": 200,
  "speaker_count": 5 ,
  "members": [
    {
      "roles": [],
      "nick": "NOT API SUPPORT",
      "avatar": null,
      "premium_since": null,
      "joined_at": "2015-04-26T06:26:56.936000+00:00",
      "pending": false,
      "user": {}
    }
  ]
}
```

## Get Invite

<Route method="GET">/invites/[\{invite.code}](/developers/resources/invite#invite-object)</Route>

Returns an [invite](/developers/resources/invite#invite-object) object for the given code.

<ManualAnchor id="get-invite-query-string-params" />

###### Query String Params

| Field                        | Type                                                   | Description                                                 |
| ---------------------------- | ------------------------------------------------------ | ----------------------------------------------------------- |
| with\_counts?                | [boolean](/developers/reference#boolean-query-strings) | whether the invite should contain approximate member counts |
| guild\_scheduled\_event\_id? | snowflake                                              | the guild scheduled event to include with the invite        |

## Delete Invite

<Route method="DELETE">/invites/[\{invite.code}](/developers/resources/invite#invite-object)</Route>

Delete an invite. Requires the `MANAGE_CHANNELS` permission on the channel this invite belongs to, or `MANAGE_GUILD` to remove any invite across the guild. Returns an [invite](/developers/resources/invite#invite-object) object on success. Fires an [Invite Delete](/developers/events/gateway-events#invite-delete) Gateway event.

<Info>
  This endpoint supports the `X-Audit-Log-Reason` header.
</Info>

## Get Target Users

<Route method="GET">/invites/[\{invite.code}](/developers/resources/invite#invite-object)/target-users</Route>

Gets the users allowed to see and accept this invite. Response is a CSV file with the header `user_id` and each user ID from the original file passed to [invite create](/developers/resources/channel#create-channel-invite) on its own line. Requires the caller to be the inviter, or have `MANAGE_GUILD` permission, or have `VIEW_AUDIT_LOG` permission.

## Update Target Users

<Route method="PUT">/invites/[\{invite.code}](/developers/resources/invite#invite-object)/target-users</Route>

Updates the users allowed to see and accept this invite. Uploading a file with invalid user IDs will result in a 400 with the invalid IDs described. Requires the caller to be the inviter or have the `MANAGE_GUILD` permission.

<ManualAnchor id="update-target-users-form-params" />

###### Form Params

| Field               | Type | Description                                                                              |
| ------------------- | ---- | ---------------------------------------------------------------------------------------- |
| target\_users\_file | file | a csv file with a single column of user IDs for all the users able to accept this invite |

<ManualAnchor id="update-target-users-example-error-response" />

###### Example Error Response

```json theme={null}
{
  "target_users_file": [
    "Line 5: invalid user ID - must be a valid Discord snowflake",
    "Line 6: invalid user ID format"
  ]
}
```

## Get Target Users Job Status

<Route method="GET">/invites/[\{invite.code}](/developers/resources/invite#invite-object)/target-users/job-status</Route>

Processing target users from a CSV when creating or updating an invite is done asynchronously. This endpoint allows you to check the status of that job. Requires the caller to be the inviter, or have `MANAGE_GUILD` permission, or have `VIEW_AUDIT_LOG` permission.

<ManualAnchor id="get-target-users-job-status-example-response" />

###### Example Response

```json theme={null}
{
  "status": 3,
  "total_users": 100,
  "processed_users": 41,
  "created_at": "2025-01-08T12:00:00.000000+00:00",
  "completed_at": null,
  "error_message": "Failed to parse CSV file"
}
```

<ManualAnchor id="get-target-users-job-status-status-codes" />

###### Status Codes

| Code | Name        | Description                                                     |
| ---- | ----------- | --------------------------------------------------------------- |
| 0    | UNSPECIFIED | The default value.                                              |
| 1    | PROCESSING  | The job is still being processed.                               |
| 2    | COMPLETED   | The job has been completed successfully.                        |
| 3    | FAILED      | The job has failed, see `error_message` field for more details. |
