> ## Documentation Index
> Fetch the complete documentation index at: https://discord-markm-docs-lobby-membership-disconnect.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 on its own line. Requires the caller to be the inviter, or have `MANAGE_GUILD` permission, or have `VIEW_AUDIT_LOG` permission.

## Add Target User

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

Adds a target user to an existing invite. Requires the caller to be the inviter or have the `MANAGE_GUILD` permission. Returns a 204 empty response on success.

## Remove Target User

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

Removes a target user from an existing invite. Requires the caller to be the inviter or have the `MANAGE_GUILD` permission. Returns a 204 empty response on success.

## 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"
  ]
}
```

## Bulk-Add Target Users

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

Adds multiple target users to an existing invite. Requires the caller to be the inviter or have the `MANAGE_GUILD` permission. Returns a 204 empty response on success.

<ManualAnchor id="bulk-add-target-users-json-params" />

###### JSON Params

| Field | Type | Description |
| - | - | - |
| user\_ids | array of snowflakes | the IDs of users to add, max of 1000 users |

## Bulk-Delete Target Users

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

Removes multiple target users from an existing invite. Requires the caller to be the inviter or have the `MANAGE_GUILD` permission. Returns a 204 empty response on success.

<ManualAnchor id="bulk-delete-target-users-json-params" />

###### JSON Params

| Field | Type | Description |
| - | - | - |
| user\_ids | array of snowflakes | the IDs of users to remove, max of 1000 users |

## 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. |
