openapi: 3.0.3 info: title: OneLogin Apps Users API description: OneLogin REST API for identity and access management. Provides programmatic access to users, roles, apps, MFA, branding, connectors, reports, SAML assertions, smart hooks, and Vigilance AI. Authentication is handled via OAuth 2.0 bearer tokens. version: '1.0' contact: name: OneLogin Developers url: https://developers.onelogin.com license: name: OneLogin Terms of Service url: https://www.onelogin.com/legal/terms servers: - url: https://{subdomain}.onelogin.com description: OneLogin tenant subdomain variables: subdomain: default: api description: Your OneLogin subdomain security: - bearerAuth: [] tags: - name: Users description: User management paths: /api/1/users: get: tags: - Users summary: List users operationId: listUsers parameters: - name: limit in: query schema: type: integer - name: page in: query schema: type: integer responses: '200': description: List of users content: application/json: schema: type: array items: $ref: '#/components/schemas/User' post: tags: - Users summary: Create user operationId: createUser requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/User' responses: '201': description: User created /api/1/users/{id}: parameters: - name: id in: path required: true schema: type: integer get: tags: - Users summary: Get user by ID operationId: getUser responses: '200': description: User details content: application/json: schema: $ref: '#/components/schemas/User' put: tags: - Users summary: Update user by ID operationId: updateUser requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/User' responses: '200': description: User updated delete: tags: - Users summary: Delete user by ID operationId: deleteUser responses: '204': description: User deleted /api/1/users/{id}/apps: parameters: - name: id in: path required: true schema: type: integer get: tags: - Users summary: Get apps for a user operationId: getUserApps responses: '200': description: Apps assigned to user /api/1/users/{id}/roles: parameters: - name: id in: path required: true schema: type: integer get: tags: - Users summary: Get roles for a user operationId: getUserRoles responses: '200': description: Roles assigned to user post: tags: - Users summary: Assign role to user operationId: assignUserRole responses: '200': description: Role assigned /api/1/users/{id}/roles/{role_id}: parameters: - name: id in: path required: true schema: type: integer - name: role_id in: path required: true schema: type: integer delete: tags: - Users summary: Remove role from user operationId: removeUserRole responses: '204': description: Role removed /api/1/users/{id}/password: parameters: - name: id in: path required: true schema: type: integer put: tags: - Users summary: Set user password operationId: setUserPassword responses: '200': description: Password set /api/1/users/{id}/custom_attributes: parameters: - name: id in: path required: true schema: type: integer put: tags: - Users summary: Set custom attribute operationId: setUserCustomAttribute responses: '200': description: Custom attribute set /api/1/users/{id}/state: parameters: - name: id in: path required: true schema: type: integer put: tags: - Users summary: Set user state operationId: setUserState responses: '200': description: State updated /api/1/users/{id}/logout: parameters: - name: id in: path required: true schema: type: integer post: tags: - Users summary: Log user out operationId: logoutUser responses: '200': description: User logged out /api/1/users/{id}/lock: parameters: - name: id in: path required: true schema: type: integer post: tags: - Users summary: Lock user account operationId: lockUser responses: '200': description: Account locked components: schemas: User: type: object properties: id: type: integer email: type: string username: type: string firstname: type: string lastname: type: string title: type: string department: type: string company: type: string phone: type: string status: type: integer state: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT