BetterCloud Users API

Manage users across integrated SaaS applications

OpenAPI Specification

bettercloud-users-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: BetterCloud Platform Events Users API
  description: The BetterCloud Platform API provides REST API access for managing SaaS application operations, automated workflows, user lifecycle management, and security policies across enterprise SaaS environments. It enables IT and security teams to programmatically manage users, groups, directories, and automation workflows across 100+ integrated SaaS applications.
  version: v1
  contact:
    name: BetterCloud Developer Support
    url: https://developer.bettercloud.com/
  x-generated-from: documentation
servers:
- url: https://api.bettercloud.com/v1
  description: BetterCloud Platform API v1
security:
- apiKeyAuth: []
tags:
- name: Users
  description: Manage users across integrated SaaS applications
paths:
  /users:
    get:
      operationId: listUsers
      summary: BetterCloud List Users
      description: Returns a paginated list of users discovered across all integrated SaaS applications.
      tags:
      - Users
      parameters:
      - name: page
        in: query
        description: Page number for pagination.
        required: false
        schema:
          type: integer
          default: 1
        example: 1
      - name: per_page
        in: query
        description: Number of results per page (max 100).
        required: false
        schema:
          type: integer
          default: 25
          maximum: 100
        example: 25
      - name: email
        in: query
        description: Filter users by email address.
        required: false
        schema:
          type: string
          format: email
        example: jsmith@example.com
      - name: status
        in: query
        description: Filter users by status.
        required: false
        schema:
          type: string
          enum:
          - active
          - suspended
          - deprovisioned
        example: active
      responses:
        '200':
          description: Paginated list of users.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserListResponse'
              examples:
                ListUsers200Example:
                  summary: Default listUsers 200 response
                  x-microcks-default: true
                  value:
                    data:
                    - id: user-a1b2c3d4
                      email: jsmith@example.com
                      first_name: Jane
                      last_name: Smith
                      status: active
                      department: Engineering
                      title: Senior Engineer
                      created_at: '2025-01-15T10:00:00Z'
                      updated_at: '2026-04-01T08:30:00Z'
                    meta:
                      page: 1
                      per_page: 25
                      total: 150
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /users/{id}:
    get:
      operationId: getUser
      summary: BetterCloud Get User
      description: Returns a single user by ID with their SaaS application details.
      tags:
      - Users
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the user.
        schema:
          type: string
        example: user-a1b2c3d4
      responses:
        '200':
          description: User details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
              examples:
                GetUser200Example:
                  summary: Default getUser 200 response
                  x-microcks-default: true
                  value:
                    data:
                      id: user-a1b2c3d4
                      email: jsmith@example.com
                      first_name: Jane
                      last_name: Smith
                      status: active
                      department: Engineering
                      title: Senior Engineer
                      manager_email: manager@example.com
                      location: San Francisco
                      created_at: '2025-01-15T10:00:00Z'
                      updated_at: '2026-04-01T08:30:00Z'
        '404':
          description: User not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      operationId: updateUser
      summary: BetterCloud Update User
      description: Updates user attributes across integrated SaaS applications.
      tags:
      - Users
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the user.
        schema:
          type: string
        example: user-a1b2c3d4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdateRequest'
            examples:
              UpdateUserRequestExample:
                summary: Default updateUser request
                x-microcks-default: true
                value:
                  department: Product
                  title: Product Manager
      responses:
        '200':
          description: User updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
              examples:
                UpdateUser200Example:
                  summary: Default updateUser 200 response
                  x-microcks-default: true
                  value:
                    data:
                      id: user-a1b2c3d4
                      email: jsmith@example.com
                      first_name: Jane
                      last_name: Smith
                      status: active
                      department: Product
                      title: Product Manager
                      updated_at: '2026-04-19T10:00:00Z'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /users/{id}/suspend:
    post:
      operationId: suspendUser
      summary: BetterCloud Suspend User
      description: Suspends a user across all integrated SaaS applications.
      tags:
      - Users
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the user.
        schema:
          type: string
        example: user-a1b2c3d4
      responses:
        '200':
          description: User suspended successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
              examples:
                SuspendUser200Example:
                  summary: Default suspendUser 200 response
                  x-microcks-default: true
                  value:
                    data:
                      id: user-a1b2c3d4
                      email: jsmith@example.com
                      status: suspended
                      updated_at: '2026-04-19T10:00:00Z'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /users/{id}/deprovision:
    post:
      operationId: deprovisionUser
      summary: BetterCloud Deprovision User
      description: Deprovisions a user and removes access across all integrated SaaS applications.
      tags:
      - Users
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the user.
        schema:
          type: string
        example: user-a1b2c3d4
      responses:
        '200':
          description: User deprovisioned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
              examples:
                DeprovisionUser200Example:
                  summary: Default deprovisionUser 200 response
                  x-microcks-default: true
                  value:
                    data:
                      id: user-a1b2c3d4
                      email: jsmith@example.com
                      status: deprovisioned
                      updated_at: '2026-04-19T10:00:00Z'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    UserListResponse:
      title: User List Response
      description: Paginated list of users.
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/User'
        meta:
          $ref: '#/components/schemas/MetaResponse'
    ErrorResponse:
      title: Error Response
      description: Standard error response from BetterCloud API.
      type: object
      properties:
        code:
          type: string
          description: Machine-readable error code.
          example: RESOURCE_NOT_FOUND
        id:
          type: string
          description: Unique identifier for this error occurrence.
          example: err-500123
        href:
          type: string
          description: Link to documentation for this error code.
          example: https://developer.bettercloud.com/errors/RESOURCE_NOT_FOUND
        reason:
          type: string
          description: Human-readable explanation of the error.
          example: The requested resource was not found
      required:
      - code
      - id
      - href
      - reason
    User:
      title: User
      description: A user discovered and managed across BetterCloud integrations.
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the user in BetterCloud.
          example: user-a1b2c3d4
        email:
          type: string
          format: email
          description: Primary email address of the user.
          example: jsmith@example.com
        first_name:
          type: string
          description: User's first name.
          example: Jane
        last_name:
          type: string
          description: User's last name.
          example: Smith
        status:
          type: string
          description: Current status of the user.
          enum:
          - active
          - suspended
          - deprovisioned
          example: active
        department:
          type: string
          nullable: true
          description: Department or organizational unit.
          example: Engineering
        title:
          type: string
          nullable: true
          description: Job title.
          example: Senior Engineer
        manager_email:
          type: string
          format: email
          nullable: true
          description: Email of the user's manager.
          example: manager@example.com
        location:
          type: string
          nullable: true
          description: Office location.
          example: San Francisco
        created_at:
          type: string
          format: date-time
          description: When the user was first discovered.
          example: '2025-01-15T10:00:00Z'
        updated_at:
          type: string
          format: date-time
          description: When the user record was last updated.
          example: '2026-04-01T08:30:00Z'
    UserUpdateRequest:
      title: User Update Request
      description: Fields to update on a user (all optional).
      type: object
      properties:
        first_name:
          type: string
          description: New first name.
          example: Jane
        last_name:
          type: string
          description: New last name.
          example: Smith
        department:
          type: string
          description: New department.
          example: Product
        title:
          type: string
          description: New job title.
          example: Product Manager
        location:
          type: string
          description: New office location.
          example: New York
    UserResponse:
      title: User Response
      description: Single user response.
      type: object
      properties:
        data:
          $ref: '#/components/schemas/User'
    MetaResponse:
      title: Meta Response
      description: Pagination metadata for list responses.
      type: object
      properties:
        page:
          type: integer
          description: Current page number.
          example: 1
        per_page:
          type: integer
          description: Number of items per page.
          example: 25
        total:
          type: integer
          description: Total number of items.
          example: 150
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key authentication. Provide your BetterCloud API key in the X-API-Key header. Keys can be generated from the BetterCloud developer portal.