Cisco Umbrella Users and Roles API
Manage the Umbrella user accounts and roles.
Manage the Umbrella user accounts and roles.
openapi: 3.0.1
info:
title: Cisco Umbrella Users and Roles API
version: 2.0.0
description: Manage the Umbrella user accounts and roles.
contact:
name: Cloud Security Developer Community
x-provenance:
method: harvested
authored_by: Cisco Umbrella
harvested_by: API Evangelist
harvested_on: '2026-08-19'
first_party: true
provider_published: true
source_host: pubhub.devnetcloud.com
note: 26 first-party OpenAPI 3.0 documents (256 operations) listed by Cisco's own docs-nav config and fetched anonymously.
Byte-identity reconfirmed 2026-08-19 by SHA-256 against the live source.
x-evidence:
- type: source
url: https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/umbrella-config.json
- type: source
url: https://developer.cisco.com/docs/cloud-security/
servers:
- url: https://api.umbrella.com/{basePath}
variables:
basePath:
default: admin/v2
security:
- oauthFlow: []
tags:
- name: Users
- name: Roles
- name: Umbrella
paths:
/users:
post:
tags:
- Users
- Umbrella
description: "Create an Umbrella user account with a designated role.\n\nOnce a user account is deleted, you can recreate\
\ the account through the `POST` operation.\nWhen you recreate the user account, only set the `email` and `roleId`\
\ fields in the Request Body.\n\nFor example: {\n \"email\": \"DEVWKS-22@mailinator.com\",\n \"roleId\": 1\n}\n\n\
If you provide all fields for the user account in the Request Body, Umbrella returns an `HTTP/400` (Bad Request) with\
\ the\nmessage: `Email already in use`."
summary: Create User
operationId: createUser
security:
- oauthFlow:
- admin.users:write
requestBody:
content:
application/json:
schema:
properties:
firstname:
type: string
description: The user's first name.
minLength: 1
lastname:
type: string
description: The user's last name.
minLength: 1
email:
type: string
description: The user's email address.
minLength: 1
password:
type: string
description: The user's password.
minLength: 1
roleId:
type: integer
description: The role ID.
minimum: 1
timezone:
type: string
description: The user's timezone.
minLength: 1
type: object
required:
- email
- password
- firstname
- lastname
- roleId
- timezone
example:
firstname: user first name
lastname: user last name
email: user email
password: user password
roleId: 1
timezone: user timezone name
description: Create a user account.
responses:
'200':
description: OK
headers:
Content-Type:
$ref: '#/components/headers/Content-Type'
Date:
$ref: '#/components/headers/Date'
content:
application/json:
schema:
$ref: '#/components/schemas/UserObject'
example:
id: 1234
firstname: user first name
lastname: user last name
email: user email
role: user role name
roleId: 2
timezone: user timezone name
status: user status
lastLoginTime: '2018-06-13T16:07:07.222Z'
twoFactorEnable: true
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'404':
$ref: '#/components/responses/404Error'
'500':
$ref: '#/components/responses/500Error'
get:
tags:
- Users
- Umbrella
description: List the user accounts in the organization.
summary: List Users
operationId: listUsers
security:
- oauthFlow:
- admin.users:read
parameters:
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/limitParam'
responses:
'200':
description: List the user accounts.
headers:
Content-Type:
$ref: '#/components/headers/Content-Type'
Date:
$ref: '#/components/headers/Date'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserObject'
example:
- id: 1234
firstname: user first name
lastname: user last name
email: user email
role: user role name
roleId: 2
timezone: user timezone name
status: user status
lastLoginTime: '2018-06-13T16:07:07.222Z'
twoFactorEnable: true
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'404':
$ref: '#/components/responses/404Error'
'500':
$ref: '#/components/responses/500Error'
/users/{userId}:
get:
tags:
- Users
- Umbrella
description: Get a user account.
summary: Get User
operationId: getUser
security:
- oauthFlow:
- admin.users:read
parameters:
- name: userId
description: The user's ID.
schema:
type: integer
in: path
required: true
responses:
'200':
description: OK
headers:
Content-Type:
$ref: '#/components/headers/Content-Type'
Date:
$ref: '#/components/headers/Date'
content:
application/json:
schema:
$ref: '#/components/schemas/UserObject'
example:
id: 1234
email: user email
role: user role name
roleId: 2
timezone: user timezone name
status: user status
twoFactorEnable: true
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'404':
$ref: '#/components/responses/404Error'
'500':
$ref: '#/components/responses/500Error'
delete:
tags:
- Users
- Umbrella
description: Delete a user account.
summary: Delete User
operationId: deleteUser
security:
- oauthFlow:
- admin.users:write
parameters:
- name: userId
description: The user's ID.
schema:
type: integer
in: path
required: true
responses:
'204':
description: No Content
headers:
Content-Type:
$ref: '#/components/headers/Content-Type'
Date:
$ref: '#/components/headers/Date'
content:
application/json:
schema:
type: string
nullable: true
example: ''
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'404':
$ref: '#/components/responses/404Error'
'500':
$ref: '#/components/responses/500Error'
/roles:
get:
tags:
- Roles
- Umbrella
description: List the roles in the organization.
summary: List Roles
operationId: listRoles
security:
- oauthFlow:
- admin.roles:read
responses:
'200':
description: OK
headers:
Content-Type:
$ref: '#/components/headers/Content-Type'
Date:
$ref: '#/components/headers/Date'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RoleObject'
example:
- organizationId: 1
label: Full Admin
roleId: 1
- organizationId: 1
label: Read Only
roleId: 2
- organizationId: 1
label: Block Page Bypass
roleId: 3
- organizationId: 1
label: Reporting Only
roleId: 4
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'404':
$ref: '#/components/responses/404Error'
'500':
$ref: '#/components/responses/500Error'
/passwordResets/{customerId}:
post:
tags:
- Users
- Umbrella
description: 'Renew the passwords for the user accounts in the child (customer) organization of a provider organization.
For each email address, Umbrella identifies the user''s account and renews the password for the user account.
Umbrella does not send a renewal request to the user account''s email address.
Once an admin resets the user account password through the `/passwordResets/{customerId}` API endpoint,
a user can sign into their account on the child (customer) organization''s managed console
and reset the password for their user account.
The `/passwordResets/{customerId}` API endpoint is only available for parent (provider) organizations
on the Multi-org or provider console.'
summary: Create Password Resets
operationId: createPasswordResets
security:
- oauthFlow:
- admin.passwordreset:write
parameters:
- $ref: '#/components/parameters/customerIdParam'
requestBody:
description: 'Provide a list of email addresses for the user accounts in a child (customer) organization.
Umbrella renews the password for each user account identified by the account''s email address.'
content:
application/json:
schema:
type: object
description: Renew the passwords for the user accounts in the child (customer) organization.
properties:
adminEmails:
type: array
description: A list of email addresses for the user accounts in a child (customer) organization.
items:
type: string
description: 'An email address used to renew the user account''s password.
Umbrella does not send an email to the user account''s email address.'
example: xac@adc.com
example:
adminEmails:
- account@adc.com
- account@cisco.com
responses:
'200':
description: OK
headers:
Content-Type:
$ref: '#/components/headers/Content-Type'
Date:
$ref: '#/components/headers/Date'
content:
application/json:
schema:
type: string
description: Created a password renewal request for each user account identified by the account's email address.
nullable: true
example: ''
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'404':
$ref: '#/components/responses/404Error'
'500':
$ref: '#/components/responses/500Error'
/organizations:
get:
tags:
- Users
- Umbrella
description: 'Get information about your provider organizations.
To query the collection, provide an email address for a member of an Umbrella provider organization.'
summary: Get Information About Organizations
operationId: getOrganizationInformation
security:
- oauthFlow:
- admin.organizations:read
parameters:
- $ref: '#/components/parameters/emailParam'
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
responses:
'200':
description: OK
headers:
Content-Type:
$ref: '#/components/headers/Content-Type'
Date:
$ref: '#/components/headers/Date'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OrgInformation'
example:
- organizationId: 2622114
originId: 299707978
resellerId: 0
creatorUserId: 100000
accountManagerUserId: 0
organizationName: GTS - MSSP Console
website: cisco.com
mspOrganizationId: 0
organizationTypeId: 1
createdAt: 1565986232
modifiedAt: 1585081693
salesforceAccountId: 0011T00002QfUGgQAN
hasDelegatedAdmin: true
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'404':
$ref: '#/components/responses/404EmailError'
'500':
$ref: '#/components/responses/500Error'
components:
securitySchemes:
oauthFlow:
type: oauth2
description: client credential flow
flows:
clientCredentials:
tokenUrl: https://api.umbrella.com/auth/v2/token
scopes:
admin.users:read: Read admin users
admin.users:write: Write admin users
admin.roles:read: Read admin roles
admin.passwordreset:write: Write admin passwords
admin.organizations:write: Read admin organizations
headers:
Date:
schema:
type: string
format: iso-date-time
description: 'The date and time of the request that is represented in ISO 8601 format.
The timestamp uses Greenwich Mean Time (GMT).'
example: 'Date: Mon, 18 Apr 2022 11:11:11 GMT'
Content-Type:
schema:
type: string
description: The MIME content type of the response body.
example: application/json
parameters:
limitParam:
name: limit
in: query
description: The number of records from the collection to return on the page.
required: false
schema:
default: 100
type: integer
format: int32
minimum: 1
maximum: 100
example: 50
customerIdParam:
name: customerId
in: path
description: The child (customer) organization ID.
required: true
schema:
type: integer
format: int32
example: 1234556
pageParam:
name: page
in: query
description: The number of a page in the collection.
schema:
type: integer
format: int32
default: 1
minimum: 1
required: false
example: 2
offsetParam:
in: query
name: offset
required: false
description: The place to start reading in the collection. The default offset is 0.
schema:
type: integer
format: int64
default: 0
example: 10
emailParam:
in: query
name: email
description: The email address for a member of a provider organization.
required: true
schema:
type: string
example: name@cisco.com
schemas:
OrgInformation:
type: object
required:
- mspOrganizationId
- organizationId
- organizationName
- organizationTypeId
properties:
organizationId:
type: integer
format: int32
description: The organization ID.
example: 2622114
originId:
type: integer
description: The origin ID.
format: int32
example: 299707978
resellerId:
type: integer
description: The reseller ID.
example: 0
creatorUserId:
type: integer
description: The user ID of the creator.
example: 100000
accountManagerUserId:
type: integer
description: The user ID of the account manager.
example: 0
organizationName:
type: string
description: The name of the organization.
example: GTS Test - MSSP Console
website:
type: string
description: The URL for the organization.
example: cisco.com
mspOrganizationId:
type: integer
format: int32
description: The managed service provider (MSP) ID.
example: 12345698
organizationTypeId:
type: integer
format: int32
description: The type ID of the organization.
example: 4
createdAt:
type: integer
format: int32
description: The date when the organization was created.
example: 1565986232
modifiedAt:
type: integer
format: int32
description: The date when the organization was last modified.
example: 1585081693
salesforceAccountId:
type: string
description: The Salesforce account ID.
example: 0011T00002QfUGgQAN
hasDelegatedAdmin:
type: boolean
description: Specifies whether the organization has assigned an administrator.
example: true
example:
organizationId: 2622114
originId: 299707978
resellerId: 0
creatorUserId: 100000
accountManagerUserId: 0
organizationName: GTS Test - MSSP Console
website: cisco.com
mspOrganizationId: 1223445
organizationTypeId: 4
createdAt: 1565986232
modifiedAt: 1585081693
salesforceAccountId: 0011T00002QfUGgQAN
hasDelegatedAdmin: true
UserObject:
type: object
properties:
firstname:
type: string
description: The user's first name.
minLength: 1
lastname:
type: string
description: The user's last name.
minLength: 1
email:
type: string
description: The user's email address.
minLength: 1
password:
type: string
description: The user's password.
minLength: 1
roleId:
type: integer
description: The role ID.
minimum: 1
role:
type: string
description: The user's role.
timezone:
type: string
description: The user's timezone.
minLength: 1
status:
type: string
description: The user's status.
example: 'on'
lastLoginTime:
type: string
format: date-time
description: The user's last login date and time (ISO8601 timestamp).
example: '2018-06-13T16:07:07.222Z'
twoFactorEnable:
type: boolean
description: Specifies whether two-factor authentication is enabled.
required:
- id
- email
- role
- roleId
- timezone
- status
- twoFactorEnable
example:
id: 123
email: myemail.com
role: full admin
roleId: 1
timezone: '2018-06-13T16:07:07.222Z'
status: 'on'
twoFactorEnable: true
RoleObject:
type: object
properties:
roleId:
type: integer
description: The ID of the role.
label:
type: string
description: The label for the role.
organizationId:
type: integer
description: The organization ID.
required:
- roleId
- label
- organizationId
example:
organizationId: 1
label: Full Admin
roleId: 1
responses:
400Error:
description: Bad Request
headers:
Content-Type:
$ref: '#/components/headers/Content-Type'
Date:
$ref: '#/components/headers/Date'
content:
application/json:
schema:
type: object
properties:
message:
type: string
example:
message: Invalid request
401Error:
description: Unauthorized
headers:
Content-Type:
$ref: '#/components/headers/Content-Type'
Date:
$ref: '#/components/headers/Date'
content:
application/json:
schema:
type: object
properties:
message:
type: string
example:
message: Unauthorized request
403Error:
description: Forbidden
headers:
Content-Type:
$ref: '#/components/headers/Content-Type'
Date:
$ref: '#/components/headers/Date'
content:
application/json:
schema:
type: object
properties:
message:
type: string
example:
message: Forbidden
404EmailError:
description: Not Found
headers:
Content-Type:
$ref: '#/components/headers/Content-Type'
Date:
$ref: '#/components/headers/Date'
content:
application/json:
schema:
type: object
properties:
message:
type: string
example:
message: 'The user identified by the email address
does not exist in the organization.'
404Error:
description: Not Found
headers:
Content-Type:
$ref: '#/components/headers/Content-Type'
Date:
$ref: '#/components/headers/Date'
content:
application/json:
schema:
type: object
properties:
message:
type: string
example:
message: Not Found
500Error:
description: Internal Server Error
headers:
Content-Type:
$ref: '#/components/headers/Content-Type'
Date:
$ref: '#/components/headers/Date'
content:
application/json:
schema:
type: object
properties:
message:
type: string
example:
message: Server error
x-provenance:
method: harvested
first_party: true
harvested: '2026-08-19'
source: https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/admin/users-roles.yaml
publisher: Cisco Systems, Inc. (Cisco DevNet Cloud Security docs)
x-evidence:
fetched: '2026-08-19'
url: https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/admin/users-roles.yaml
http_status: 200
docs: https://developer.cisco.com/docs/cloud-security/