---
title: "Exchange OAuth code for tokens"
method: POST
path: "/api/v1/auth/oauth/{provider}/callback"
tags: ["oauth-consumer"]
---

# Exchange OAuth code for tokens

`POST /api/v1/auth/oauth/{provider}/callback`

## Path parameters

- `provider` string, required

## Request body

- OAuthCallbackRequest
  - `code` string, required
  - `state` string, required
  - `redirect_uri` string, uri, required

## Response `200`

Token pair

- OAuthCallbackResponse
  - `user_id` string, uuid, required
  - `email` string, email, required
  - `name` string, required
  - `access_token` string, required
  - `refresh_token` string, required
  - `token_type` 'bearer', required
  - `active_org_id` string, uuid, nullable, required
  - `is_new_user` boolean, required
  - `default_space_id` string, uuid, nullable, required

## Other responses

- `400` — Bad request
- `401` — Invalid state or code

---

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