Skip to end of metadata
Go to start of metadata


Crowd 2.1 and later.


The REST APIs are for developers who want to integrate Crowd into their application and for administrators who want to script interactions with the Crowd server.

Introduction to Crowd's REST APIs

Crowd offers a set of REST APIs for use by applications connecting to Crowd.

Please note the main difference between Crowd APIs and the APIs of other applications like JIRA and Confluence: In Crowd, an application is the client of Crowd, whereas in JIRA/Confluence a user is the client. For example, when authenticating a request to a Crowd REST resource via basic authentication, the application name and password is used (and not a username and password). Keep this in mind when using the REST APIs.

Crowd's REST APIs provide access to resources (data entities) via URI paths. To use a REST API, your application will make an HTTP request and parse the response. By default, the response format is XML. If you wish, you can request JSON instead of XML. Your methods will be the standard HTTP methods like GET, PUT, POST and DELETE.

Because the REST API is based on open standards, you can use any web development language to access the API.

The REST APIs offer the following features:

  • Implementation of applications that take advantage of SSO.
  • User authentication.
  • Retrieving, adding, updating and removing users.
  • Retrieving, adding, updating and removing custom user attributes.
  • Updating a user's password and requesting a password reset.
  • Retrieving, adding, updating and removing groups.
  • Retrieving, adding, updating and removing custom group attributes.
  • Retrieving, adding, updating and removing group memberships.
  • Retrieving, adding and removing nested group memberships.
  • A fully functional, comprehensive search API. Initially, the search API will be quite terse in construction as the queries will be an XML/JSON serialisation of our internal search objects. We will provide a Java client that assists in constructing the queries.

Example: To search for a particular user, perform a GET request at:


Getting Started

If you would like to know more about REST in general, start with the Dare Obasanjo's blog post, Explaining REST to Damien Katz.

Then jump right in and try our REST resources:

Advanced Topics

Below are some links to in-depth information on developing REST APIs and plugins:

  • Developing your own REST APIs for Crowd: Crowd uses the Atlassian REST plugin to implement the Crowd APIs. The REST plugin is bundled with Crowd. You can add your own REST APIs to Crowd by creating a Crowd plugin that includes the REST plugin module.
  • Understanding the principles behind the Atlassian REST API design: You may be interested in the guidelines followed by the Atlassian developers who are designing REST APIs for Atlassian applications, including the Crowd REST APIs.

Crowd Developer Documentation

  • No labels


  1. > http://YOUR-CROWD-SERVER:8095/rest/usermanagement/1/user?username=USERNAME

    should be here:
    http://YOUR-CROWD-SERVER:8095/crowd/rest/usermanagement/1/user?username=USERNAME ?

    at least for Crowd 2.7.2 it works precisely so.

  2. Is there any simple way to filter out group membership for particular user. 

    http://localhost:8095/crowd/rest/usermanagement/latest/group/membership gives all users ...

    It would be nice to pass user name and get list of groups. Is it possible? If not, are you considering make API fit for typical usage scenarios
    e.g. getting session id after authentication and list of groups user belongs to. Now I am forced to use 4 request for SSO scenario + brute force filter for the user belonging to group in the http server (with event processing potentially slowing down whole https proxy)...

    It adds to the latency, doesn't it? 

    1. And how mebership can be checked via JSON? 

      The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.

      Why response is in HTML if  JSON specified explicitly? 

  3. Is it possible to bulk add users, groups and group memberships using the REST API? I'd rather not call the API hundreds of times for a simple update.

  4. I got this error when try to any request whose paths begins http://<my-crowd-server>:8095/rest/<...>

    HTTP Status 404 - /rest/usermanagement/1/user

    type Status report

    message /rest/usermanagement/1/user

    description The requested resource is not available.

    1. Hi, Ilya!

      You could miss application name in the URL or use wrong port.

      For instance, home page for my Crowd is: http://localhost:4990/crowd/console/secure/console.action

      So for testing REST I should use following link: http://localhost:4990/crowd/rest/usermanagement/1/user

  5. Is there any way I can search user details by providing user full name or email id ?

    for example:

    1. Hi Shobha,

      You have to take a look into Crowd Query Language:

  6. searching for user giving invalid JSON response:


    JSON response is as below:

    Unexpected '<'

    while XML response is fine. I do have Content-type set to application/json. Is this bug fixed in later version than 2.8?