---
title: "Get Checkpoint Upload Urls"
method: POST
path: "/api/v1/workspaces/{workspace_id}/sync/checkpoint-upload-url"
tags: ["workspaces"]
---

# Get Checkpoint Upload Urls

`POST /api/v1/workspaces/{workspace_id}/sync/checkpoint-upload-url`

Get presigned upload URLs for checkpoint sync (two-tier).

Returns:
- head_url: Presigned URL for HEAD bundle (null if already exists)
- checkpoint_url: Presigned URL for checkpoint bundle (always provided)

The HEAD bundle is keyed by SHA for deduplication - if it already exists,
head_url will be null to skip the upload.

## Path parameters

- `workspace_id` string, required

## Request body

- CheckpointUploadUrlRequest — Request for presigned upload URLs for a checkpoint. Returns 1-2 URLs: - head_url: Only if HEAD bundle doesn't exist yet (deduplicated by SHA) - checkpoint_url: Always returned for the checkpoint bundle
  - `head_sha` string, required
  - `checkpoint_id` string, required

## Response `200`

Successful Response

- CheckpointUploadUrlResponse — Response containing presigned upload URLs for checkpoint sync. head_url is null if the HEAD bundle already exists (deduplicated). checkpoint_url is always provided.
  - `head_url` string, nullable, required
  - `checkpoint_url` string, required
  - `head_storage_key` string, nullable, required
  - `checkpoint_storage_key` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/omnara/apis/omnara-api.md) · [All operations](https://skmtc.dev/omnara/apis/omnara-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/omnara/omnara-api/revisions/624048e40cad/schema)
