---
title: "Create a Discord public thread"
method: POST
path: "/v1/discord/channels/{channelId}/threads"
tags: ["Discord"]
---

# Create a Discord public thread

`POST /v1/discord/channels/{channelId}/threads`

## Request

- Base URL: `https://zernio.com/api`
- URL: `https://zernio.com/api/v1/discord/channels/{channelId}/threads`
- Auth: HTTP bearer

Creates a public thread in a channel. Pass `messageId` to start the thread from an
existing message, or omit it to create a standalone thread.

Threads created here are always public. Requires the bot to hold Create Public
Threads, which the Zernio bot requests at install time.

## Path parameters

- `channelId` string, required

## Query parameters

- `accountId` string, required

## Request body

- object
  - `name` string, required: Thread name
  - `messageId` string: Optional message snowflake to start the thread from. Omit for a standalone thread.
  - `autoArchiveDuration` 60 | 1440 | 4320 | 10080: Minutes of inactivity before the thread auto-archives. Discord accepts only these four values.

## Response `200`

Thread created.

- object
  - `data` object
    - `id` string: Thread snowflake ID
    - `name` string

## Other responses

- `400`: Invalid accountId, channelId, messageId, name, or autoArchiveDuration.
- `401`: Missing or invalid API key. `code` is `missing_credentials` when no Authorization header was sent and `invalid_credentials` when the key is unknown, revoked or expired.
- `403`: Discord refused the action (bot lacks Create Public Threads).
- `404`: Discord account not found, not accessible, or not bound to this channel's guild.
- `502`: Discord was unreachable or returned an unclassified error.

## Changes

- **2026-10-06** `f8c8f34fb41a`: 1 warning
  - added the new `account` enum value to the `details/budgetScope` response property for the response status `401`
- **2026-10-02** `d556591af3f6`: 7 info
  - added the optional property `code` to the response with the `401` status
  - added the optional property `details` to the response with the `401` status
  - added the optional property `docUrl` to the response with the `401` status
  - added the optional property `param` to the response with the `401` status
  - …3 more

[Operation history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/discord/channels/:channelId/threads/post.md)

---

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