# Files

## Get file info

<mark style="color:blue;">`GET`</mark> `https://api.appmixer.com/files/metadata/:fileId`

Get the information for the specified file. Note that the file content is not included.

#### Path Parameters

| Name   | Type   | Description                    |
| ------ | ------ | ------------------------------ |
| fileId | string | The UUID of the required file. |

{% tabs %}
{% tab title="200 " %}

```
{
    "length": 146737,
    "chunkSize": 261120,
    "uploadDate": "2020-07-24T19:19:49.755Z",
    "filename": "chart1.png",
    "md5": "1d0ed5eb2cacbab4526de272837102dd",
    "metadata": {
        "userId": "5f15d59cef81ecb3344fab55"
    },
    "contentType": "image/png",
    "fileId": "f179c163-2ad8-4f9d-bce5-95200691b7f9"
}
```

{% endtab %}
{% endtabs %}

## Upload a file

<mark style="color:green;">`POST`</mark> `https://api.appmixer.com/files`

Upload file to Appmixer. Uploads by chunks are supported, and whether if sent file is treated as a chunk or a new file depends on the headers sent. Also, `Content-type` must be set to `multipart/form-data`.

#### Headers

| Name                  | Type   | Description                                                                                                                                                                                                                                                  |
| --------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Content-type          | string | Must be set to `multipart/form-data`                                                                                                                                                                                                                         |
| uploader-file-id      | string | If set, the current file will be appended as a chunk to the file specified by this. If not present, a new file will be created. The response includes the resulting file's ID, so it can be used in subsequent requests to add chunks to the generated file. |
| uploader-file-name    | string | The name of the file. This will be ignored in case that `uploader-file-id header` is present.                                                                                                                                                                |
| uploader-chunk-size   | string | The size in bytes of the file/chunk being uploaded.                                                                                                                                                                                                          |
| uploader-chunk-number | string | This header is `uploader-chunk-number`. The ordinal number of this chunk - e.g. the first chunk is 1, the second is 2 and so on.                                                                                                                             |
| uploader-chunks-total | string | This header is `uploader-chunks-total`. The total number of chunks that compose the file. If set to 1, it means that this is the complete file                                                                                                               |

#### Request Body

| Name | Type   | Description                   |
| ---- | ------ | ----------------------------- |
| file | string | The file/chunk to be uploaded |

{% tabs %}
{% tab title="200 The fileId inside the response can be used to upload more chunks for the same file, or in other endpoints to reference this file." %}

```
{
  "length": 146737,
  "chunkSize": 261120,
  "uploadDate": "2020-07-24T20:23:38.565Z",
  "filename": "chart1.png",
  "md5": "1d0ed5eb2cacbab4526de272837102dd",
  "metadata": {
    "userId": "5f15d59cef81ecb3344fab55"
  },
  "contentType": "image/png",
  "fileId": "8cb8fed0-0cd8-4478-8372-9f7cb4eb16e3"
}
```

{% endtab %}
{% endtabs %}
