> ## Documentation Index
> Fetch the complete documentation index at: https://docs.peepsai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get an upload

> Check the state of an upload your API key sent: whether Peeps filed its results, rejected a file, or waits for someone to map tests.

Returns the status of an upload the same key sent. Any other upload answers `404`, as if it didn't exist. The [send's response](/api-reference/results/send-a-report-file#response) gives you this URL as `statusUrl`.

**uploadId** `string` *required*

The `uploadId` from the send's response.

**Authorization** `string` *required*

`Bearer` followed by the [API key](/api-reference/api-keys) that sent the upload.

## Response

**uploadId** `string`

The upload.

**release** `string`

The release this upload is filed under. For a file counted in `alreadyInPeeps`, the earlier results stay where they were first filed; `release` and `reportUrl` don't point at that earlier filing.

**state** `string`

One of:

* `receiving`: Peeps hasn't stored the file yet.
* `applying`: Peeps is filing the results.
* `awaiting_answers`: a file looks like a duplicate of a run already filed, and waits for an answer on the release page.
* `ready`: Peeps has finished processing the upload. Check `rejectedFiles` and `waitingForAnswers`: `ready` alone doesn't mean results were filed.
* `failed`: Peeps couldn't file the results. Send the file again.
* `expired`: the file never arrived. Send it again.

**waitingForAnswers** `integer`

How many of this upload's tests wait for someone to choose their test case. Their results are kept and file once someone maps them with **Map tests** on the release page.

**duplicateQuestions** `integer`

How many open questions ask whether one of this upload's files repeats a run already filed.

**rejectedFiles** `object[]`

Files Peeps couldn't read as a report.

**properties**

**name** `string`

The file's name.

**code** `string`

Why, for example `malformed_report` (Peeps couldn't read the report) or `report_too_large` (Peeps rejected the report as too large while processing it, which is separate from the `413 too_large` refusal when sending).

**alreadyInPeeps** `integer`

How many of this upload's files were already filed in the project.

**reportUrl** `string`

The release page in Peeps, as in the send's response.

## Errors

Checking an upload can return `401`, `404`, `422 platform_not_supported`, `429`, `503 results_unavailable` and `500`. See the [errors table](/api-reference/introduction#errors).

```bash curl theme={null}
curl --fail-with-body -sS \
  -H "Authorization: Bearer $PEEPS_API_KEY" \
  "https://app.peepsai.com/api/v1/results/uploads/8f0c6a52-3d1e-4f7b-9a4e-2b6f1c0d9e7a"
```

```json 200 theme={null}
{
  "uploadId": "8f0c6a52-3d1e-4f7b-9a4e-2b6f1c0d9e7a",
  "release": "2.0",
  "state": "ready",
  "waitingForAnswers": 2,
  "duplicateQuestions": 0,
  "rejectedFiles": [],
  "alreadyInPeeps": 0,
  "reportUrl": "https://app.peepsai.com/acme/releases/WEB/2.0"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.