Result of a CSV bulk upload. The same shape is returned for 200 (all rows succeeded or all failed) and 207 (mixed). Per-row outcomes live in results; the row's success is ok, and failures carry machine-readable codes in errors.
| Name | Type | Description | Notes |
|---|---|---|---|
| total | Integer | Number of data rows processed from the CSV | [optional] |
| valid | Integer | Count of rows that succeeded (results[].ok === true) | [optional] |
| invalid | Integer | Count of rows that failed (total - valid) | [optional] |
| results | List<BulkUploadResultResultsInner> | One entry per CSV data row, in row order. | [optional] |
| warnings | List<String> | Top-level advisory warnings (e.g. `rows_exceed_advisory_limit:500`). Empty when none. | [optional] |
| rateLimitedAccounts | List<BulkUploadResultRateLimitedAccountsInner> | Present only when one or more rows targeted an account currently in cooldown. Lets callers map `rate_limited:*` row errors back to structured metadata without parsing the error strings. | [optional] |