Cisco Umbrella Users and Roles API

Manage the Umbrella user accounts and roles.

OpenAPI Specification

cisco-umbrella-admin-users-roles-openapi.yml Raw ↑
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/