---
title: "Create channel invite"
method: POST
path: "/channels/{channel_id}/invites"
tags: ["Invites"]
---

# Create channel invite

`POST /channels/{channel_id}/invites`

Creates a new invite for the specified channel with optional parameters such as maximum age, maximum uses, and temporary membership settings. The authenticated user must have permission to create invites for the channel. Returns the created invite with full metadata including usage statistics.

## Path parameters

- `channel_id` union, required
  - string, snowflake
  - integer

## Request body

- ChannelInviteCreateRequest
  - `max_uses` integer, nullable — Maximum number of times this invite can be used (0 for unlimited)
  - `max_age` integer, nullable — Duration in seconds before the invite expires (0 for never)
  - `unique` boolean, nullable — Whether to create a new unique invite or reuse an existing one
  - `temporary` boolean, nullable — Whether members that joined via this invite should be kicked after disconnecting

## Response `200`

Success

- union
  - GuildInviteMetadataResponse
    - `code` string, required — The unique invite code
    - `inviter` UserPartialResponse
      - `id` string, snowflake, required
      - `username` string, required — The username of the user, not unique across the platform
      - `discriminator` string, required — The four-digit discriminator tag of the user
      - `global_name` string, nullable, required — The display name of the user, if set
      - `avatar` string, nullable, required — The hash of the user avatar image
      - `avatar_color` integer, required
      - `bot` boolean — Whether the user is a bot account
      - `system` boolean — Whether the user is an official system user
      - `flags` integer, required — The public flags on the user account
      - `mention_flags` 0 | 1 | 2 — Reply mention preference
    - `expires_at` string, date-time, nullable — ISO8601 timestamp of when the invite expires
    - `temporary` boolean, required — Whether the invite grants temporary membership
    - `type` 0, required — The type of invite (guild)
    - `guild` GuildPartialResponse, required
      - `id` string, snowflake, required
      - `name` string, required — The name of the guild
      - `icon` string, nullable — The hash of the guild icon
      - `banner` string, nullable — The hash of the guild banner
      - `banner_width` integer
      - `banner_height` integer
      - `splash` string, nullable — The hash of the guild splash screen
      - `splash_width` integer
      - `splash_height` integer
      - `splash_card_alignment` 0 | 1 | 2, required — The alignment of the splash card
      - `embed_splash` string, nullable — The hash of the embedded invite splash
      - `embed_splash_width` integer
      - `embed_splash_height` integer
      - `features` GuildFeatureSchema[], required — Array of guild feature flags
    - `channel` ChannelPartialResponse, required
      - `id` string, snowflake, required
      - `name` string, nullable — The name of the channel
      - `type` 0 | 1 | 2 | 3 | 4 | 998 | 999, required — The type of the channel
      - `recipients` object[] — The recipients of the DM channel
        - `username` string, required — The username of the recipient
    - `member_count` integer, required
    - `presence_count` integer, required
    - `created_at` string, date-time, required — ISO8601 timestamp of when the invite was created
    - `uses` integer, required
    - `max_uses` integer, required
    - `max_age` integer, required
  - GroupDmInviteMetadataResponse
    - `code` string, required — The unique invite code
    - `inviter` UserPartialResponse
      - `id` string, snowflake, required
      - `username` string, required — The username of the user, not unique across the platform
      - `discriminator` string, required — The four-digit discriminator tag of the user
      - `global_name` string, nullable, required — The display name of the user, if set
      - `avatar` string, nullable, required — The hash of the user avatar image
      - `avatar_color` integer, required
      - `bot` boolean — Whether the user is a bot account
      - `system` boolean — Whether the user is an official system user
      - `flags` integer, required — The public flags on the user account
      - `mention_flags` 0 | 1 | 2 — Reply mention preference
    - `expires_at` string, date-time, nullable — ISO8601 timestamp of when the invite expires
    - `temporary` boolean, required — Whether the invite grants temporary membership
    - `type` 1, required — The type of invite (group DM)
    - `channel` ChannelPartialResponse, required
      - `id` string, snowflake, required
      - `name` string, nullable — The name of the channel
      - `type` 0 | 1 | 2 | 3 | 4 | 998 | 999, required — The type of the channel
      - `recipients` object[] — The recipients of the DM channel
        - `username` string, required — The username of the recipient
    - `member_count` integer, required
    - `created_at` string, date-time, required — ISO8601 timestamp of when the invite was created
    - `uses` integer, required
    - `max_uses` integer, required

## Other responses

- `400` — Bad Request - The request was malformed or contained invalid data
- `401` — Unauthorized - Authentication is required or the token is invalid
- `403` — Forbidden - You do not have permission to perform this action
- `429` — Too Many Requests - You are being rate limited
- `500` — Internal Server Error - An unexpected error occurred

## Changes

> 9 revisions in range; 1 not diffed.

- **2026-09-06** `a52a2cf49d9b` — 32 warning, 200 info
  - added the new `IP_BAN_DECLINED` enum value to the `code` response property for the response status `400`
  - added the new `IP_BAN_DECLINED` enum value to the `code` response property for the response status `401`
  - added the new `IP_BAN_DECLINED` enum value to the `code` response property for the response status `403`
  - added the new `IP_BAN_DECLINED` enum value to the `code` response property for the response status `500`
  - …228 more
  - …this revision’s changelog is incomplete
- **2026-09-05** `4dbb738a3e22` — 4 info
  - removed the `NSFW_EMOJI_STICKER_BLOCKED` enum value from the `code` response property for the response status `400`
  - removed the `NSFW_EMOJI_STICKER_BLOCKED` enum value from the `code` response property for the response status `401`
  - removed the `NSFW_EMOJI_STICKER_BLOCKED` enum value from the `code` response property for the response status `403`
  - removed the `NSFW_EMOJI_STICKER_BLOCKED` enum value from the `code` response property for the response status `500`
- …earlier changes not shown

[Full history](https://skmtc.dev/fluxer/apis/fluxer-api/changes/channels/:channel_id/invites/post.md)

---

[API](https://skmtc.dev/fluxer/apis/fluxer-api.md) · [All operations](https://skmtc.dev/fluxer/apis/fluxer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fluxer/apis/fluxer-api/revisions/964e23cbdfa5?raw)
