GET /api/users
List all users

GET /api/auth_source_ldaps/:auth_source_ldap_id/users
List all users for LDAP authentication source

GET /api/auth_source_externals/:auth_source_external_id/users
List all users for external authentication source

GET /api/usergroups/:usergroup_id/users
List all users for user group

GET /api/roles/:role_id/users
List all users for role

GET /api/locations/:location_id/users
List all users for location

GET /api/organizations/:organization_id/users
List all users for organization

Examples

GET /api/users
200
{
  "total": 2,
  "subtotal": 2,
  "page": 1,
  "per_page": 20,
  "search": null,
  "sort": {
    "by": null,
    "order": null
  },
  "results": [
    {
      "firstname": "One",
      "lastname": "User",
      "mail": "userone@someware.com",
      "admin": false,
      "auth_source_id": 980190962,
      "auth_source_name": "ldap-server",
      "timezone": null,
      "locale": null,
      "last_login_on": "2009-10-12 21:50:04 UTC",
      "created_at": "2018-11-15 19:01:27 UTC",
      "updated_at": "2018-11-15 19:01:27 UTC",
      "id": 980190962,
      "login": "one",
      "description": null,
      "ssh_keys": [],
      "default_location": null,
      "locations": [
        {
          "id": 255093256,
          "name": "Location 1"
        }
      ],
      "default_organization": null,
      "organizations": [
        {
          "id": 447626438,
          "name": "Organization 1"
        }
      ],
      "effective_admin": false
    },
    {
      "firstname": "Scoped",
      "lastname": "User",
      "mail": "userscoped@someware.com",
      "admin": false,
      "auth_source_id": 980190962,
      "auth_source_name": "ldap-server",
      "timezone": null,
      "locale": null,
      "last_login_on": "2009-10-12 21:50:05 UTC",
      "created_at": "2018-11-15 19:01:27 UTC",
      "updated_at": "2018-11-15 19:01:27 UTC",
      "id": 117925625,
      "login": "scoped",
      "description": null,
      "ssh_keys": [],
      "default_location": null,
      "locations": [
        {
          "id": 255093256,
          "name": "Location 1"
        }
      ],
      "default_organization": null,
      "organizations": [
        {
          "id": 447626438,
          "name": "Organization 1"
        }
      ],
      "effective_admin": false
    }
  ]
}

Params

Param name Description
auth_source_ldap_id
optional

ID of LDAP authentication source

Validations:

  • Must be a String

usergroup_id
optional

ID of user group

Validations:

  • Must be a String

role_id
optional

ID of role

Validations:

  • Must be a String

location_id
optional

Scope by locations

Validations:

  • Must be a Integer

organization_id
optional

Scope by organizations

Validations:

  • Must be a Integer

search
optional

filter results

Validations:

  • Must be a String

order
optional

Sort field and order, eg. ‘id DESC’

Validations:

  • Must be a String

page
optional

paginate results

Validations:

  • Must be a String

per_page
optional

number of entries per request

Validations:

  • Must be a String

Search fields

Field name Type Possible values
admin true, false
description text
firstname string
last_login_on datetime
lastname string
location string
location_id integer
login string
mail string
organization string
organization_id integer
role string
role_id integer
usergroup string

GET /api/users/:id
Show a user

Examples

GET /api/users/36826545
404
{
  "error": {
    "message": "Resource user not found by id '36826545'"
  }
}

Params

Param name Description
location_id
optional

Scope by locations

Validations:

  • Must be a Integer

organization_id
optional

Scope by organizations

Validations:

  • Must be a Integer

id
required

Validations:

  • Must be a String


POST /api/users
Create a user

Adds role ‘Default role’ to the user by default

Examples

POST /api/users
{
  "user": {
    "login": "foo",
    "auth_source_id": 200482051,
    "password": "123456",
    "firstname": "rJArldjkzMOpncgTKekLMaHqlyAqHPoWOGIpjHlzgvmKONXqlBH"
  }
}
422
{
  "error": {
    "id": null,
    "errors": {
      "firstname": [
        "is too long (maximum is 50 characters)"
      ]
    },
    "full_messages": [
      "Firstname is too long (maximum is 50 characters)"
    ]
  }
}

Params

Param name Description
location_id
optional

Scope by locations

Validations:

  • Must be a Integer

organization_id
optional

Scope by organizations

Validations:

  • Must be a Integer

user
required

Validations:

  • Must be a Hash

user[login]
required

