---
title: "Get a resumable upload session"
method: GET
path: "/v1/splats/uploads/{uploadId}"
tags: ["Uploads"]
---

# Get a resumable upload session

`GET /v1/splats/uploads/{uploadId}`

## Request

- Base URL: `https://playcanvas.com/api/supersplat`
- URL: `https://playcanvas.com/api/supersplat/v1/splats/uploads/{uploadId}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/playcanvas/apis/supersplat-api/docs/v1/splats/uploads/:uploadId/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns upload session state and any parts already observed by the server. Use this to resume an interrupted upload.

## Path parameters

- `uploadId` string, required: Opaque resumable upload session id.

## Response `200`

Upload session

- UploadSession: Resumable upload session state.
  - `id` string, required: Resumable upload session id.
  - `status` 'created' | 'uploading' | 'processing' | 'completed' | 'canceled', required: Lifecycle state of the resumable upload session. `processing` means the bytes have been committed and the splat is being finalized.
  - `contentLength` integer, nullable, required: Total source file size declared when creating the upload, or `null` when the client did not provide one.
  - `sourceFormat` 'ply' | 'sog' | 'ssog' | 'lcc', required: Format of the file being uploaded. Use `ply` for raw Gaussian splat PLY files, `sog` for SOG files, `ssog` for SSOG archives exported by SuperSplat, and `lcc` for LCC archives.
  - `title` string, required: Display title that will be used for the created splat.
  - `description` string, required: Display description that will be used for the created splat.
  - `softwareTools` string[]: Optional software catalogue IDs to attribute to the created splat. Use the software catalogue endpoint to discover currently supported IDs; this field is not an OpenAPI enum because the catalogue may grow over time.
  - `partSize` integer, required: Server-chosen target size in bytes for each uploaded part. Use this to split the file into multipart upload ranges; the final part may be smaller.
  - `uploadedParts` object[], required: Parts already observed by the server. Useful when resuming an interrupted upload.
    - `partNumber` integer, required: One-based part number in the multipart upload.
    - `etag` string, required: ETag for the uploaded part.
    - `size` integer: Actual observed size of this uploaded part in bytes, when known. This is resume metadata, not the target chunk size.
  - `expiresAt` string, date-time, required: When this upload session expires.

## Other responses

- `401`: Authentication required
- `403`: Forbidden
- `404`: Not found
- `429`: Rate limited

---

[API](https://skmtc.dev/playcanvas/apis/supersplat-api.md) - [All operations](https://skmtc.dev/playcanvas/apis/supersplat-api/llms.txt) - [OpenAPI document](https://skmtc.dev/playcanvas/apis/supersplat-api/revisions/a0f996dcea93?raw)
