openapi: 3.2.0 info: title: Lucid Users API version: '1.0' contact: name: Lucid Developer Platform url: https://developer.lucid.co/ x-refined-note: - x-documentation differs across the merged source definitions and was not carried description: 'Operations tagged Users across 2 of this provider''s published API definitions: lucid-rest-api-openapi.yml, lucid-scim-api-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://api.lucid.co - url: https://users.lucid.app/scim/v2 tags: - name: Users description: Retrieve, create, and search for users within the authenticated account. Includes user profile access. paths: /v1/users/{id}: get: summary: Get User description: Retrieves information about the requested user. The requested user must be on the authenticated account. operationId: getUser tags: - Users security: - ApiKey: - AccountReadonly - OAuth2: - account.user:readonly parameters: - name: id in: path required: true schema: type: number description: ID of the user to be retrieved. example: 204 responses: '200': description: OK. Returns with a User resource containing information about the user. content: application/json: schema: $ref: '#/components/schemas/User' '403': description: Forbidden. Occurs if the user does not belong to the authenticated account or if the user does not exist. servers: - url: https://api.lucid.co /v1/users: get: summary: List Users description: Retrieves information about all users on the authenticated account. operationId: listUsers tags: - Users security: - ApiKey: - AccountAdmin - OAuth2: - account.user:readonly - account.users:admin.readonly responses: '200': description: OK. Returns a list of User resources containing information about users on the account. content: application/json: schema: type: array items: $ref: '#/components/schemas/User' '404': description: Not Found post: summary: Create User description: Creates a new user and adds them to the authenticated account. Licenses are automatically assigned to the new user based on the account's auto-licensing configuration. Only available to Enterprise accounts. operationId: createUser tags: - Users security: - OAuth2: - account.user requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateUserBody' responses: '201': description: Created. Returns a User resource containing information about the created user. content: application/json: schema: $ref: '#/components/schemas/User' '400': description: Bad Request. Occurs if any input field is invalid. '403': description: Forbidden. Occurs if the app making the request does not have permission to create users, if the email domain is under domain control by a different account, or if the token requesting to create a user is not on an Enterprise account. '409': description: Conflict. Occurs if a user with the same email or username already exists. servers: - url: https://api.lucid.co /v1/users/searchByEmail: post: summary: Search Users By Email description: Retrieves information about all users on the authenticated account whose email is provided. Matching is case-insensitive and requires an exact match; emails that do not correspond to a user on the account are excluded from results. operationId: userEmailSearch tags: - Users security: - ApiKey: - AccountReadonly - OAuth2: - account.user:readonly requestBody: content: application/json: schema: properties: emails: type: array items: type: string responses: '200': description: OK. Returns a list of Profile resources containing information about users on the account. Emails that could not be matched are not included. content: application/json: schema: type: array items: $ref: '#/components/schemas/Profile' '400': description: Bad Request. Occurs if the request body emails exceed 200 items or if any of the strings in the request body can not be parsed into the email format. servers: - url: https://api.lucid.co /v1/users/me/profile: get: summary: Get Profile description: Retrieves basic information about the authenticated user. operationId: getUserProfile tags: - Users security: - ApiKey: - User - OAuth2: - user.profile responses: '200': description: OK. Returns a Profile resource containing information about the requesting user. content: application/json: schema: $ref: '#/components/schemas/Profile' '404': description: Not Found servers: - url: https://api.lucid.co /Users/{id}: get: summary: Get User description: Get a specific user on the account. operationId: getUser tags: - Users parameters: - name: id in: path required: true schema: type: string description: ID of the Lucid user. example: lucid-1234 - $ref: '#/paths/~1Users/get/parameters/3' - $ref: '#/paths/~1Users/get/parameters/4' responses: '200': description: OK. Returns a User. content: application/json: schema: $ref: '#/components/schemas/User_2' '401': description: Unauthorized. Occurs if bearer token is invalid. '404': description: Not Found. Occurs if the user was not found. security: - Bearer: [] put: summary: Modify User description: 'Modify an existing user. To deactivate a user, set the `active` field to `false`. ' operationId: modifyUserPut tags: - Users parameters: - $ref: '#/paths/~1Users~1%7Bid%7D/get/parameters/0' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateUser' responses: '200': description: OK. Returns the modified User. content: application/json: schema: $ref: '#/components/schemas/User_2' '400': description: Bad Request. Occurs if request body syntax is incorrect. '401': description: Unauthorized. Occurs if bearer token is invalid. '404': description: Not Found. Occurs if the user does not exist. '409': description: Conflict. Occurs if new username or email already exists. security: - Bearer: [] patch: summary: Modify User description: 'Modify an existing user. To deactivate a user, set the `active` field to `false`. ' operationId: modifyUserPatch tags: - Users parameters: - $ref: '#/paths/~1Users~1%7Bid%7D/get/parameters/0' requestBody: content: application/json: schema: required: - schemas - Operations properties: schemas: type: array items: type: string example: - urn:ietf:params:scim:schemas:core:2.0:User Operations: type: array items: $ref: '#/components/schemas/UserOperation' responses: '200': description: OK. Returns the modified User. content: application/json: schema: $ref: '#/components/schemas/User_2' '400': description: Bad Request. Occurs if request body syntax is incorrect. '401': description: Unauthorized. Occurs if bearer token is invalid. '404': description: Not Found. Occurs if the user does not exist. '409': description: Conflict. Occurs if new username or email already exists on account. security: - Bearer: [] delete: summary: Delete User description: '> ❗️ This is a hard delete. We recommend deactivating users instead of deleting them. To deactivate a user, use PUT or PATCH and set the active field to false. Delete a user from the account. Note that certain users cannot be deleted, such as account owners and default document owners. ' operationId: deleteUser tags: - Users parameters: - $ref: '#/paths/~1Users~1%7Bid%7D/get/parameters/0' responses: '204': description: No Content. User was successfully deleted. '400': description: Bad Request. Occurs if an unexpected error prevents user deletion. '401': description: Unauthorized. Occurs if bearer token is invalid. '404': description: Not Found. Occurs if the user does not exist. '409': description: Conflict. Occurs if the user cannot be deleted (e.g., account owner or default document owner). security: - Bearer: [] servers: - url: https://users.lucid.app/scim/v2 /Users: get: summary: Get All Users description: Gets all users on an account. operationId: getAllUsers tags: - Users parameters: - name: startIndex in: query required: false schema: type: number description: Index of the first user in the list to return (1 indexed). example: 1 - name: count in: query required: false schema: type: number description: Quantity of users to return from this request. example: 100 - name: filter in: query required: false schema: type: string description: "See SCIM spec and optimization details below:\n* The only operator currently supported is eq\n* Filtered requests will result in a maximum of 10,000 users\n* While filtering should technically work on every attribute of a user, it is a very slow process for non-optimized attributes. We strongly recommend filtering only on the following optimized attributes whenever possible:\n * email / emails.value / workemail\n * username / displayname\n * externalid\n * urn:ietf:params:scim:schemas:extension:lucid:1.0:User.productLicenses.\n" example: email eq someEmail@example.com - name: attributes in: query required: false schema: type: array items: type: string description: 'Comma-separated list of attribute names to include in the response. The attribute id is always returned. Cannot be used with excludedAttributes. ' example: userName,emails,active - name: excludedAttributes in: query required: false schema: type: array items: type: string description: 'Comma-separated list of attribute names to exclude from the response. The attribute id is always returned and cannot be excluded. Cannot be used with attributes. ' example: groups,roles responses: '200': description: OK. Returns a JSON object containing a list of users. Deactivated users will not be included in the totalResults or the JSON payload of users returned. content: application/json: schema: $ref: '#/components/schemas/GetAllUsers' '400': description: Bad Request. Occurs if the filter parameter has invalid syntax or uses unsupported operators. '401': description: Unauthorized. Occurs if bearer token is invalid. security: - Bearer: [] post: summary: Create User description: Create a new user. operationId: createUser tags: - Users requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateUser' responses: '201': description: OK. Returns the created User. content: application/json: schema: $ref: '#/components/schemas/User_2' '400': description: Bad Request. Occurs if request body syntax is incorrect. '401': description: Unauthorized. Occurs if bearer token is invalid. '409': description: Conflict. if username or email already exists on the account. '424': description: Failed Dependency. Occurs if add-on license requires base license to be active. security: - Bearer: [] servers: - url: https://users.lucid.app/scim/v2 components: schemas: Avatar: type: object properties: type: type: string enum: - url example: url description: The kind of avatar. Currently always `url`, indicating the avatar is referenced by a link. Additional avatar kinds may be introduced in the future. link: type: string example: https://www.gravatar.com/avatar/00000000000000000000000000000000?s=200&d=404 description: A URL pointing to the user's avatar image. required: - type - link description: A reference to a user's avatar image. When the user has no uploaded avatar, this falls back to their Gravatar image. CreateUserBody: type: object properties: email: type: string example: john-doe@example.com description: The user's email. firstName: type: string example: John description: The user's first name. lastName: type: string example: Doe description: The user's last name. username: type: string example: john-doe@example.com description: The user's username. If not provided the email will be used as the username. password: type: string example: '`.~b"J