# List the dropped files

Page: https://sandbox.myclaimhouse.com/docs/api/listSftpFiles

`GET /api/v1/sftp-account/files`

The files taken from the account's IN and TEST/IN folders, newest first, one page at a time, each with what became of it: how many claims it made and how many it refused, and the names of the 997, 277 and report written for it. A key sees the files of its own mode only: a test key lists TEST/IN files, and asking it for mode=live returns none. The claims themselves are in GET /claims.

Needs a key with `read` permission.

## Request

### Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `limit` | integer | No | How many items to return, from 1 to 100. Default 25. At least 1. At most 100. |
| `cursor` | string | No | The next_cursor of the previous page, to get the page after it. Opaque: pass it back unchanged. |
| `mode` | string | No | Only files of this mode. A key sees only the files of its own mode: asking for the other mode returns none. One of: `test`, `live`. |

## Response

A page of dropped files. Status `200`.

| Name | Type | Description |
| --- | --- | --- |
| `data` | array of object |  |
| `data[].object` | string | Always `sftp_file`. |
| `data[].name` | string | The file's name as it was dropped. |
| `data[].mode` | string | test for a file dropped in TEST/IN, live for IN. One of: `test`, `live`. |
| `data[].size` | integer | Bytes. At least -9007199254740991. |
| `data[].taken_at` | string (date-time) | When Claim House took the file from the folder. |
| `data[].result` | string | stored: the file was read and its claims made or refused one by one. refused: the file was refused whole (too large, too many claims, or not an 837D). One of: `stored`, `refused`. |
| `data[].file_id` | string or null | The stored copy of the file, the same ID Batches & files shows. Null for a file refused without being stored. |
| `data[].claims_created` | integer | At least -9007199254740991. |
| `data[].claims_refused` | integer | At least -9007199254740991. |
| `data[].responses` | array of string | The names of the files written to OUT (or TEST/OUT) for it: its 997, its 277 and its report. Empty until the file has been read. |
| `next_cursor` | value | Pass as cursor to get the next page; null when there is no next page. |

## Errors

| HTTP status | Code | What it means |
| --- | --- | --- |
| 401 | `UNAUTHORIZED` | A valid API key is required. Send it as "Authorization: Bearer <key>". |
| 403 | `PERMISSION_DENIED` | This API key is not allowed to do that. |
| 422 | `INVALID_REQUEST` | The request is not valid. |
| 504 | `TIMEOUT` | The request took too long to finish. It may still have taken effect: look it up before sending it again with a new Idempotency-Key. What it made is found with GET /api/v1/eligibility?request_id=<this request_id>, and the same filter on /api/v1/claims and /api/v1/attachments (a key with read permission). |
| 500 | `INTERNAL` | Something went wrong on our side. Quote the request ID if you contact us. |

## Example

### Example request

```bash
curl "https://sandbox.myclaimhouse.com/api/v1/sftp-account/files?limit=25" \
  -H "Authorization: Bearer $CLAIMHOUSE_KEY"
```

### Example response: 200

```json
{
  "data": [
    {
      "object": "sftp_file",
      "name": "claims-0924.837",
      "mode": "test",
      "size": 4821,
      "taken_at": "2026-09-24T21:01:00+00:00",
      "result": "stored",
      "file_id": "fil_01JM000000E00800000000008J",
      "claims_created": 2,
      "claims_refused": 1,
      "responses": [
        "claims-0924.837.997",
        "claims-0924.837.277",
        "claims-0924.837.report.txt"
      ]
    }
  ],
  "next_cursor": null
}
```
