# Create

Launch stage: Public Preview

`POST /api/2.0/marketplace-provider/files`

Create a file. Currently, only provider icons and attached notebooks are supported.

API scopes: marketplace

## Request body

- `file_parent` (object, optional)
  - `parent_id` (string, optional)
  - `file_parent_type` (string, optional)
    Possible values: `PROVIDER`, `LISTING`, `LISTING_RESOURCE`
- `marketplace_file_type` (string, optional)
  Possible values: `PROVIDER_ICON`, `EMBEDDED_NOTEBOOK`, `APP`
- `mime_type` (string, optional)
- `display_name` (string, optional)

## Returns

- `upload_url` (string, optional)
  Pre-signed POST URL to blob storage
- `file_info` (object, optional)
  - `id` (string, optional)
  - `marketplace_file_type` (string, optional)
    Possible values: `PROVIDER_ICON`, `EMBEDDED_NOTEBOOK`, `APP`
  - `file_parent` (object, optional)
    - `parent_id` (string, optional)
    - `file_parent_type` (string, optional)
      Possible values: `PROVIDER`, `LISTING`, `LISTING_RESOURCE`
  - `mime_type` (string, optional)
  - `download_link` (string, optional)
  - `created_at` (int64, optional)
  - `updated_at` (int64, optional)
  - `display_name` (string, optional)
    Name displayed to users for applicable files, e.g. embedded notebooks
  - `status` (string, optional)
    Possible values: `FILE_STATUS_PUBLISHED`, `FILE_STATUS_STAGING`, `FILE_STATUS_SANITIZING`, `FILE_STATUS_SANITIZATION_FAILED`
  - `status_message` (string, optional)
    Populated if status is in a failed state with more information on reason for the failure.

## Response

```json
{
  "upload_url": "string",
  "file_info": {
    "id": "string",
    "marketplace_file_type": "string",
    "file_parent": {},
    "mime_type": "string",
    "download_link": "string",
    "created_at": 0,
    "updated_at": 0,
    "display_name": "string",
    "status": "string",
    "status_message": "string"
  }
}
```

