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

# Uploading Files

The file upload process consists of two main steps:

* Obtain a signed URL for upload
* Upload your file using the signed URL

### Getting a signed url

Send a `POST` request to the following endpoint:

```
https://api.turbofiles.io/v1/files
```

Your request must include the following fields:

* `format`: The file's MIME type
* `size`: The file size in bytes

### Uploading Your File

Once you receive the response, locate the signed URL in `data.links.upload`.
Use this URL to upload your file by sending a `PUT` request.
Make sure the file size matches the size you specified when requesting the signed URL.

### File Lifecycle

Uploaded files are automatically deleted after 48 hours. During this period, you can use the files to trigger various tasks.

<RequestExample>
  ```http theme={null}
  POST /files HTTP/1.1
  Accept: application/vnd.api+json
  Content-Type: application/vnd.api+json

  {
    "data": {
      "type": "files",
      "attributes": {
        "format": "image/png",
        "size": 504233
      }
    }
  }
  ```
</RequestExample>

<ResponseExample>
  ```json {16} theme={null}
  {
    "jsonapi": {
      "version": "1.1"
    },
    "data": {
      "type": "files",
      "id": "8fhd83jpk",
      "attributes": {
        "format": "image/png",
        "size": 504233,
        "created_at": "2023-11-07T05:31:56Z",
        "updated_at": "2023-11-07T05:31:56Z"
      },
      "links": {
        "self": "<string>",
        "upload": "<string>",
        "download": "<string>"
      }
    },
    "links": {
      "self": "<string>"
    }
  }
  ```
</ResponseExample>
