> ## Documentation Index
> Fetch the complete documentation index at: https://docs.together.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a remote model upload

> 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.



## OpenAPI

````yaml POST /projects/{projectId}/models/uploads
openapi: 3.1.0
info:
  title: Together APIs
  description: The Together REST API. See https://docs.together.ai for more details.
  version: 2.0.0
  termsOfService: https://www.together.ai/terms-of-service
  contact:
    name: Together Support
    url: https://www.together.ai/contact
  license:
    name: MIT
    url: https://github.com/togethercomputer/openapi/blob/main/LICENSE
servers:
  - url: https://api.together.ai/v1
    description: Default environment for APIs
  - url: https://api-inference.together.ai/v2
    description: Optimized environment for inference
security:
  - bearerAuth: []
paths:
  /projects/{projectId}/models/uploads:
    post:
      tags:
        - VolumeService
      summary: Create a remote model upload
      description: >-
        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.
      operationId: VolumeService_CreateRemoteModelUpload
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            description: Project identifier.
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DE.CreateRemoteUploadSpec'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DE.RemoteUpload'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorData'
      servers:
        - url: https://api.together.ai/v2
components:
  schemas:
    DE.CreateRemoteUploadSpec:
      description: Request parameters for creating a remote upload.
      type: object
      required:
        - modelId
        - remoteUrl
      properties:
        modelId:
          type: string
          description: ID of the registered model that will receive the imported files.
        remoteUrl:
          type: string
          description: Hugging Face repository URL or presigned archive URL to import.
        token:
          type: string
          description: >-
            Optional source credential used to access a private remote location.
            The value is write-only and is not returned.
    DE.RemoteUpload:
      type: object
      required:
        - id
        - projectId
        - modelId
        - remoteUrl
        - status
        - createdAt
      properties:
        id:
          type: string
          description: Unique ID of the remote model import job.
        projectId:
          type: string
          description: ID of the project that owns the import job.
        modelId:
          type: string
          description: ID of the registered model receiving the imported files.
        remoteUrl:
          type: string
          description: Hugging Face repository or presigned URL being imported.
        status:
          enum:
            - REMOTE_UPLOAD_STATUS_PENDING
            - REMOTE_UPLOAD_STATUS_RUNNING
            - REMOTE_UPLOAD_STATUS_ERROR
            - REMOTE_UPLOAD_STATUS_SUCCEEDED
            - REMOTE_UPLOAD_STATUS_FAILED
          type: string
          description: Current lifecycle state of the asynchronous import job.
        statusMessage:
          type: string
          description: Human-readable progress or failure detail for the current status.
        restartCount:
          type: integer
          description: Number of times the import worker has restarted this job.
        maxRestarts:
          type: integer
          description: Maximum worker restarts allowed before the job fails permanently.
        createdAt:
          type: string
          format: date-time
          description: Time when the import job was created.
        updatedAt:
          type: string
          format: date-time
          description: Time when the import job was last updated.
      description: >-
        Asynchronous job that imports remote files into a registered model and
        creates a model revision.
    ErrorData:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              nullable: false
            type:
              type: string
              nullable: false
            param:
              type: string
              nullable: true
              default: null
            code:
              type: string
              nullable: true
              default: null
          required:
            - type
            - message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      x-bearer-format: bearer
      x-default: default

````