YouTrack provides powerful functionality that helps you perform various actions programmatically via its RESTful API, including:
- Importing issues from your current bug tracking system — for smoother migration to YouTrack.
- Creating, modifying, and performing other operations programmatically — so you can seamlessly integrate YouTrack into your environment. For example, via automated issue submission from third-party applications.
- Manipulating projects, users, groups, roles, issue link types, and custom attributes.
The REST API returns and consumes data in two formats: XML and JSON. Regular content negotiation rules apply:
- Use the Accept HTTP request header to indicate the expected response data format:
- Use the Content-Type HTTP request header for POST and PUT requests:
Regardless of the data exchange format you choose, the request/response semantics stay the same. Any object or field that is returned as XML also exists in JSON representation under the same name and vice versa.
The REST API is always enabled. To test the REST API, enter the base URL for your YouTrack service in your browser, followed by
/rest/issue. For YouTrack InCloud instances, your base URL includes the trailing
/youtrack. For example:
Even though the REST API is always on, an administrator can specify which sites (origins) are allowed to access YouTrack via REST. For more information, see Global Settings.
Tools and Client Libraries Based on the YouTrack REST API
Before you start using the REST API for your own development, take a look at a few tools that use the YouTrack REST API:
- YouTrack's Python Client Library uses the REST API to import data from other issue trackers.
- YouTrack REST API PHP Client is a PHP client library for the YouTrack REST API.
- YouTrackSharp is a .NET library for accessing the YouTrack REST API. This library is also available from the NuGet gallery.
- YouTrack Mobile uses the REST API to pull data from a YouTrack installation and display it in a mobile app.
- YouTrack Integration Plugin for IntelliJ IDEA and other JetBrains IDEs uses the REST API to display issue-related information directly in an IDE.