---
title: "Create a remote model upload"
method: POST
path: "/v2/projects/{projectId}/models/uploads"
tags: ["VolumeService"]
---

# Create a remote model upload

`POST /v2/projects/{projectId}/models/uploads`

## Request

- Base URL: `https://api.together.ai`
- URL: `https://api.together.ai/v2/projects/{projectId}/models/uploads`
- Auth: HTTP bearer

Starts an asynchronous job that imports model files from Hugging Face or a presigned URL into a registered model and creates a model revision when the import completes.

## Path parameters

- `projectId` string, required: Project identifier.

## Request body

- DECreateRemoteUploadSpec: Request parameters for creating a remote upload.
  - `modelId` string, required: ID of the registered model that will receive the imported files.
  - `remoteUrl` string, required: Hugging Face repository URL or presigned archive URL to import.
  - `token` string: Optional source credential used to access a private remote location. The value is write-only and is not returned.

## Response `200`

OK

- DERemoteUpload: Asynchronous job that imports remote files into a registered model and creates a model revision.
  - `id` string, required: Unique ID of the remote model import job.
  - `projectId` string, required: ID of the project that owns the import job.
  - `modelId` string, required: ID of the registered model receiving the imported files.
  - `remoteUrl` string, required: Hugging Face repository or presigned URL being imported.
  - `status` 'REMOTE_UPLOAD_STATUS_PENDING' | 'REMOTE_UPLOAD_STATUS_RUNNING' | 'REMOTE_UPLOAD_STATUS_ERROR' | 'REMOTE_UPLOAD_STATUS_SUCCEEDED' | 'REMOTE_UPLOAD_STATUS_FAILED', required: Current lifecycle state of the asynchronous import job.
  - `statusMessage` string: Human-readable progress or failure detail for the current status.
  - `restartCount` integer: Number of times the import worker has restarted this job.
  - `maxRestarts` integer: Maximum worker restarts allowed before the job fails permanently.
  - `createdAt` string, date-time, required: Time when the import job was created.
  - `updatedAt` string, date-time: Time when the import job was last updated.

## Other responses

- `default`: Default error response

## Changes

- **2026-10-22** `bb5257b3173a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/together/apis/together-apis/changes/v2/projects/:projectId/models/uploads/post.md)

---

[API](https://skmtc.dev/together/apis/together-apis.md) - [All operations](https://skmtc.dev/together/apis/together-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/together/apis/together-apis/revisions/93438ddac711?raw)
