> For the complete documentation index, see [llms.txt](https://docs.joinflo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.joinflo.com/api-reference/user-api/models.md).

# Models

## The MemberCsvImportResult object

```json
{"openapi":"3.0.3","info":{"title":"Flo Recruit Web API — Members Import CSV","version":"1.0.0"},"components":{"schemas":{"MemberCsvImportResult":{"type":"object","properties":{"createdCount":{"type":"integer","format":"int32","description":"Number of new members created by this import."},"updatedCount":{"type":"integer","format":"int32","description":"Number of existing members updated by this import."},"absentMembers":{"type":"array","description":"Every non-admin member who already has access to this product but did\nnot appear in the uploaded CSV. An import never removes anyone, so use\nthis list to decide who to pass to `DELETE /members/bulk-remove` if the\nupload is meant to be authoritative. Empty when the CSV covered\neveryone.\n","items":{"$ref":"#/components/schemas/AbsentMember"}}}},"AbsentMember":{"type":"object","properties":{"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"}}}}}}
```

## The AbsentMember object

```json
{"openapi":"3.0.3","info":{"title":"Flo Recruit Web API — Members Import CSV","version":"1.0.0"},"components":{"schemas":{"AbsentMember":{"type":"object","properties":{"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"}}}}}}
```

## The MembersCsvValidationResult object

```json
{"openapi":"3.0.3","info":{"title":"Flo Recruit Web API — Members Import CSV","version":"1.0.0"},"components":{"schemas":{"MembersCsvValidationResult":{"type":"object","properties":{"fileError":{"$ref":"#/components/schemas/FileError"},"rowColumnErrors":{"type":"array","items":{"$ref":"#/components/schemas/RowColumnError"}}}},"FileError":{"type":"object","nullable":true,"properties":{"message":{"type":"string"},"type":{"type":"string","enum":["EMPTY_FILE","INVALID_FILE_FORMAT","MISSING_REQUIRED_COLUMNS","UNEXPECTED_COLUMNS","FILE_SIZE_EXCEEDED"]}}},"RowColumnError":{"type":"object","properties":{"columnName":{"type":"string"},"message":{"type":"string"},"rowNumber":{"type":"integer","format":"int32"},"type":{"type":"string","enum":["EMPTY_REQUIRED_VALUE","INVALID_EMAIL","INVALID_FORMAT","INVALID_URL","INVALID_YEAR","INVALID_DATE_FORMAT","DUPLICATE_VALUE","EXISTING_USER_CONFLICT","INVALID_LIST_SELECTION","INVALID_SSO_ID","ROW_VALUE_CONFLICT","UNKNOWN"]},"value":{"type":"string"}}}}}}
```

## The FileError object

```json
{"openapi":"3.0.3","info":{"title":"Flo Recruit Web API — Members Import CSV","version":"1.0.0"},"components":{"schemas":{"FileError":{"type":"object","nullable":true,"properties":{"message":{"type":"string"},"type":{"type":"string","enum":["EMPTY_FILE","INVALID_FILE_FORMAT","MISSING_REQUIRED_COLUMNS","UNEXPECTED_COLUMNS","FILE_SIZE_EXCEEDED"]}}}}}}
```

## The RowColumnError object

```json
{"openapi":"3.0.3","info":{"title":"Flo Recruit Web API — Members Import CSV","version":"1.0.0"},"components":{"schemas":{"RowColumnError":{"type":"object","properties":{"columnName":{"type":"string"},"message":{"type":"string"},"rowNumber":{"type":"integer","format":"int32"},"type":{"type":"string","enum":["EMPTY_REQUIRED_VALUE","INVALID_EMAIL","INVALID_FORMAT","INVALID_URL","INVALID_YEAR","INVALID_DATE_FORMAT","DUPLICATE_VALUE","EXISTING_USER_CONFLICT","INVALID_LIST_SELECTION","INVALID_SSO_ID","ROW_VALUE_CONFLICT","UNKNOWN"]},"value":{"type":"string"}}}}}}
```

## The Error object

```json
{"openapi":"3.0.3","info":{"title":"Flo Recruit Web API — Members Import CSV","version":"1.0.0"},"components":{"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}}}}}}
```
