Skip to main content
POST
/
deal-folder
/
{dealFolder}
/
files
Upload a new file slot to a deliverable
curl --request POST \
  --url http://localhost/mogl/mogl-backend/api/deal-folder/{dealFolder}/files \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form milestone_athlete_rel_id=88 \
  --form file='@example-file'
{
  "status": "success",
  "message": "File uploaded successfully.",
  "data": {
    "id": 5,
    "deal_folder_id": 12,
    "milestone_athlete_rel_id": 88,
    "slot_number": 1,
    "status": 1,
    "status_label": "Needs Approval",
    "uploaded_by_user_id": 42,
    "current_version": {
      "id": 11,
      "deal_folder_file_id": 5,
      "file_path": "deal-folders/12/slot-1/v1/foo.mp4",
      "file_name": "foo.mp4",
      "file_size": 8421376,
      "file_mime_type": "video/mp4",
      "thumbnail_path": null,
      "version_number": 1,
      "is_current": true,
      "uploaded_by_user_id": 42,
      "created_at": "2026-04-01T12:00:00Z",
      "updated_at": "2026-04-01T12:00:00Z"
    },
    "created_at": "2026-04-01T12:00:00Z",
    "updated_at": "2026-04-01T12:05:00Z",
    "deleted_at": null
  }
}

Authorizations

Authorization
string
header
required

JWT Bearer token authentication. Use the /api/login endpoint to obtain a token.

Path Parameters

dealFolder
integer
required

Deal folder ID

Example:

12

Body

multipart/form-data
milestone_athlete_rel_id
integer
required

MilestonesAthleteRel ID this file belongs to.

Example:

88

file
file
required

File to upload. Max 250 MB.

Response

File uploaded

status
string
Example:

"success"

message
string
Example:

"File uploaded successfully."

data
object

A Deal Folder file slot (workflow unit). The integer status field and its rolled-up string equivalents (deal_folder_file_status at the milestone level, deal_folder_status at the folder level) all draw from the same App\Enums\DealFolderStatus values.