Limits
Every limit on one page. If Discord returns a 400 error, you most likely exceeded one of them.
Message
Section titled “Message”| What | Limit |
|---|---|
| Total components (including nested ones) | 40 |
| Top-level components | No separate limit (only the 40 total) |
custom_id |
1-100 characters, unique in the message |
id |
32-bit integer, unique in the message |
Per component
Section titled “Per component”| Component | Field | Limit |
|---|---|---|
| Action Row | components |
1-5 buttons or 1 select |
| Section | components |
1-3 Text Display |
| Section | accessory |
1 (Button or Thumbnail) |
| Container | accent_color |
0x000000 - 0xFFFFFF |
| Thumbnail | description |
1024 characters |
| Media Gallery | items |
1-10 |
| Media Gallery | items[].description |
1024 characters |
| Separator | spacing |
1 or 2 |
| Button | label |
80 characters |
| Button | url |
512 characters |
| Select | placeholder |
150 characters |
| Select | min_values / max_values |
0-25 / 1-25 |
| String Select | options |
1-25 |
| Select option | label, value, description |
100 characters each |
Modals
Section titled “Modals”| Component | Field | Limit |
|---|---|---|
| Modal | title |
45 characters |
| Modal | components |
1-5 |
| Label | label |
45 characters |
| Label | description |
100 characters |
| Text Input | min_length / max_length |
0-4000 / 1-4000 |
| Text Input | value |
4000 characters |
| Text Input | placeholder |
100 characters |
| File Upload | min_values / max_values |
0-10 / 1-10 |
| File Upload | file_types |
Up to 10 filters |
| Radio Group | options |
2-10 |
| Checkbox Group | options |
1-10 |
| Checkbox Group | min_values / max_values |
0-10 / 1-10 |
Interaction timing
Section titled “Interaction timing”| What | Limit |
|---|---|
| First response to an interaction | 3 seconds |
| Token validity (edits, follow-ups) | 15 minutes |
| Follow-ups for user-install-only apps | 5 per interaction |