See api-docs Menu

Get Roles

Try Roles v2

A new version of this API is now available that offers the ability to create, update and manage roles.

This call returns up to 50 roles per page.

For details about using the pagination element to easily “page” through roles, see Query Parameters.

To get roles assigned to a user, use the Get Roles for a User API.

To assign one or more existing roles to user, use the Assign Role to User API.

To remove one or more roles from a user, use the Remove Role from User API.

Resource URL

Before calling this API, consider using its version /2 equivalent.


Header Parameters




Set to bearer:<access_token>.

Set <access_token> to the access token you generated using the Generate Token API.

The access token must have been generated using an API credential pair created using the scope required to call this API. This API can be called using either of the following scopes: Read Users, Manage users, Read All, or Manage All.

Query Parameters

For details about how to search for roles using these query parameters, see Search.

  • id

  • name

The following examples illustrate how to use various query parameters to return subsets of roles:

  • Return the role whose name value equals employee


  • Include wildcards. For example, you can return all roles whose name values end with -us:


  • Return a limited number of roles:


  • Return roles sorted by id. Use + to sort in ascending order or - to sort in descending order:


  • Return roles displaying only selected fields per role:


  • Combine use of multiple query parameters using an &:


For more details, see Using Query Parameters.

Sample Response

    "status": {
        "error": false,
        "code": 200,
        "type": "success",
        "message": "Success"
    "pagination": {
        "before_cursor": null,
        "after_cursor": null,
        "previous_link": null,
        "next_link": null
    "data": [
            "id": 1111,
            "name": "C-Executive"
            "id": 1112,
            "name": "Contractor"
            "id": 1113,
            "name": "Default"
            "id": 1114,
            "name": "Employee"

Typically, this error means that your Authorization header value is missing or incorrectly formatted. The Authorization header value should use this format: bearer:<access_token>.

    "status": {
        "error": true,
        "code": 400,
        "type": "bad request",
        "message": "Authorization Information is incorrect"

Typically, this error means that your access token value is invalid.

    "status": {
        "error": true,
        "code": 401,
        "type": "Unauthorized",
        "message": "Authentication Failure"

Response Elements

For more information about the pagination element, see Query Parameters.

id Role’s unique ID in OneLogin.
name Role name.

Postman Collection

Run In Postman

    Clicking Run in Postman button navigates to the page where you can fork the collection to your workspace. Forking the collection into your workspace will enable you to contribute to the source collection using pull requests. You can also view the collection in a public workspace if you like and even import a copy of the collection using the links present on the screen.

Sample Code


Replace sample values indicated by < > with your actual values.

Get Roles

curl 'https://<subdomain>/api/1/roles' \
-X GET \
-H "Authorization: bearer:<access_token>"

Get Roles by Name

curl 'https://<subdomain>/api/1/roles?name=<name>' \
-X GET \
-H "Authorization: bearer:<access_token>"


See Work with OAuth 2.0 Tokens, Users, and Roles.

Have a Question?

Found a problem or a bug? Submit a support ticket.

Looking for walkthroughs or how-to guides on OneLogin's user and admin features? Check out the documentation in our Knowledge Base.

Have a product idea or request? Share it with us in our Ideas Portal.