---
title: "Oauth Preflight"
method: GET
path: "/v1/workspaces/{workspace}/oauth/preflight"
tags: ["v1", "protected", "oauth-connect"]
---

# Oauth Preflight

`GET /v1/workspaces/{workspace}/oauth/preflight`

## Request

- The document declares no server URL.
- Auth: HTTP bearer

Report whether a connection can be authorized, and with what.

Every outcome is a 200: "this server has no OAuth" is an answer the UI
renders, not a failure it has to decode.

## Path parameters

- `workspace` string, required: Slug of the workspace the request acts in

## Query parameters

- `instance_id` string, uuid, nullable: MCP instance to inspect
- `server_id` string, uuid, nullable: Catalog MCP spec to inspect before any instance exists
- `catalog_item_id` string, uuid, nullable: Catalog API to inspect before connecting it

## Response `200`

Successful Response

- OAuthPreflightResponse: What the UI needs before it can offer Connect. ``ready`` — Connect runs unattended, with the client ``credential_source`` names: the operator's ``platform`` app, or one registered ``dynamic``-ally. ``oauth_app_required`` — ask for a client ID/secret first. ``unsupported`` — this cannot be authorized with OAuth; ``detail`` says why.
  - `authorization_endpoint` string, nullable
  - `connected` boolean, required
  - `credential_source` 'platform' | 'dynamic', nullable
  - `detail` string
  - `issuer` string, nullable
  - `redirect_uri` string, required
  - `scopes` string[]
  - `status` 'ready' | 'oauth_app_required' | 'unsupported', required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-12** `e25c3ef78465`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/agentarea/apis/agentarea-api/changes/v1/workspaces/:workspace/oauth/preflight/get.md)

---

[API](https://skmtc.dev/agentarea/apis/agentarea-api.md) - [All operations](https://skmtc.dev/agentarea/apis/agentarea-api/llms.txt) - [OpenAPI document](https://skmtc.dev/agentarea/apis/agentarea-api/revisions/5b651833a114?raw)
