---
title: "Grant OAuth2 consent"
method: POST
path: "/oauth2/authorize/consent"
tags: ["OAuth2"]
---

# Grant OAuth2 consent

`POST /oauth2/authorize/consent`

User grants permission for an OAuth2 application to access authorized scopes. Used in authorization code flow to complete the authorization process after user review.

## Request body

- AuthorizeConsentRequest
  - `response_type` string — The OAuth2 response type
  - `client_id` union, required
    - string, snowflake
    - integer
  - `redirect_uri` string — The URI to redirect to after authorization
  - `scope` string, required — The space-separated list of requested scopes
  - `state` string — A random string for CSRF protection
  - `guild_id` union
    - string, snowflake
    - integer
  - `channel_id` union
    - string, snowflake
    - integer
  - `permissions` string — The bot permissions to request
  - `code_challenge` string — The PKCE code challenge
  - `code_challenge_method` 'S256' | 'plain' — The PKCE code challenge method

## Response `200`

Success

- OAuth2ConsentResponse
  - `redirect_to` string, required — The URL to redirect the user to after consent

## Other responses

- `400` — Bad Request - The request was malformed or contained invalid data
- `401` — Unauthorized - Authentication is required or the token is invalid
- `403` — Forbidden - You do not have permission to perform this action
- `429` — Too Many Requests - You are being rate limited
- `500` — Internal Server Error - An unexpected error occurred

## Changes

> 15 revisions in range; 1 not diffed.

- **2026-09-06** `a52a2cf49d9b` — 32 warning
  - added the new `IP_BAN_DECLINED` enum value to the `code` response property for the response status `400`
  - added the new `IP_BAN_DECLINED` enum value to the `code` response property for the response status `401`
  - added the new `IP_BAN_DECLINED` enum value to the `code` response property for the response status `403`
  - added the new `IP_BAN_DECLINED` enum value to the `code` response property for the response status `500`
  - …28 more
  - …this revision’s changelog is incomplete
- **2026-09-05** `4dbb738a3e22` — 4 info
  - removed the `NSFW_EMOJI_STICKER_BLOCKED` enum value from the `code` response property for the response status `400`
  - removed the `NSFW_EMOJI_STICKER_BLOCKED` enum value from the `code` response property for the response status `401`
  - removed the `NSFW_EMOJI_STICKER_BLOCKED` enum value from the `code` response property for the response status `403`
  - removed the `NSFW_EMOJI_STICKER_BLOCKED` enum value from the `code` response property for the response status `500`
- …earlier changes not shown

[Full history](https://skmtc.dev/fluxer/apis/fluxer-api/changes/oauth2/authorize/consent/post.md)

---

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