stack/docs-mintlify/api/admin/oauth/token.mdx
Madison 13fccd32b6
Some checks failed
all-good: Did all the other checks pass? / all-good (push) Has been cancelled
Ensure Prisma migrations are in sync with the schema / check_prisma_migrations (22.x) (push) Has been cancelled
DB migration compat / Check if migrations changed (push) Has been cancelled
Docker Server Build and Push / Docker Build and Push Server (push) Has been cancelled
Docker Server Build and Run / docker (push) Has been cancelled
Runs E2E API Tests (Local Emulator) / E2E Tests (Local Emulator, Node ${{ matrix.node-version }}) (22.x) (push) Has been cancelled
Runs E2E API Tests / E2E Tests (Node ${{ matrix.node-version }}, Freestyle ${{ matrix.freestyle-mode }}) (mock, 22.x) (push) Has been cancelled
Runs E2E API Tests / E2E Tests (Node ${{ matrix.node-version }}, Freestyle ${{ matrix.freestyle-mode }}) (prod, 22.x) (push) Has been cancelled
Runs E2E API Tests with custom port prefix / build (22.x) (push) Has been cancelled
Lint & build / lint_and_build (latest) (push) Has been cancelled
Dev Environment Test With Custom Base Port / restart-dev-and-test-with-custom-base-port (push) Has been cancelled
Dev Environment Test / restart-dev-and-test (push) Has been cancelled
Run setup tests with custom base port / setup-tests-with-custom-base-port (push) Has been cancelled
Run setup tests / setup-tests (push) Has been cancelled
TOC Generator / TOC Generator (push) Has been cancelled
DB migration compat / Back-compat — Current branch migrations with ${{ needs.check-migrations-changed.outputs.base_branch }} branch code (push) Has been cancelled
DB migration compat / Forward-compat — Current branch code with ${{ needs.check-migrations-changed.outputs.base_branch }} branch migrations (push) Has been cancelled
DB migration compat / No migration changes (skipped) (push) Has been cancelled
Add docs-mintlify to root
2026-04-01 14:58:41 -05:00

67 lines
1.6 KiB
Plaintext

---
title: "OAuth Token Endpoint"
description: "Exchange an authorization code or refresh token for an access token."
api: "POST /api/v1/auth/oauth/token"
---
## Request
### Headers
<ParamField header="X-Stack-Project-Id" type="string">
The unique identifier of the project.
</ParamField>
<ParamField header="X-Stack-Publishable-Client-Key" type="string">
The publishable client key.
</ParamField>
### Body
<ParamField body="grant_type" type="string" required>
The grant type. Use `authorization_code` to exchange a code for tokens, or `refresh_token` to refresh an access token.
</ParamField>
<ParamField body="client_id" type="string">
The OAuth client ID.
</ParamField>
<ParamField body="client_secret" type="string">
The OAuth client secret.
</ParamField>
## Response
The response schema varies depending on the grant type used.
<CodeGroup>
```bash cURL
curl -X POST "https://api.stack-auth.com/api/v1/auth/oauth/token" \
-H "Content-Type: application/json" \
-H "X-Stack-Project-Id: <project-id>" \
-H "X-Stack-Publishable-Client-Key: <client-key>" \
-d '{
"grant_type": "authorization_code",
"client_id": "<client-id>",
"client_secret": "<client-secret>"
}'
```
```javascript JavaScript
const response = await fetch("https://api.stack-auth.com/api/v1/auth/oauth/token", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Stack-Project-Id": "<project-id>",
"X-Stack-Publishable-Client-Key": "<client-key>"
},
body: JSON.stringify({
grant_type: "authorization_code",
client_id: "<client-id>",
client_secret: "<client-secret>"
})
});
const data = await response.json();
```
</CodeGroup>