# Uploading Media to Brandfolder ## Use Case: Uploading from public cloud system Brandfolder can load media from any direct public url. This often works well when you are initially migrating content into your Brandfolder. In the case of an initial migration, clients will generally create a “migration” section inside their Brandfolder to contain all migrated material and then will organize according to the internal business rules they have. Prior to the request, ensure that the public url you provide will remain alive for at least a couple of hours (especially for large files). `POST: https://brandfolder.com/api/v4/brandfolders//assets` > Payload: ```json { "data": { "attributes": [ { "name": "Example Name", "description": "optional", "attachments": [ { "url": "public url", "filename": "optional" } ] } ] } } ``` ## Use Case: Uploading from private system In the case that you want to upload a file from local storage and do not have access to a public URL, you can use our `Upload Requests` to successfully upload your content. This is a three step process. 1. You need to request an upload url that Brandfolder can use for the file. `GET https://brandfolder.com/api/v4/upload_requests` From the data sent back grab `data[“upload_ur’]` and data[“object_url”] ← that is the public url to use in the last step 2. Upload the file. > CURL upload request: ```shell curl -x PUT --data-binary @/path/to/content ` ``` 3. Create the asset in Brandfolder following the normal upload media recipe and utilize `data[“object_url”]` in place of public url.