post
/users/@me/channelsCreate private channel
Creates a new private channel (direct message) between the current user and one or more recipients. Group DM creation requires CAPTCHA verification. Returns the newly created channel object.
create_private_channel
Request body
application/json
json
{
"type": "object",
"properties": {
"recipient_id": {
"$ref": "#/components/schemas/SnowflakeType"
},
"recipients": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SnowflakeType"
},
"maxItems": 49,
"description": "Array of user IDs for creating a group DM (max 49)"
}
}
}Responses
200
Success
json
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$",
"description": "The unique identifier (snowflake) for this channel"
},
"guild_id": {
"$ref": "#/components/schemas/SnowflakeType"
},
"name": {
"type": "string",
"description": "The name of the channel"
},
"topic": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The topic of the channel"
},
"url": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
],
"description": "The URL associated with the channel"
},
"icon": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The icon hash of the channel (for group DMs)"
},
"owner_id": {
"anyOf": [
{
"$ref": "#/components/schemas/SnowflakeType"
},
{
"type": "null"
}
],
"description": "The ID of the owner of the channel (for group DMs)"
},
"type": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647,
"format": "int32",
"description": "The type of the channel"
},
"position": {
"$ref": "#/components/schemas/Int32Type"
},
"parent_id": {
"anyOf": [
{
"$ref": "#/components/schemas/SnowflakeType"
},
{
"type": "null"
}
],
"description": "The ID of the parent category for this channel"
},
"bitrate": {
"anyOf": [
{
"$ref": "#/components/schemas/Int32Type"
},
{
"type": "null"
}
],
"description": "The bitrate of the voice channel in bits per second"
},
"user_limit": {
"anyOf": [
{
"$ref": "#/components/schemas/Int32Type"
},
{
"type": "null"
}
],
"description": "The maximum number of users allowed in the voice channel"
},
"voice_connection_limit": {
"anyOf": [
{
"$ref": "#/components/schemas/Int32Type"
},
{
"type": "null"
}
],
"description": "The maximum active voice connections allowed per user in the voice channel"
},
"rtc_region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The voice region ID for the voice channel"
},
"last_message_id": {
"anyOf": [
{
"$ref": "#/components/schemas/SnowflakeType"
},
{
"type": "null"
}
],
"description": "The ID of the last message sent in this channel"
},
"last_pin_timestamp": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"description": "The ISO 8601 timestamp of when the last pinned message was pinned"
},
"permission_overwrites": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChannelOverwriteResponse"
},
"maxItems": 500,
"description": "The permission overwrites for this channel"
},
"recipients": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UserPartialResponse"
},
"maxItems": 49,
"description": "The recipients of the DM channel"
},
"nsfw": {
"type": "boolean",
"description": "Whether the channel is marked as NSFW (effective value, walking channel → category → guild)"
},
"nsfw_override": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Per-channel adult-content override; null means inherit from parent category and then guild. Categories use this same field as their own override."
},
"content_warning_level": {
"$ref": "#/components/schemas/ContentWarningLevel"
},
"content_warning_text": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
],
"description": "Custom channel content warning text (max 200 characters); null inherits from parent or guild"
},
"rate_limit_per_user": {
"$ref": "#/components/schemas/Int32Type"
},
"nicks": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Custom nicknames for users in this channel (for group DMs)"
}
},
"required": [
"id",
"type"
]
}400
Bad Request - The request was malformed or contained invalid data
json
{
"type": "object",
"properties": {
"code": {
"$ref": "#/components/schemas/APIErrorCode"
},
"message": {
"type": "string",
"description": "Human-readable error message"
},
"errors": {
"type": "array",
"description": "Field-specific validation errors",
"items": {
"$ref": "#/components/schemas/ValidationErrorItem"
}
}
},
"required": [
"code",
"message"
]
}401
Unauthorized - Authentication is required or the token is invalid
json
{
"type": "object",
"properties": {
"code": {
"$ref": "#/components/schemas/APIErrorCode"
},
"message": {
"type": "string",
"description": "Human-readable error message"
},
"errors": {
"type": "array",
"description": "Field-specific validation errors",
"items": {
"$ref": "#/components/schemas/ValidationErrorItem"
}
}
},
"required": [
"code",
"message"
]
}403
Forbidden - You do not have permission to perform this action
json
{
"type": "object",
"properties": {
"code": {
"$ref": "#/components/schemas/APIErrorCode"
},
"message": {
"type": "string",
"description": "Human-readable error message"
},
"errors": {
"type": "array",
"description": "Field-specific validation errors",
"items": {
"$ref": "#/components/schemas/ValidationErrorItem"
}
}
},
"required": [
"code",
"message"
]
}429
Too Many Requests - You are being rate limited
json
{
"type": "object",
"properties": {
"code": {
"type": "string",
"enum": [
"RATE_LIMITED"
]
},
"message": {
"type": "string"
},
"retry_after": {
"type": "number",
"description": "Seconds to wait before retrying"
},
"global": {
"type": "boolean",
"description": "Whether this is a global rate limit"
}
},
"required": [
"code",
"message",
"retry_after"
]
}500
Internal Server Error - An unexpected error occurred
json
{
"type": "object",
"properties": {
"code": {
"$ref": "#/components/schemas/APIErrorCode"
},
"message": {
"type": "string",
"description": "Human-readable error message"
},
"errors": {
"type": "array",
"description": "Field-specific validation errors",
"items": {
"$ref": "#/components/schemas/ValidationErrorItem"
}
}
},
"required": [
"code",
"message"
]
}