Validations:

  • Must be a String

user[firstname]
optional , nil allowed

Validations:

  • Must be a String

user[lastname]
optional , nil allowed

Validations:

  • Must be a String

user[mail]
required

Validations:

  • Must be a String

user[description]
optional , nil allowed

Validations:

  • Must be a String

user[admin]
optional , nil allowed

is an admin account

Validations:

  • Must be one of: true, false, 1, 0

user[password]
optional , nil allowed

Required unless user is in an external authentication source

Validations:

  • Must be a String

user[default_location_id]
optional , nil allowed

Validations:

  • Must be a Integer

user[default_organization_id]
optional , nil allowed

Validations:

  • Must be a Integer

user[auth_source_id]
required

Validations:

  • Must be a Integer

user[timezone]
optional , nil allowed

User’s timezone

Validations:

  • Must be one of: International Date Line West, American Samoa, Midway Island, Hawaii, Alaska, Pacific Time (US & Canada), Tijuana, Arizona, Chihuahua, Mazatlan, Mountain Time (US & Canada), Central America, Central Time (US & Canada), Guadalajara, Mexico City, Monterrey, Saskatchewan, Bogota, Eastern Time (US & Canada), Indiana (East), Lima, Quito, Atlantic Time (Canada), Caracas, Georgetown, La Paz, Puerto Rico, Santiago, Newfoundland, Brasilia, Buenos Aires, Greenland, Montevideo, Mid-Atlantic, Azores, Cape Verde Is., Casablanca, Dublin, Edinburgh, Lisbon, London, Monrovia, UTC, Amsterdam, Belgrade, Berlin, Bern, Bratislava, Brussels, Budapest, Copenhagen, Ljubljana, Madrid, Paris, Prague, Rome, Sarajevo, Skopje, Stockholm, Vienna, Warsaw, West Central Africa, Zagreb, Zurich, Athens, Bucharest, Cairo, Harare, Helsinki, Jerusalem, Kaliningrad, Kyiv, Pretoria, Riga, Sofia, Tallinn, Vilnius, Baghdad, Istanbul, Kuwait, Minsk, Moscow, Nairobi, Riyadh, St. Petersburg, Volgograd, Tehran, Abu Dhabi, Baku, Muscat, Samara, Tbilisi, Yerevan, Kabul, Ekaterinburg, Islamabad, Karachi, Tashkent, Chennai, Kolkata, Mumbai, New Delhi, Sri Jayawardenepura, Kathmandu, Almaty, Astana, Dhaka, Urumqi, Rangoon, Bangkok, Hanoi, Jakarta, Krasnoyarsk, Novosibirsk, Beijing, Chongqing, Hong Kong, Irkutsk, Kuala Lumpur, Perth, Singapore, Taipei, Ulaanbaatar, Osaka, Sapporo, Seoul, Tokyo, Yakutsk, Adelaide, Darwin, Brisbane, Canberra, Guam, Hobart, Melbourne, Port Moresby, Sydney, Vladivostok, Magadan, New Caledonia, Solomon Is., Srednekolymsk, Auckland, Fiji, Kamchatka, Marshall Is., Wellington, Chatham Is., Nuku'alofa, Samoa, Tokelau Is..

user[locale]
optional , nil allowed

User’s preferred locale

Validations:

  • Must be one of: ko, en, fr, en_GB, de, sv_SE, ja, pl, zh_CN, it, zh_TW, ru, es, ca, nl_NL, pt_BR, gl.

user[role_ids]
optional , nil allowed

Validations:

  • Must be an array of any type

user[location_ids]
optional , nil allowed

REPLACE locations with given ids

Validations:

  • Must be an array of any type

user[organization_ids]
optional , nil allowed

REPLACE organizations with given ids.

Validations:

  • Must be an array of any type


PUT /api/users/:id
Update a user

Adds role ‘Default role’ to the user if it is not already present. Only another admin can change the admin account attribute.

Examples

PUT /api/users/988725678
{
  "user": {
    "login": "johnsmith",
    "password": "dummy",
    "password_confirmation": "DUMMY"
  }
}
422
{
  "error": {
    "id": 988725678,
    "errors": {
      "password_confirmation": [
        "doesn't match Password"
      ]
    },
    "full_messages": [
      "Password confirmation doesn't match Password"
    ]
  }
}

Params

Param name Description
location_id
optional

Scope by locations

Validations:

  • Must be a Integer

organization_id
optional

Scope by organizations

