---
title: "Token Endpoint"
method: POST
path: "/oauth/token"
tags: ["OAuth"]
---

# Token Endpoint

`POST /oauth/token`

Exchange a refresh token, JWT assertion, authorization code, or client creds for tokens.

## Request body

- TokenRequest — Token endpoint request (JSON body — not RFC 6749 form-encoded).
  - `assertion` string, nullable
  - `client_id` string, nullable
  - `client_secret` string, nullable
  - `code` string, nullable
  - `code_verifier` string, nullable
  - `grant_type` string, required
  - `redirect_uri` string, nullable
  - `refresh_token` string, nullable

## Response `200`

Successful Response

- TokenResponse — Token endpoint success response.
  - `access_token` string, required
  - `expires_in` integer, required
  - `id_token` string, nullable
  - `refresh_token` string, nullable
  - `token_type` string

## Other responses

- `400` — Bad Request
- `422` — Unprocessable Entity
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/jentic/apis/jentic-control-plane-api.md) · [All operations](https://skmtc.net/jentic/apis/jentic-control-plane-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/jentic/jentic-control-plane-api/revisions/4ccade8cfa18/schema)
