---
schema: rendered-html/v1
title: "OAuth 2.0 Authorization | Developer Portal for YouTrack and Hub Documentation"
source_url: https://www.jetbrains.com/help/youtrack/devportal/OAuth-authorization-in-youtrack.html
generated_at: 2026-06-11T14:43:59.140666+00:00
---

Feedback

Thanks for your feedback!

Was this page helpful?

YesNo

Developer Portal for YouTrack and Hub

- Developer Portal
- Apps
- MCP Tools
- YouTrack Workflows
- YouTrack Import Scripts
- YouTrack Form API
- YouTrack REST API
- Get Started with REST API
- Log in to YouTrack
- Permanent Token Authorization
- Manage Permanent Tokens
- [OAuth 2.0 Authorization](OAuth-authorization-in-youtrack.html)
- REST API URL and Endpoints
- OpenAPI Specification (OAS)
- Fields Syntax
- Query Syntax
- Request Headers
- [Custom Fields in REST API](jetbrains__com__help__youtrack__devportal__api-concept-custom-fields.md)
- [Pagination](jetbrains__com__help__youtrack__devportal__api-concept-pagination.md)
- Users, Groups, and Access Management
- Hub REST API Endpoints Deprecated in YouTrack 2026.1
- Postman Collection for the YouTrack REST API
- REST API Reference
- REST API Use Cases
- REST API Troubleshooting
- Color Indices List
- Hub REST API

