---
type: api
title: Handle OAuth callback
description: **Spaces method and path for this operation:**
url: https://www.elastic.co/elastic/docs-builder/docs/4641/api/doc/kibana/v9/operation/operation-get-actions-connector-oauth-callback
resource: https://www.elastic.co/elastic/docs-builder/docs/4641/api/doc/kibana/v9/operation/operation-get-actions-connector-oauth-callback
products:
  - Kibana
---

# Handle OAuth callback

Authentication: required

Availability: Generally available since 9.4

- Server: `https://{kibana_url}`

## Paths

- `GET` `/api/actions/connector/_oauth_callback`
- `GET` `/s/{space_id}/api/actions/connector/_oauth_callback`

#### Path parameters

- `space_id` (string) — optional
  An identifier for the space. If `space_id` is not provided in the URL, the default space is used. Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.

## Description

Handles the OAuth 2.0 authorization code callback from external providers. Exchanges the authorization code for access and refresh tokens.

## Required authorization

- Privileges: `actions:oauth`

## Query string parameters

- `code` (string) — optional
  The authorization code returned by the OAuth provider.
- `state` (string) — optional
  The state parameter for CSRF protection.
- `error` (string) — optional
  Error code if the authorization failed.
- `error_description` (string) — optional
  Human-readable error description.
- `session_state` (string) — optional
  Session state from the OAuth provider (e.g., Microsoft).

## Responses

#### `200`

Returns an HTML callback page.

#### `302`

Redirects to the return URL with authorization result query parameters.

#### `401`

User is not authenticated.

## Code examples

#### Console

```console
GET kbn:/api/actions/connector/_oauth_callback
```

#### curl

```curl
curl -X GET "${KIBANA_URL}/api/actions/connector/_oauth_callback" \
  -H "Authorization: ApiKey ${API_KEY}"
```

