Character Limit Checker › Discord limits

Discord character limit checker

The 2,000 is the loosest limit Discord has. This page measures your text against all of them at once, including every embed field and the 6,000 character embed total, and turns anything over the limit into parts you can copy and send.

Try one:

Against the limit you picked

Paste something above and this fills in.

Split it into messages that will send

Nothing to split yet. When the text is over the limit, this is where it becomes parts you can copy one at a time.

Every Discord limit in one table

Your text measured against all of them at once, because the same paragraph is legal as a message and three times over the limit as a field value. Every number here is from Discord's own documentation.

Field Limit Yours Verdict Where it cuts

Two limits on this list are not about your text and cannot be checked from it: a message carries at most 10 rich embeds, and an embed carries at most 25 fields. They are in the sources table below so the list is complete.

Discord has one famous limit and about eight real ones

Everyone knows the 2,000. What catches people is that it is one entry in a list, and the rest of the list is stricter. Discord's API documentation puts message content at up to 2,000 characters, and then gives every part of a rich embed its own ceiling: 256 for a title, 4,096 for a description, 1,024 for a field value, 2,048 for footer text, 256 for a field name, 256 for an author name. On top of that, the sum of the title, description, field names, field values, footer text and author name across every embed on one message must not exceed 6,000 characters, and going over any of them comes back as a Bad Request rather than a truncated post.

Nitro moves one number and only one

Discord's Nitro page lists longer messages of up to 4,000 characters among the perks. That doubles the ceiling for what a person types in the box. It does nothing for embeds, and it does nothing for bots and webhooks: the API's content field stays at 2,000 whatever the account sending it pays for. A bot that posts a Nitro length message will get an error, not a longer message, which is why the selector above keeps the two apart.

Why splitting is the actual job

Knowing you are 640 characters over does not help much. What helps is a set of parts that will each send. The splitter above breaks on the largest boundary that fits, in order: a blank line first, then a single line break, then a space, and only then between two characters. It counts in the same unit the platform does, and it never cuts through a grapheme cluster, so an emoji or a Korean syllable is never left as half of itself at the end of a part.

Code blocks get one extra rule. A fence opened in one part and never closed swallows the rest of that message as code, so when a split lands inside a fence the splitter closes it at the end of the part and reopens it, with the same language tag, at the start of the next. The room for those extra backticks is reserved before the split, not after, so every part still comes in under the limit.

Where each number comes from

Every number on this page comes from Discord itself: the developer documentation for the message and embed fields, and Discord's own Nitro page for the 4,000 character message. Nothing here is a third party estimate.

Number Value Where it is published
Message content"Message contents (up to 2000 characters)" in the message object and in the create message parameters. Applies to bots and webhooks too. 2,000 characters Discord developer docs, Message resourcethe platform's own documentation states it
Message content with Nitro"Longer messages up to 4,000 characters", listed among the Nitro perks. It does not change the API field limit. 4,000 characters Discord, Nitro perksthe platform's own documentation states it
Embed title and field name and author namePer field limits on the embed object. 256 characters each Discord developer docs, Embed limitsthe platform's own documentation states it
Embed descriptionThe largest single embed field. 4,096 characters Discord developer docs, Embed limitsthe platform's own documentation states it
Embed field valueWith at most 25 field objects on one embed. 1,024 characters Discord developer docs, Embed limitsthe platform's own documentation states it
Embed footer text 2,048 characters Discord developer docs, Embed limitsthe platform's own documentation states it
All embed text on one message"the combined sum of characters in all title, description, field.name, field.value, footer.text, and author.name fields across all embeds attached to a message must not exceed 6000 characters." 6,000 characters Discord developer docs, Embed limitsthe platform's own documentation states it
Embeds per message and fields per embed"Up to 10 rich embeds (up to 6000 characters)", and up to 25 field objects on an embed. Neither can be checked from a block of text. 10 embeds, 25 fields Discord developer docs, Create Messagethe platform's own documentation states it

Questions people actually ask

What is the Discord character limit?

Two thousand characters for message content, stated in Discord's API documentation as the limit on the content field. Discord's Nitro page raises that to 4,000 for people typing in the client. Bots and webhooks stay at 2,000 whatever the account pays for, because the limit sits on the API field rather than on the sender.

Why does this discord character limit checker show eight numbers?

Because the message limit is the loosest one you are likely to meet. An embed title stops at 256, a field name at 256, a field value at 1,024, footer text at 2,048 and a description at 4,096, and the title, description, field names, field values, footer text and author name across every embed on one message have to add up to 6,000 or less. Going over any of them returns a Bad Request, so a checker that only knows about 2,000 will pass text that a bot cannot send.

How should a message over the limit be split?

On the largest boundary that still fits: a blank line first, then a line break, then a space, and only between two characters as a last resort. The splitter here does that, counts in the same unit the platform does, never cuts through a grapheme cluster, and closes an open code fence at the end of a part before reopening it with the same language tag at the start of the next, so a code block cannot swallow the rest of the message.