openapi: 3.1.0 info: title: Atomicwork Public accessManagement users API version: 1.0.0 servers: - url: https://{tenant}.atomicwork.com description: Your Atomicwork tenant tags: - name: users paths: /api/v1/users/invite: post: operationId: postapi-v-1-users-invite summary: Invite Users tags: - users parameters: - name: X-Api-Key in: header required: true schema: type: string - name: X-Workspace-Id in: header required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Users_postapi_v1_users_invite_Response_200' requestBody: content: application/json: schema: type: object properties: emails: type: array items: type: string format: email org_roles: type: array items: type: integer format: int64 type: $ref: '#/components/schemas/ApiV1UsersInvitePostRequestBodyContentApplicationJsonSchemaType' send_email: type: boolean default: true workspaces: type: array items: $ref: '#/components/schemas/ApiV1UsersInvitePostRequestBodyContentApplicationJsonSchemaWorkspacesItems' workspace_roles: type: array items: type: integer format: int64 workspace_ids: type: array items: type: integer format: int64 /api/v1/users/workspaces/invite: post: operationId: postapi-v-1-users-workspaces-invite summary: User workspace invite tags: - users parameters: - name: X-Api-Key in: header required: true schema: type: string - name: X-Workspace-Id in: header required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Users_postapi_v1_users_workspaces_invite_Response_200' requestBody: content: application/json: schema: type: object properties: emails: type: array items: type: string format: email user_ids: type: array items: type: integer format: int64 users: type: array items: type: string org_roles: type: array items: type: integer format: int64 type: $ref: '#/components/schemas/ApiV1UsersWorkspacesInvitePostRequestBodyContentApplicationJsonSchemaType' send_email: type: boolean default: true workspaces: type: array items: $ref: '#/components/schemas/ApiV1UsersWorkspacesInvitePostRequestBodyContentApplicationJsonSchemaWorkspacesItems' /api/v1/users: get: operationId: getapi-v-1-users summary: Get users tags: - users parameters: - name: search_key in: query description: '' required: false schema: type: string - name: is_deleted in: query description: '' required: false schema: type: boolean default: false - name: has_slack in: query description: '' required: false schema: type: boolean - name: role in: query description: '' required: false schema: type: string - name: types in: query description: Optional comma-separated list of user types to filter by required: false schema: type: array items: $ref: '#/components/schemas/ApiV1UsersGetParametersTypesSchemaItems' - name: X-Api-Key in: header required: true schema: type: string - name: X-Workspace-Id in: header required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Users_getapi_v1_users_Response_200' post: operationId: postapi-v-1-users summary: Create user tags: - users parameters: - name: send_email in: query description: Send welcome email or not required: false schema: type: boolean default: false - name: X-Api-Key in: header required: true schema: type: string - name: X-Workspace-Id in: header required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Users_postapi_v1_users_Response_200' requestBody: content: application/json: schema: type: object properties: first_name: type: string middle_name: type: string last_name: type: string email: type: string format: email personal_email: type: string format: email timezone: type: string default: America/Los_Angeles language: type: string department: type: integer format: int64 team: type: integer format: int64 level: type: string title: type: string address: type: string originally_hired: type: string format: date joined_on: type: string format: date terminated_on: type: string format: date employee_id: type: string date_of_birth: type: string format: date phone_number: type: string gender: type: string state: type: string city: type: string country: type: string hr: type: integer format: int64 manager: type: integer format: int64 is_deleted: type: boolean deleted_at: type: string format: date-time employment_status: type: string slack_id: type: string azure_id: type: string external_id: type: string external_app_type: $ref: '#/components/schemas/ApiV1UsersPostRequestBodyContentApplicationJsonSchemaExternalAppType' org_roles: type: array items: type: integer format: int64 password: type: string profile_image: type: integer format: int64 custom_fields: $ref: '#/components/schemas/ApiV1UsersPostRequestBodyContentApplicationJsonSchemaCustomFields' has_reporters: type: boolean default: false type: $ref: '#/components/schemas/ApiV1UsersPostRequestBodyContentApplicationJsonSchemaType' workspaces: type: array items: $ref: '#/components/schemas/ApiV1UsersPostRequestBodyContentApplicationJsonSchemaWorkspacesItems' notification_enabled: type: boolean default: true /api/v1/users/list: get: operationId: getapi-v-1-users-list summary: Get paginated users list tags: - users parameters: - name: search_key in: query description: '' required: false schema: type: string - name: page in: query description: '' required: true schema: type: integer default: 1 - name: per_page in: query description: '' required: false schema: type: integer default: 25 - name: sort_order in: query description: '' required: false schema: $ref: '#/components/schemas/ApiV1UsersListGetParametersSortOrder' - name: is_deleted in: query description: '' required: false schema: type: boolean default: false - name: has_slack in: query description: '' required: false schema: type: boolean - name: role in: query description: '' required: false schema: type: string - name: role_id in: query description: '' required: false schema: type: integer format: int64 - name: user_status in: query description: '' required: false schema: $ref: '#/components/schemas/ApiV1UsersListGetParametersUserStatus' - name: invitation_status in: query description: '' required: false schema: $ref: '#/components/schemas/ApiV1UsersListGetParametersInvitationStatus' - name: types in: query description: Optional comma-separated list of user types to filter by required: false schema: type: array items: $ref: '#/components/schemas/ApiV1UsersListGetParametersTypesSchemaItems' - name: expand in: query description: '' required: false schema: type: array items: $ref: '#/components/schemas/ApiV1UsersListGetParametersExpandSchemaItems' - name: excluded_user_ids in: query description: '' required: false schema: type: array items: type: integer format: int64 - name: notification_enabled in: query description: Filter users by notification enabled status required: false schema: type: boolean - name: employee_id in: query description: Filter users by employee ID (exact match) required: false schema: type: string - name: X-Api-Key in: header required: true schema: type: string - name: X-Workspace-Id in: header required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Users_getapi_v1_users_list_Response_200' /api/v1/users/{segment_id}/list: get: operationId: getapi-v-1-users-segment-id-list summary: Get paginated users list in a segment tags: - users parameters: - name: segment_id in: path description: '' required: true schema: type: integer format: int64 - name: search_key in: query description: '' required: false schema: type: string - name: page in: query description: '' required: true schema: type: integer default: 1 - name: per_page in: query description: '' required: false schema: type: integer default: 25 - name: sort_order in: query description: '' required: false schema: $ref: '#/components/schemas/ApiV1UsersSegmentIdListGetParametersSortOrder' - name: is_deleted in: query description: 'Filter by deactivation state. true returns only deactivated users, false returns only active users. When omitted, active users are returned by default unless include_deactivated is set. Do not add a schema default here: a materialised default makes the param non-null and renders include_deactivated unreachable in the controller.' required: false schema: type: boolean - name: role in: query description: '' required: false schema: type: string - name: type in: query description: Automation entity type (see allowed values in the enum schema). required: false schema: $ref: '#/components/schemas/ApiV1UsersSegmentIdListGetParametersType' - name: include_deactivated in: query description: '' required: false schema: type: boolean default: false - name: X-Api-Key in: header required: true schema: type: string - name: X-Workspace-Id in: header required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Users_getapi_v1_users__segment_id__list_Response_200' /api/v1/users/{user_id}: get: operationId: getapi-v-1-users-user-id summary: Retrieve User tags: - users parameters: - name: user_id in: path description: '' required: true schema: type: integer format: int64 - name: X-Api-Key in: header required: true schema: type: string - name: X-Workspace-Id in: header required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Users_getapi_v1_users__user_id_Response_200' put: operationId: putapi-v-1-users-user-id summary: Update User tags: - users parameters: - name: user_id in: path description: '' required: true schema: type: integer format: int64 - name: X-Api-Key in: header required: true schema: type: string - name: X-Workspace-Id in: header required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Users_putapi_v1_users__user_id_Response_200' requestBody: content: application/json: schema: type: object properties: email: type: string format: email first_name: type: string middle_name: type: string last_name: type: string personal_email: type: string format: email timezone: type: string default: America/Los_Angeles language: type: string state: type: string city: type: string country: type: string department: type: integer format: int64 team: type: integer format: int64 level: type: string title: type: string address: type: string originally_hired: type: string format: date joined_on: type: string format: date terminated_on: type: string format: date employee_id: type: string date_of_birth: type: string format: date phone_number: type: string gender: type: string hr: type: integer format: int64 manager: type: integer format: int64 company_legal_entity: type: integer format: int64 employment_status: type: string slack_id: type: string azure_id: type: string external_id: type: string external_app_type: $ref: '#/components/schemas/ApiV1UsersUserIdPutRequestBodyContentApplicationJsonSchemaExternalAppType' org_roles: type: array items: type: integer format: int64 password: type: string profile_image: type: integer format: int64 custom_fields: $ref: '#/components/schemas/ApiV1UsersUserIdPutRequestBodyContentApplicationJsonSchemaCustomFields' is_deleted: type: boolean has_reporters: type: boolean default: false notification_enabled: type: boolean description: Enable/disable notifications for the user delete: operationId: deleteapi-v-1-users-user-id summary: Delete user from organization tags: - users parameters: - name: user_id in: path description: '' required: true schema: type: integer format: int64 - name: X-Api-Key in: header required: true schema: type: string - name: X-Workspace-Id in: header required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Users_deleteapi_v1_users__user_id_Response_200' patch: operationId: patchapi-v-1-users-user-id summary: Patch a user tags: - users parameters: - name: user_id in: path description: '' required: true schema: type: integer format: int64 - name: X-Api-Key in: header required: true schema: type: string - name: X-Workspace-Id in: header required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Users_patchapi_v1_users__user_id_Response_200' requestBody: content: application/json: schema: type: object properties: {} /api/v1/users/{user_id}/properties: post: operationId: postapi-v-1-users-user-id-properties summary: Patch a user tags: - users parameters: - name: user_id in: path description: '' required: true schema: type: integer format: int64 - name: X-Api-Key in: header required: true schema: type: string - name: X-Workspace-Id in: header required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Users_postapi_v1_users__user_id__properties_Response_200' requestBody: content: application/json: schema: type: object properties: {} /api/v1/users/{user_id}/restore: patch: operationId: patchapi-v-1-users-user-id-restore summary: Restore a user tags: - users parameters: - name: user_id in: path description: '' required: true schema: type: integer format: int64 - name: X-Api-Key in: header required: true schema: type: string - name: X-Workspace-Id in: header required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Users_patchapi_v1_users__user_id__restore_Response_200' requestBody: content: application/json: schema: type: object properties: {} /api/v1/users/{email}/restore-by-email: patch: operationId: patchapi-v-1-users-email-restore-by-email summary: Restore user in organization tags: - users parameters: - name: email in: path description: '' required: true schema: type: string - name: X-Api-Key in: header required: true schema: type: string - name: X-Workspace-Id in: header required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Users_patchapi_v1_users__email__restore_by_email_Response_200' requestBody: content: application/json: schema: type: object properties: {} /api/v1/users/{email}/email-lookup: get: operationId: getapi-v-1-users-email-email-lookup summary: Get a user by email tags: - users parameters: - name: email in: path description: '' required: true schema: type: string - name: X-Api-Key in: header required: true schema: type: string - name: X-Workspace-Id in: header required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Users_getapi_v1_users__email__email_lookup_Response_200' components: schemas: ApiV1UsersGetParametersTypesSchemaItems: type: string enum: - EMPLOYEE - EXTERNAL - AI_EMPLOYEE title: ApiV1UsersGetParametersTypesSchemaItems ApiV1UsersSegmentIdListGetParametersType: type: string enum: - EMPLOYEE - EXTERNAL - AI_EMPLOYEE title: ApiV1UsersSegmentIdListGetParametersType ApiV1UsersPostRequestBodyContentApplicationJsonSchemaCustomFields: type: object properties: {} title: ApiV1UsersPostRequestBodyContentApplicationJsonSchemaCustomFields Users_patchapi_v1_users__email__restore_by_email_Response_200: type: object properties: {} description: Empty response body title: Users_patchapi_v1_users__email__restore_by_email_Response_200 ApiV1UsersListGetParametersInvitationStatus: type: string enum: - ADDED - EMAIL_INVITE_SENT - ACCEPTED title: ApiV1UsersListGetParametersInvitationStatus Users_getapi_v1_users_Response_200: type: object properties: {} description: Empty response body title: Users_getapi_v1_users_Response_200 Users_putapi_v1_users__user_id_Response_200: type: object properties: {} description: Empty response body title: Users_putapi_v1_users__user_id_Response_200 Users_getapi_v1_users_list_Response_200: type: object properties: {} description: Empty response body title: Users_getapi_v1_users_list_Response_200 Users_deleteapi_v1_users__user_id_Response_200: type: object properties: {} description: Empty response body title: Users_deleteapi_v1_users__user_id_Response_200 Users_postapi_v1_users_Response_200: type: object properties: {} description: Empty response body title: Users_postapi_v1_users_Response_200 ApiV1UsersInvitePostRequestBodyContentApplicationJsonSchemaType: type: string enum: - EMPLOYEE - EXTERNAL - AI_EMPLOYEE title: ApiV1UsersInvitePostRequestBodyContentApplicationJsonSchemaType Users_patchapi_v1_users__user_id__restore_Response_200: type: object properties: {} description: Empty response body title: Users_patchapi_v1_users__user_id__restore_Response_200 Users_getapi_v1_users__segment_id__list_Response_200: type: object properties: {} description: Empty response body title: Users_getapi_v1_users__segment_id__list_Response_200 Users_postapi_v1_users_invite_Response_200: type: object properties: {} description: Empty response body title: Users_postapi_v1_users_invite_Response_200 ApiV1UsersWorkspacesInvitePostRequestBodyContentApplicationJsonSchemaType: type: string enum: - EMPLOYEE - EXTERNAL - AI_EMPLOYEE title: ApiV1UsersWorkspacesInvitePostRequestBodyContentApplicationJsonSchemaType ApiV1UsersPostRequestBodyContentApplicationJsonSchemaExternalAppType: type: string enum: - MICROSOFT - OKTA - GOOGLE - RAPID7 - JUMPCLOUD title: ApiV1UsersPostRequestBodyContentApplicationJsonSchemaExternalAppType Users_postapi_v1_users_workspaces_invite_Response_200: type: object properties: {} description: Empty response body title: Users_postapi_v1_users_workspaces_invite_Response_200 ApiV1UsersListGetParametersSortOrder: type: string enum: - CREATED_AT_DESC - CREATED_AT_ASC - UPDATED_AT_DESC - UPDATED_AT_ASC - NAME_EMAIL_ASC - NAME_EMAIL_DESC title: ApiV1UsersListGetParametersSortOrder Users_getapi_v1_users__user_id_Response_200: type: object properties: {} description: Empty response body title: Users_getapi_v1_users__user_id_Response_200 ApiV1UsersPostRequestBodyContentApplicationJsonSchemaWorkspacesItems: type: object properties: id: type: integer format: int64 roles: type: array items: type: integer format: int64 title: ApiV1UsersPostRequestBodyContentApplicationJsonSchemaWorkspacesItems Users_patchapi_v1_users__user_id_Response_200: type: object properties: {} description: Empty response body title: Users_patchapi_v1_users__user_id_Response_200 ApiV1UsersUserIdPutRequestBodyContentApplicationJsonSchemaExternalAppType: type: string enum: - MICROSOFT - OKTA - GOOGLE - RAPID7 - JUMPCLOUD title: ApiV1UsersUserIdPutRequestBodyContentApplicationJsonSchemaExternalAppType ApiV1UsersListGetParametersExpandSchemaItems: type: string enum: - WORKSPACES title: ApiV1UsersListGetParametersExpandSchemaItems Users_getapi_v1_users__email__email_lookup_Response_200: type: object properties: {} description: Empty response body title: Users_getapi_v1_users__email__email_lookup_Response_200 ApiV1UsersSegmentIdListGetParametersSortOrder: type: string enum: - CREATED_AT_DESC - CREATED_AT_ASC - UPDATED_AT_DESC - UPDATED_AT_ASC - NAME_EMAIL_ASC - NAME_EMAIL_DESC title: ApiV1UsersSegmentIdListGetParametersSortOrder ApiV1UsersWorkspacesInvitePostRequestBodyContentApplicationJsonSchemaWorkspacesItems: type: object properties: id: type: integer format: int64 roles: type: array items: type: integer format: int64 title: ApiV1UsersWorkspacesInvitePostRequestBodyContentApplicationJsonSchemaWorkspacesItems ApiV1UsersPostRequestBodyContentApplicationJsonSchemaType: type: string enum: - EMPLOYEE - EXTERNAL - AI_EMPLOYEE title: ApiV1UsersPostRequestBodyContentApplicationJsonSchemaType ApiV1UsersInvitePostRequestBodyContentApplicationJsonSchemaWorkspacesItems: type: object properties: id: type: integer format: int64 roles: type: array items: type: integer format: int64 title: ApiV1UsersInvitePostRequestBodyContentApplicationJsonSchemaWorkspacesItems Users_postapi_v1_users__user_id__properties_Response_200: type: object properties: {} description: Empty response body title: Users_postapi_v1_users__user_id__properties_Response_200 ApiV1UsersListGetParametersUserStatus: type: string enum: - ACTIVE - INACTIVE - ALL title: ApiV1UsersListGetParametersUserStatus ApiV1UsersListGetParametersTypesSchemaItems: type: string enum: - EMPLOYEE - EXTERNAL - AI_EMPLOYEE title: ApiV1UsersListGetParametersTypesSchemaItems ApiV1UsersUserIdPutRequestBodyContentApplicationJsonSchemaCustomFields: type: object properties: {} title: ApiV1UsersUserIdPutRequestBodyContentApplicationJsonSchemaCustomFields securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-Api-Key