> 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/flo-apis/matter-api/models.md).

# Models

## The MatterCSVFileError object

```json
{"openapi":"3.1.0","info":{"title":"Flo Web API — Matters","version":"2.0.0"},"components":{"schemas":{"MatterCSVFileError":{"type":"object","properties":{"description":{"type":"string","description":"A human-readable explanation of the rejection, with enough detail to correct the file."},"rowNumber":{"type":"integer","format":"int32","description":"The file row that could not be parsed (the header is row 1). Populated only for COLUMN_COUNT_MISMATCH."},"type":{"type":"string","description":"The kind of file-level rejection.","enum":["INVALID_FILE_SIZE","INVALID_ROW_COUNT","COLUMN_COUNT_MISMATCH","UNREADABLE_FILE"]}},"required":["description","type"]}}}}
```

## The MatterCSVRowErrors object

```json
{"openapi":"3.1.0","info":{"title":"Flo Web API — Matters","version":"2.0.0"},"components":{"schemas":{"MatterCSVRowErrors":{"type":"object","properties":{"columnsWithErrors":{"type":"array","description":"The column(s) that failed validation. Emails will fail validation if the addresses are not associated with existing perform member accounts.","items":{"type":"string"},"uniqueItems":true},"rowNumber":{"type":"integer","format":"int32","description":"The row number for the error."}}}}}}
```

## The MattersCSVUpsertResponse object

```json
{"openapi":"3.1.0","info":{"title":"Flo Web API — Matters","version":"2.0.0"},"components":{"schemas":{"MattersCSVUpsertResponse":{"type":"object","description":"Counts from a matter entry CSV upsert.","properties":{"created":{"type":"integer","format":"int32","description":"Number of matter entries newly created by this upsert."},"updated":{"type":"integer","format":"int32","description":"Number of existing matter entries whose stored fields were changed by this upsert. Rows whose non-key fields already matched the stored entry are not counted."}},"required":["created","updated"]}}}}
```

## The MattersCSVValidationResponse object

```json
{"openapi":"3.1.0","info":{"title":"Flo Web API — Matters","version":"2.0.0"},"components":{"schemas":{"MattersCSVValidationResponse":{"type":"object","properties":{"fileError":{"$ref":"#/components/schemas/MatterCSVFileError","description":"Present only when the whole file was rejected before per-row validation; null when the file parsed."},"numValidRows":{"type":"integer","format":"int32","description":"The number of valid rows in the CSV file."},"rowErrors":{"type":"array","description":"Details for each row containing errors. Empty if no rows have errors.","items":{"$ref":"#/components/schemas/MatterCSVRowErrors"}}}},"MatterCSVFileError":{"type":"object","properties":{"description":{"type":"string","description":"A human-readable explanation of the rejection, with enough detail to correct the file."},"rowNumber":{"type":"integer","format":"int32","description":"The file row that could not be parsed (the header is row 1). Populated only for COLUMN_COUNT_MISMATCH."},"type":{"type":"string","description":"The kind of file-level rejection.","enum":["INVALID_FILE_SIZE","INVALID_ROW_COUNT","COLUMN_COUNT_MISMATCH","UNREADABLE_FILE"]}},"required":["description","type"]},"MatterCSVRowErrors":{"type":"object","properties":{"columnsWithErrors":{"type":"array","description":"The column(s) that failed validation. Emails will fail validation if the addresses are not associated with existing perform member accounts.","items":{"type":"string"},"uniqueItems":true},"rowNumber":{"type":"integer","format":"int32","description":"The row number for the error."}}}}}}
```
