---
title: "Create a public delivery link"
method: POST
path: "/v1/workspaces/{workspaceId}/assets/collections/{collectionId}/share"
tags: ["Assets"]
---

# Create a public delivery link

`POST /v1/workspaces/{workspaceId}/assets/collections/{collectionId}/share`

## Request

- Base URL: `https://shareout.site`
- URL: `https://shareout.site/v1/workspaces/{workspaceId}/assets/collections/{collectionId}/share`
- Auth: HTTP bearer

Mint an unguessable `/d/<token>` download page for a collection. Optional `gate` (`none`, `password`, `domain`), `expiresAt`, and gate inputs. Protected deliveries stream bytes through `/d/<token>/file/<blobId>`.

## Request body

- AssetShareRequest
  - `expiresAt` string, date-time, nullable
  - `gate` 'none' | 'password' | 'domain'
  - `password` string: Required when gate=password.
  - `domains` string[]: Required when gate=domain (e.g. acme.com).

## Response `201`

Share link created

- AssetShareLink
  - `id` string
  - `url` string, uri
  - `collectionName` string
  - `fileCount` integer
  - `gate` 'none' | 'password' | 'domain'
  - `expiresAt` string, date-time, nullable
  - `viewCount` integer
  - `revoked` boolean
  - `expired` boolean

## Other responses

- `400`: Invalid request
- `403`: Access denied

## Changes

- **2026-10-09** `1069d922d239`: 16 info
  - added the optional property `docs` to the response with the `400` status
  - added the optional property `docs` to the response with the `403` status
  - added the optional property `hint` to the response with the `400` status
  - added the optional property `hint` to the response with the `403` status
  - …12 more

[Operation history](https://skmtc.dev/shareout/apis/shareout-rest-api/changes/v1/workspaces/:workspaceId/assets/collections/:collectionId/share/post.md)

---

[API](https://skmtc.dev/shareout/apis/shareout-rest-api.md) - [All operations](https://skmtc.dev/shareout/apis/shareout-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/shareout/apis/shareout-rest-api/revisions/1e3f7fd34f6d?raw)
