---
title: "Pin a Discord message"
method: PUT
path: "/v1/discord/channels/{channelId}/pins/{messageId}"
tags: ["Discord"]
---

# Pin a Discord message

`PUT /v1/discord/channels/{channelId}/pins/{messageId}`

## Request

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

Pin a specific message in a channel. Path shape mirrors Discord's own
API (`PUT /channels/{cid}/pins/{mid}`).

Idempotent: re-pinning an already-pinned message is a 204 no-op.

Constraints:
  - Bot needs MANAGE_MESSAGES in the channel.
  - 50-pin cap per channel: hitting it returns 400 (Discord-side).
    Caller should unpin one first.

## Path parameters

- `channelId` string, required
- `messageId` string, required

## Query parameters

- `accountId` string, required

## Response `200`

Message pinned (or was already pinned, idempotent).

- object
  - `success` boolean
  - `operation` 'message_pinned'
  - `channelId` string
  - `messageId` string

## Other responses

- `400`: Validation error or pin cap (50) reached.
- `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.
- `404`: Discord account not found.
- `502`: Bot lacks MANAGE_MESSAGES in the channel.

## 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/pins/:messageId/put.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)
