Spot Users API

Create, get, update, and delete users. Manage user permissions and account assignments.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

flexera-users-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Spot Administration Access Policies Users API
  description: The Spot Administration API provides endpoints for managing organizations, accounts, users, access policies, cloud credentials, subscriptions, and event notifications within the Spot by Flexera platform. It enables programmatic control over user permissions, account setup, and cloud provider credential linking for AWS, Azure, and GCP.
  version: 2.0.0
  contact:
    name: Spot by Flexera
    url: https://docs.spot.io/
  termsOfService: https://spot.io/terms-of-use/
servers:
- url: https://api.spotinst.io
  description: Spot Production API
security:
- bearerAuth: []
tags:
- name: Users
  description: Create, get, update, and delete users. Manage user permissions and account assignments.
paths:
  /setup/user:
    post:
      operationId: createUser
      summary: Spot Create User
      description: Create a new user and link it to the creator's organization. If the role is a viewer, the user is also linked to the default account for the organization.
      tags:
      - Users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUserRequest'
            examples:
              CreateuserRequestExample:
                summary: Default createUser request
                x-microcks-default: true
                value:
                  firstName: example_value
                  lastName: example_value
                  email: user@example.com
                  role: admin
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
              examples:
                Createuser200Example:
                  summary: Default createUser 200 response
                  x-microcks-default: true
                  value:
                    request: example_value
                    response:
                      items:
                      - {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /setup/organization/{organizationId}/user:
    get:
      operationId: listOrganizationUsers
      summary: Spot List Organization Users
      description: Get all users in the organization, their details, and mapped accounts. Providing the optional account ID parameter will filter out all users not mapped to that account.
      tags:
      - Users
      parameters:
      - name: organizationId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserListResponse'
              examples:
                Listorganizationusers200Example:
                  summary: Default listOrganizationUsers 200 response
                  x-microcks-default: true
                  value:
                    request: example_value
                    response:
                      items:
                      - {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /setup/user/{userId}:
    get:
      operationId: getUser
      summary: Spot Get User Details
      description: Get details of a specific user.
      tags:
      - Users
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
              examples:
                Getuser200Example:
                  summary: Default getUser 200 response
                  x-microcks-default: true
                  value:
                    request: example_value
                    response:
                      items:
                      - {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updateUserPermissions
      summary: Spot Update User Permissions
      description: Update user permissions and role assignments.
      tags:
      - Users
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUserPermissionsRequest'
            examples:
              UpdateuserpermissionsRequestExample:
                summary: Default updateUserPermissions request
                x-microcks-default: true
                value:
                  role: example_value
                  accounts:
                  - id: abc123
                    role: example_value
      responses:
        '200':
          description: Successful response
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteUser
      summary: Spot Delete User
      description: Delete a user from the organization.
      tags:
      - Users
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      responses:
        '200':
          description: Successful response
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /setup/user/programmatic:
    post:
      operationId: createProgrammaticUser
      summary: Spot Create Programmatic User
      description: Create a programmatic user for API access.
      tags:
      - Users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProgrammaticUserRequest'
            examples:
              CreateprogrammaticuserRequestExample:
                summary: Default createProgrammaticUser request
                x-microcks-default: true
                value:
                  name: Example Title
                  description: A sample description.
                  accounts:
                  - id: abc123
                    role: example_value
      responses:
        '200':
          description: Successful response
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    User:
      type: object
      properties:
        userId:
          type: string
          example: '500123'
        username:
          type: string
          example: example_value
        email:
          type: string
          example: user@example.com
        type:
          type: string
          example: example_value
        organizationId:
          type: string
          example: '500123'
    CreateUserRequest:
      type: object
      properties:
        firstName:
          type: string
          example: example_value
        lastName:
          type: string
          example: example_value
        email:
          type: string
          format: email
          example: user@example.com
        role:
          type: string
          enum:
          - admin
          - viewer
          - editor
          example: admin
    UpdateUserPermissionsRequest:
      type: object
      properties:
        role:
          type: string
          example: example_value
        accounts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              role:
                type: string
          example: []
    UserListResponse:
      type: object
      properties:
        request:
          type: object
          example: example_value
        response:
          type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/User'
          example: example_value
    UserResponse:
      type: object
      properties:
        request:
          type: object
          example: example_value
        response:
          type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/User'
          example: example_value
    CreateProgrammaticUserRequest:
      type: object
      properties:
        name:
          type: string
          description: Name of the programmatic user.
          example: Example Title
        description:
          type: string
          example: A sample description.
        accounts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              role:
                type: string
          example: []
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Spot API uses Bearer Token Authentication. Include your API token in the Authorization header.