---
title: "POST /token"
method: POST
path: "/token"
---

# POST /token

`POST /token`

Obtain accessToken & refreshToken using your accessKeyId and secretAccessKey, or obtain a new accessToken using a refreshToken.

## Request body

- union
  - TokenRequest — Use this schema to exchange accessKeyId and secretAccessKey for tokens.
    - `accessKeyId` string, required
    - `secretAccessKey` string, required
  - RefreshTokenRequest — Use this schema to exchange a refreshToken for a new accessToken.
    - `refreshToken` string, required

## Response `201`

Tokens issued

- union
  - TokenResponse — Returned when exchanging accessKeyId and secretAccessKey for tokens.
    - `accessToken` string, required
    - `refreshToken` string, required
    - `expiresIn` integer, required
    - `refreshTokenExpiresIn` integer, required
  - RefreshTokenResponse — Returned when exchanging a refreshToken for a new accessToken.
    - `accessToken` string, required
    - `expiresIn` integer, required

## Other responses

- `400` — Invalid credentials

---

[API](https://skmtc.net/cello/apis/cello-api.md) · [All operations](https://skmtc.net/cello/apis/cello-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cello/cello-api/versions/e5444152ea7e/schema)
