> This is the Markdown of https://backed.giving/developers/reference/file-inputs, a page of the Backed developer documentation. Every page is listed at https://backed.giving/developers/llms.txt.

# File Inputs

Downloads of files held by application and deliverable inputs. 1 operation: parameters, request body and answers, with examples.

- [GET /api/v2/file\_inputs/{id}](#downloadFileInput) — Download the file an input holds.

<a id="downloadFileInput"></a>
## GET /api/v2/file_inputs/{id}

**Download the file an input holds.**

The raw bytes of a live application’s file answer or a live milestone’s deliverable file, as `tahua_file_url` names it. A file still being scanned, infected or disposed is 404.

- Operation ID: `downloadFileInput`
- Authentication: A Bearer token from a credential holding the `read` scope.
- Also served at `/funding_system/api/v2/file_inputs/{id}`, the documented product’s alias path.

Example request:

```bash
curl "https://your-org.backed.giving/api/v2/file_inputs/55121" \
  -H "Authorization: Bearer $BACKED_TOKEN"
```

### Parameters

Parameters of GET /api/v2/file_inputs/{id}:

| Name | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `id` | path | Yes | `integer` | The id of the file input to download, as its `tahua_file_url` names it. Example: `55121`. |

<a id="downloadFileInput-200"></a>
### 200 response

The file’s bytes, with its own content type.

Headers: `Content-Disposition`, `Content-Length`, `Cache-Control`.

The body is the raw bytes (`*/*`), not JSON.

<a id="downloadFileInput-401"></a>
### 401 response

The token is missing, invalid, expired or revoked, of another Organisation, or API access is not Full. Ask for a new token.

Headers: `WWW-Authenticate`.

Example 401 response:

```json
{
  "error": "invalid_token",
  "error_description": "The access token is invalid or has expired"
}
```

<a id="downloadFileInput-403"></a>
### 403 response

The request was sent over plain HTTP and was not processed.

Example 403 response:

```json
{
  "error": "https_required"
}
```

<a id="downloadFileInput-404"></a>
### 404 response

An unknown host or path, or an id that is unknown, deleted or of another Organisation.

Example 404 response:

```json
{
  "error": "not_found"
}
```

<a id="downloadFileInput-429"></a>
### 429 response

A rate limit was exceeded: 120 requests a minute per credential, 30 token requests a minute per client\_id.

Headers: `Retry-After`.

Example 429 response:

```json
{
  "error": "rate_limited",
  "error_description": "Too many requests"
}
```

<a id="downloadFileInput-500"></a>
### 500 response

An unexpected server error.

Example 500 response:

```json
{
  "error": "server_error"
}
```

<a id="downloadFileInput-503"></a>
### 503 response

The Organisation’s API access cannot be determined, or a dependency is unavailable. Retry after the given seconds.

Headers: `Retry-After`.

Example 503 response:

```json
{
  "error": "temporarily_unavailable"
}
```