1. YouTrack REST API
2. Get Started with REST API
3. Log in to YouTrack
4. [OAuth 2.0 Authorization](#0)

# OAuth 2.0 Authorization﻿

Last modified: 07 May 2026

To access YouTrack resources with the REST API using OAuth 2.0, you need to log in, authorize, and obtain an access token for YouTrack. Authorization is provided by the Hub service.

We only recommend that you use OAuth 2.0 when your application requires client-side authentication. Otherwise, you're better off using token-based authorization. For more information, see Permanent Token Authorization.

> ### warning
>
> Do not attempt to register external services in the built-in Hub service! This can cause the service to crash or malfunction. It can also result in a corrupted database or data loss.

- If your YouTrack Server installation is connected to an external Hub service, then you can use any OAuth 2.0 authorization flow that is supported by Hub. The built-in Hub service only supports implicit authorization grants. External Hub installations support a wider range of authorization methods. For details, refer to the Hub documentation.
- The Hub service that is connected to a YouTrack Cloud instance only supports [implicit authorization grants](/help/youtrack/devportal/OAuth-authorization-in-youtrack.html#implicit-authorization-grants).

To use implicit OAuth 2.0 authorization, your client application must be publicly available over the internet. Such applications are usually written in JavaScript and run in a web browser.

## Endpoints﻿

The built-in Hub service uses the following OAuth 2.0 endpoints:

| Endpoint | URL |
| --- | --- |
| Authentication | `<Hub service URL>/api/rest/oauth2/auth` |
| Token | `<Hub service URL>/api/rest/oauth2/token` |

- For a YouTrack Server installation, the `<Hub service URL>` is the access point for the Hub service in your network environment. For YouTrack Server installations, the service is accessible from your YouTrack Base URL appended with the path `/hub`. For example, `www.company-youtrack.com/hub`.

  You can find the Base URL for your installation on the Global Settings page.
- For a YouTrack Cloud instance, the `<Hub service URL>` is the access point for the Hub service in your network environment. For YouTrack Cloud, the service is accessible when you replace the `/youtrack` path in your YouTrack Base URL with `/hub`. For example, `company-domain.youtrack.cloud/hub`.

  You can find the Base URL for your instance on the Domain Settings page.

## Implicit Authorization﻿

YouTrack supports OAuth 2.0 authorization with implicit authorization as specified in the [OAuth 2.0 Authorization Framework](https://tools.ietf.org/html/rfc6749#section-4.2).

To obtain an access token from YouTrack, you need to provide values for the following parameters:

### Requests﻿

To start authentication, redirect the browser to the authorization endpoint:

```
${Hub service URL}/api/rest/oauth2/auth?response_type=token&state=${State}&redirect_uri=${Client redirect URI}&request_credentials=${Request credentials mode}&client_id=${Client service ID}&scope=${Scope}
```

Example:

```
https://www.company-youtrack.com/hub/api/rest/oauth2/auth?response_type=token&state=9b8fdea0-fc3a-410c-9577-5dee1ae028da&redirect_uri=https%3A%2F%2Fmyservice.company.com%2Fauthorized&request_credentials=skip&client_id=98071167-004c-4ddf-ba37-5d4599fdf319&scope=0-0-0-0-0%2098071167-004c-4ddf-ba37-5d4599fdf319
```

To obtain an access token from YouTrack, you need to provide values for the following parameters in your authorization requests:

| Parameter | Description |
| --- | --- |
| `response_type` | Specifies the grant type in an OAuth 2.0 request. For implicit grant, use `token`. |
| `state` | An identifier for the current application state. For example, it can be a key for a local storage object that contains information about the location of the current user in the client application. |
| `redirect_uri` | A URI in your client application that can handle responses from Hub. |
| `request_credentials` | A parameter that determines whether the user should be asked to log in. The following values are recognized:   - `skip`  — use when the client application allows anonymous access.    - If the user is already logged in to Hub, the user is granted access to the client application.   - If the user is not logged in to Hub and the guest account is not banned, the user is granted access to the client application as a guest.   - If the user is not logged in to Hub and the guest account is banned, the user is redirected to the login page. - `silent` — same as `skip`, but redirects the user to the client application in all cases. If the guest account is banned, the user is redirected to the client application with an authentication error. - `required` — logs the user out of Hub and redirects them to the login page. Use as a response to a logout request in the client application. - `default`  — use when the client application does not allow anonymous access.    - If the user is already logged in to Hub, the user is granted access to the client application.   - If the user is not logged in to Hub, the user is redirected to the login page. |
| `client_id` | The ID of the YouTrack service as registered in the built-in Hub service. To get the YouTrack service ID, open the Hub Integration page. [The YouTrack service ID stored in a built-in Hub service.](https://resources.jetbrains.com/help/img/youtrack/oauthYTServiceId.png)   This page is accessible from the Administration > Server Settings > Global Settings page. For more information about this integration, please refer to the YouTrack documentation. |
| `scope` | The access scope in which your API requests are processed. Use the symbolic name of the YouTrack service in the built-in Hub: `YouTrack`. |

### Responses﻿

The client service should be able to handle responses from Hub at the URL that is passed as the `redirect_uri`. Response parameters are passed after a hash sign in the URL. As a result, these parameters are not sent to the server and cannot be intercepted by a malefactor.

If the resource owner grants the access request, Hub issues an access token and delivers it to the client by adding the following parameters to the fragment component of the redirect URI using the `"application/x-www-form-urlencoded"` format:

| Parameter | Description |
| --- | --- |
| `access_token` | The access token issued by Hub. |
| `token_type` | The type of the token that was issued by Hub. The value is case insensitive. |
| `expires_in` | The lifetime of the access token, in seconds. For example, `3600` denotes that the access token expires one hour from the time the response was generated. |
| `scope` | Optional if identical to the scope requested by the client; otherwise, required. The scope of the access token in Hub is the `service_id`. |
| `state` | Required if the `state` parameter was specified in the client authorization request. The exact value received from the client. |

Note that the authorization server (Hub) *does not issue a refresh token*.

For example, the Hub server redirects the user-agent by sending the following HTTP response:

```
HTTP/1.1 302 Found
Location:
http://myservice.company.com/authorized#access_token=1443459450185.0-0-0-0-0.98071167-004c-4ddf-ba37-5d4599fdf319.0-0-0-0-0%3B1.MCwCFC%2FYWvLjHdzOdpLleDLITJn4Mz9rAhRklCoZ2dlMkh2aCd1K5QQ89ibsxg%3D%3D&token_type=Bearer&expires_in=3600&scope=0-0-0-0-0%2098071167-004c-4ddf-ba37-5d4599fdf319&state=9b8fdea0-fc3a-410c-9577-5dee1ae028da
```

### OAuth 2.0 Errors﻿

If the request fails due to a missing, invalid, or mismatching redirect URI, or if the client identifier is missing or invalid, the Hub server informs the resource owner of the error and does not automatically redirect the user-agent to the invalid redirection URI.

If the resource owner denies the access request or if the request fails for reasons other than a missing or invalid redirection URI, the authorization server informs the client by adding the following parameters to the fragment component of the redirect URI using the "`application/x-www-form-urlencoded`" format:

| Parameter | Description |
| --- | --- |
| `error` | A single ASCII [USASCII] error code. For a list of possible errors, see [Authorization Response Errors](/help/youtrack/devportal/OAuth-authorization-in-youtrack.html#AuthorizationResponseErrors) and [Token Response Errors](/help/youtrack/devportal/OAuth-authorization-in-youtrack.html#token-response-error-codes). |
| `error_description` | Human-readable ASCII [USASCII] text providing additional information, used to help the client developer understand what went wrong. |
| `error_uri` | A URI that identifies a human-readable web page with information about the error, used to provide the client developer with additional information. |
| `state` | Required if a "state" parameter was present in the client authorization request. The exact value received from the client. |

For example, Hub redirects the user-agent by sending the following HTTP response:

```
HTTP/1.1 302 Found
Location: https://myservice.company.com/cb#error=access_denied&state=xyz
```

#### Authorization Response Errors﻿

The following errors can be returned by a request to the authorization endpoint.

| Error | Description | Solution |
| --- | --- | --- |
| `invalid_request` | The authorization request to Hub is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed. | Verify that all of the parameters are correct, that the provided `service_id` exists, and so on. |
| `unauthorized_client` | Either the client is not authorized to request an authorization code using this method or `redirect_URI` of the service either is incorrect or missing. | 1. Make sure the `redirect_uri` is correct and properly registered as one of the service's redirect URIs. 2. Make sure your service provides at least one `redirect_uri` in Hub. |
| `access_denied` | The resource owner or Hub denied the request. | Verify that you are using the correct value for the `scope` parameter. |
| `unsupported_response_type` | Hub does not support obtaining an authorization code using this method. | Verify that you have set the value for the `response_type` to `token`. |
| `invalid_scope` | The scope for which authorization is requested, does not match any registered service. | Make sure that request is correct. |
| `server_error` | The Hub service encountered an unexpected condition that prevented it from fulfilling the request. (This error code is needed because a 500 Internal Server Error HTTP status code cannot be returned to the client with an HTTP redirect.) | The connection between YouTrack and the Hub service may be out of sync. Open the Hub Integration page in YouTrack and run diagnostics. |
| `temporarily_unavailable` | The authorization server is currently unable to handle the request due to a temporary overloading or maintenance of the server. (This error code is needed because a 503 Service Unavailable HTTP status code cannot be returned to the client with an HTTP redirect.) | The connection between YouTrack and the Hub service may be out of sync. Open the Hub Integration page in YouTrack and run diagnostics. |

#### Token Response Errors﻿

The following errors can be returned by a request to the token endpoint. For more information, read the definition of each error as defined in the [RFC6749 standard](https://tools.ietf.org/html/rfc6749#section-5.2).

| Error | Description | Solution |
| --- | --- | --- |
| `invalid_request` | The request is missing a required parameter, includes an unsupported parameter value (other than grant type), repeats a parameter, includes multiple credentials, utilizes more than one mechanism for authenticating the client, or is otherwise malformed. | Check the response header, then check if the request is correct. |
| `invalid_client` | Client authentication failed. For example, the client is unknown, no client authentication included, or the authentication method is unsupported. | Check the value for the `client_id` parameter. |
| `unsupported_grant_type` | The authorization grant type is not supported by Hub. | Verify that you have set the value for the `response_type` to `token`. |
| `invalid_scope` | The scope to which you are requiring access token does not match any registered service. | Verify that you are using the correct value for the `scope` parameter. |

- [OAuth 2.0 Authorization](/help/youtrack/devportal/OAuth-authorization-in-youtrack.html)
- [Endpoints](/help/youtrack/devportal/OAuth-authorization-in-youtrack.html#HubOauthEndpoints)
- [Implicit Authorization](/help/youtrack/devportal/OAuth-authorization-in-youtrack.html#implicit-authorization-grants)
- [Requests](/help/youtrack/devportal/OAuth-authorization-in-youtrack.html#SendUserToAuthServer)
- [Responses](/help/youtrack/devportal/OAuth-authorization-in-youtrack.html#AuthServerResponse)
- [OAuth 2.0 Errors](/help/youtrack/devportal/OAuth-authorization-in-youtrack.html#ErrorRedirectBackFromHub)
- [Authorization Response Errors](/help/youtrack/devportal/OAuth-authorization-in-youtrack.html#AuthorizationResponseErrors)
- [Token Response Errors](/help/youtrack/devportal/OAuth-authorization-in-youtrack.html#token-response-error-codes)

Manage Permanent TokensREST API URL and Endpoints

- Privacy & Security
- Terms Of Use
- Trademarks
- Legal

Copyright © 2000–2026 JetBrains s.r.o.
