# List Uploads

Lists your uploads (newest first) with their `uploadId`, file name, status, upload date and expiry date. Use this to discover an `uploadId` when you have not stored it — for example to find a recent upload and then poll its status or retrieve its results.

> You can also browse your uploads visually on the **Records** page in the client portal — no API calls needed.


## Endpoint

```
GET https://app.jondax.eu/api/v1/uploads
Authorization: Bearer <JONDAX_API_KEY>
```

Authentication uses your API key (the same one used for uploads) — no session JWT is required. Only uploads belonging to your account are returned.

## Query parameters

All parameters are optional. With none supplied, the **10 most recent** uploads are returned, newest first.

| Parameter | Type | Description |
|  --- | --- | --- |
| `limit` | integer | Maximum number of uploads to return, `1`–`100`. Defaults to `10`. |
| `fromDate` | string (date) | Only include uploads on or **after** this date (inclusive, ISO-8601, e.g. `2026-08-01`). |
| `toDate` | string (date) | Only include uploads on or **before** this date (inclusive). Set `fromDate` == `toDate` to list a single day. |
| `status` | string | Only include uploads with this status: `uploaded`, `processing`, `completed`, or `failed`. |


Filters combine — e.g. `?status=completed&fromDate=2026-08-01&toDate=2026-08-07` returns completed uploads within that date range.

## Example requests

```bash
# 10 most recent uploads
curl --location 'https://app.jondax.eu/api/v1/uploads' \
--header 'Authorization: Bearer <JONDAX_API_KEY>'

# Latest 5 completed uploads
curl --location 'https://app.jondax.eu/api/v1/uploads?limit=5&status=completed' \
--header 'Authorization: Bearer <JONDAX_API_KEY>'

# Uploads on a single day
curl --location 'https://app.jondax.eu/api/v1/uploads?fromDate=2026-08-27&toDate=2026-08-27' \
--header 'Authorization: Bearer <JONDAX_API_KEY>'
```

## Response (HTTP 200)

```json
{
  "success": true,
  "count": 2,
  "uploads": [
    {
      "uploadId": "<uploadId>",
      "transactionId": 3120,
      "fileName": "08.png",
      "status": "completed",
      "uploadedDate": "2026-08-27T10:37:13.070Z",
      "expiresAt": "2026-09-26T10:37:13.070Z"
    },
    {
      "uploadId": "<uploadId>",
      "transactionId": 3115,
      "fileName": "lab-report.pdf",
      "status": "processing",
      "uploadedDate": "2026-08-26T14:02:10.123Z",
      "expiresAt": "2026-09-25T14:02:10.123Z"
    }
  ]
}
```

When you have no uploads matching the criteria, `count` is `0` and `uploads` is an empty array (HTTP 200, not an error).

## Response field reference

| Field | Type | Description |
|  --- | --- | --- |
| `success` | boolean | Always `true` on success. |
| `count` | integer | Number of uploads returned in this response. |
| `uploads[].uploadId` | string | UUID identifying the upload — use it with the status and results endpoints. |
| `uploads[].transactionId` | integer | Internal transaction identifier. |
| `uploads[].fileName` | string | Original uploaded filename. |
| `uploads[].status` | string | Processing status — see values below. |
| `uploads[].uploadedDate` | string | ISO 8601 timestamp when the upload was received. |
| `uploads[].expiresAt` | string | null | ISO 8601 timestamp when this record is purged (30 days after upload). |


### `status` values

| Value | Description |
|  --- | --- |
| `uploaded` | File received and queued for processing. |
| `processing` | Extraction and transformation in progress. |
| `completed` | Processing finished; results available. |
| `failed` | Processing failed. |


## Error responses

| Status | Meaning |
|  --- | --- |
| `400` | Invalid query parameter — malformed date, `limit` outside `1`–`100`, or an unknown `status` value. |
| `401` | Missing or invalid API key. |


## Data retention

Uploads are retained for **30 days** from the upload date. Expired uploads are purged and no longer appear in the list. See [Status Polling](/docs/pathology/status-polling) to track a specific upload, or [Result Retrieval](/docs/pathology/result-retrieval) to fetch its structured output.