Validations:

  • Must be a Integer

id
required

Validations:

  • Must be a String

user
required

Validations:

  • Must be a Hash

user[login]
optional

Validations:

  • Must be a String

user[firstname]
optional , nil allowed

Validations:

  • Must be a String

user[lastname]
optional , nil allowed

Validations:

  • Must be a String

user[mail]
optional

Validations:

  • Must be a String

user[description]
optional , nil allowed

Validations:

  • Must be a String

user[admin]
optional , nil allowed

is an admin account

Validations:

  • Must be one of: true, false, 1, 0

user[password]
optional , nil allowed

Required unless user is in an external authentication source

Validations:

  • Must be a String

user[default_location_id]
optional , nil allowed

Validations:

  • Must be a Integer

user[default_organization_id]
optional , nil allowed

Validations:

  • Must be a Integer

user[auth_source_id]
optional

Validations:

  • Must be a Integer

user[timezone]
optional , nil allowed

User’s timezone

Validations:

  • Must be one of: International Date Line West, American Samoa, Midway Island, Hawaii, Alaska, Pacific Time (US & Canada), Tijuana, Arizona, Chihuahua, Mazatlan, Mountain Time (US & Canada), Central America, Central Time (US & Canada), Guadalajara, Mexico City, Monterrey, Saskatchewan, Bogota, Eastern Time (US & Canada), Indiana (East), Lima, Quito, Atlantic Time (Canada), Caracas, Georgetown, La Paz, Puerto Rico, Santiago, Newfoundland, Brasilia, Buenos Aires, Greenland, Montevideo, Mid-Atlantic, Azores, Cape Verde Is., Casablanca, Dublin, Edinburgh, Lisbon, London, Monrovia, UTC, Amsterdam, Belgrade, Berlin, Bern, Bratislava, Brussels, Budapest, Copenhagen, Ljubljana, Madrid, Paris, Prague, Rome, Sarajevo, Skopje, Stockholm, Vienna, Warsaw, West Central Africa, Zagreb, Zurich, Athens, Bucharest, Cairo, Harare, Helsinki, Jerusalem, Kaliningrad, Kyiv, Pretoria, Riga, Sofia, Tallinn, Vilnius, Baghdad, Istanbul, Kuwait, Minsk, Moscow, Nairobi, Riyadh, St. Petersburg, Volgograd, Tehran, Abu Dhabi, Baku, Muscat, Samara, Tbilisi, Yerevan, Kabul, Ekaterinburg, Islamabad, Karachi, Tashkent, Chennai, Kolkata, Mumbai, New Delhi, Sri Jayawardenepura, Kathmandu, Almaty, Astana, Dhaka, Urumqi, Rangoon, Bangkok, Hanoi, Jakarta, Krasnoyarsk, Novosibirsk, Beijing, Chongqing, Hong Kong, Irkutsk, Kuala Lumpur, Perth, Singapore, Taipei, Ulaanbaatar, Osaka, Sapporo, Seoul, Tokyo, Yakutsk, Adelaide, Darwin, Brisbane, Canberra, Guam, Hobart, Melbourne, Port Moresby, Sydney, Vladivostok, Magadan, New Caledonia, Solomon Is., Srednekolymsk, Auckland, Fiji, Kamchatka, Marshall Is., Wellington, Chatham Is., Nuku'alofa, Samoa, Tokelau Is..

user[locale]
optional , nil allowed

User’s preferred locale

Validations:

  • Must be one of: ko, en, fr, en_GB, de, sv_SE, ja, pl, zh_CN, it, zh_TW, ru, es, ca, nl_NL, pt_BR, gl.

user[role_ids]
optional , nil allowed

Validations:

  • Must be an array of any type

user[location_ids]
optional , nil allowed

REPLACE locations with given ids

Validations:

  • Must be an array of any type

user[organization_ids]
optional , nil allowed

REPLACE organizations with given ids.

Validations:

  • Must be an array of any type

user[current_password]
optional , nil allowed

Required when user want to change own password

Validations:

  • Must be a String


DELETE /api/users/:id
Delete a user

Examples

DELETE /api/users/980190962
{
  "user": {}
}
403
{
  "error": {
    "message": "Access denied",
    "details": "You are trying to delete your own account"
  }
}

Params

Param name Description
location_id
optional

Scope by locations

Validations:

  • Must be a Integer

organization_id
optional

Scope by organizations

Validations:

  • Must be a Integer

id
required

Validations:

  • Must be a String