Rest api » History » Revision 25
« Previous |
Revision 25/102
(diff)
| Next »
Jean-Philippe Lang, 2010-12-23 15:20
Redmine API¶
Redmine exposes some of its data through a REST API. This API provides access and basic CRUD operations (create, update, delete) for the resources described below.
API Description¶
Resource | Status | Notes | Availability |
---|---|---|---|
Issues | Beta | Usable with some bugs and rough edges. | 1.0 |
Projects | Beta | Usable with some bugs and rough edges. | 1.0 |
Users | Planned | 1.1 | |
TimeEntries | Planned | 1.1 | |
News | Prototype, Planned | Prototype implementation for index only |
1.1 |
Wiki Pages | Planned | 1.2 |
Status legend:
- Stable - feature complete, no major changes planned
- Beta - usable for integrations with some bugs or missing minor functionality
- Alpha - major functionality in place, needs feedback from API users and integrators
- Prototype - very rough implementation, possible major breaking changes mid-version. Not recommended for integration
- Planned - planned in a future version, depending on developer availability
General topics¶
Authentication¶
Most of the time, the API requires authentication. To enable the API-style authentication, you have to check Enable REST API in Administration -> Settings -> Authentication. Then, authentication can be done in 2 different ways:- using your regular login/password via HTTP Basic authentication.
- using your API key which is a handy way to avoid putting a password in a script. The API key may be attached to each request as a "key" parameter or it may be passed in as a username with a random password. You can find your API key on your account page ( /my/account ) when logged in, on the right-hand pane of the default layout.
Collection resources and pagination¶
The response to a GET request on a collection ressources (eg. /issues.xml
, /users.xml
) generally won't return all the objets available in your database. Redmine 1.1.0 introduces a common way to query such ressources using the following parameters:
offset
: the offset of the first object to retrievelimit
: the number of items to be present in the response (default is 25, maximum is 100)
Alternatively, you can use the page
parameter, instead of offset
, in conjunction with limit
.
Examples:
GET /issues.xml => returns the 25 first issues GET /issues.xml?limit=100 => returns the 100 first issues GET /issues.xml?offset=30&limit=10 => returns 10 issues from the 30th GET /issues.xml?page=3&limit=10 => same as above
Responses to GET requests on collection ressources provide information about the total object count available in Redmine and the offset/limit used for the response. Examples:
GET /issues.xml <issues type="array" total_count="2595" limit="25" offset="0"> ... </issues>
GET /issues.json { "issues":[...], "total_count":2595, "limit":25, "offset":0 }
Note: if you're using a REST client that does not support such top level attributes (total_count, limit, offset), you can set the nometa
parameter or X-Redmine-Nometa
HTTP header to 1 to get responses without them. Example:
GET /issues.xml?nometa=1 <issues type="array"> ... </issues>
API Usage in various languages/tools¶
Updated by Jean-Philippe Lang almost 14 years ago · 25 revisions locked