---
title: "Get a training checkpoint upload URL"
method: POST
path: "/api/webhooks/models/upload"
tags: ["Models"]
---

# Get a training checkpoint upload URL

`POST /api/webhooks/models/upload`

## Request

- Base URL: `https://platform.ultralytics.com`
- URL: `https://platform.ultralytics.com/api/webhooks/models/upload`
- Auth: HTTP bearer

Uses Bearer API-key authentication. Supply modelId and runId from training_started to bind the upload to that run; worker keys require both and must be assigned to the training job. Legacy callers may supply modelId without runId, or project (username/project-slug) and name. Workspace editor access is required; uploads use the model owner’s storage. PUT checkpoint bytes to uploadUrl with Content-Type: application/octet-stream. For runId uploads, then send checkpoint_saved with modelId and data containing runId, modelPath=gcsPath, and uploadPath from this response. The event promotes the staged checkpoint; the generic upload completion endpoint does not perform this promotion.

## Request body

- object: Webhook body for model checkpoint upload
  - `project` string
  - `name` string
  - `filename` string, required
  - `modelId` string
  - `runId` integer
  - `size` number, nullable

## Response `200`

Checkpoint upload URL ready

- object
  - `uploadUrl` string, required: Signed URL for a PUT with Content-Type: application/octet-stream
  - `gcsPath` string, required: Checkpoint GCS path; for runId uploads, send as data.modelPath in checkpoint_saved
  - `uploadPath` string: Staging path returned for runId uploads; send in checkpoint_saved
  - `modelId` string, required

## Other responses

- `400`: Invalid model, run, filename, or file size
- `401`: Missing or invalid authentication
- `403`: Workspace access or worker assignment denied
- `404`: Project, model, or training run not found
- `429`: Rate limit exceeded
- `503`: Unable to generate upload URL

## Changes

- **2026-09-14** `54ba6c79aa6f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ultralytics/apis/ultralytics-platform-api/changes/api/webhooks/models/upload/post.md)

---

[API](https://skmtc.dev/ultralytics/apis/ultralytics-platform-api.md) - [All operations](https://skmtc.dev/ultralytics/apis/ultralytics-platform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ultralytics/apis/ultralytics-platform-api/revisions/9c562e23b0e4?raw)
