---
title: "Exchange a JWT assertion for an access token"
method: POST
path: "/v1/oauth2/tokens"
tags: ["Authentication"]
---

# Exchange a JWT assertion for an access token

`POST /v1/oauth2/tokens`

## Request

- The document declares no server URL.
- Auth: none declared
- TypeScript: <https://skmtc.dev/zestequity/apis/zest-equity-public-api-api/docs/v1/oauth2/tokens/post.ts> (a function with typed inputs; its response is checked against the schema)

OAuth 2.0 JWT-Bearer assertion grant. Submit `grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer` plus a signed JWT `assertion`. Returns a short-lived bearer access token used for subsequent partner API calls.

## Request body `application/x-www-form-urlencoded`

- BodyExchangeJwtAssertion
  - `grant_type` string, required
  - `assertion` string, required

## Response `201`

Successful Response

- TokenResponse
  - `accessToken` string, required
  - `refreshToken` string

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zestequity/apis/zest-equity-public-api-api.md) - [All operations](https://skmtc.dev/zestequity/apis/zest-equity-public-api-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zestequity/apis/zest-equity-public-api-api/revisions/0df065045794?raw)
