Storage shares let you mount a directory from a source container into one or more target containers. Shares can target a single container (1:1) or every container in a project (project-wide). The source container controls what path is shared; target mount paths are assigned automatically by the server.
Use these endpoints to create, list, retrieve, update, toggle, and delete storage shares, and to inspect incoming shares (storage that other containers share with you).
Note
Source paths are security-hardened: the API rejects kernel paths (/proc/*, /sys/*, /dev/*, /boot/*, /run/*, /var/run/*), path traversal (..), and null bytes. Only characters a-z A-Z 0-9 / - _ . are permitted.
Get all shares targeting a specific container. Returns both direct shares and project-level shares, with deduplication (direct shares take priority over project shares) and self-shares / expired shares filtered out.
Name In Type Required Description idpath string Yes Container ID
"message" : " Incoming shares retrieved successfully " ,
"id" : " 507f1f77bcf86cd799439011 " ,
"source_container_id" : " 507f1f77bcf86cd799439022 " ,
"source_path" : " /etc/app/config " ,
"target_container_id" : " 507f1f77bcf86cd799439033 " ,
"target_project_id" : null ,
"target_type" : " container " ,
"created_by" : " 507f1f77bcf86cd799439044 " ,
"created_at" : " 2025-01-15T10:30:00.000Z " ,
"updated_at" : " 2025-01-15T10:30:00.000Z "
"id" : " 507f1f77bcf86cd799439077 " ,
"source_container_id" : " 507f1f77bcf86cd799439088 " ,
"source_path" : " /opt/shared-libs " ,
"target_container_id" : null ,
"target_project_id" : " 507f1f77bcf86cd799439055 " ,
"target_type" : " project " ,
"created_by" : " 507f1f77bcf86cd799439044 " ,
"created_at" : " 2025-01-01T00:00:00.000Z " ,
"updated_at" : " 2025-01-01T00:00:00.000Z "
"message" : " Authentication token required "
"message" : " Insufficient permissions "
"message" : " Container not found "
const shares = await client . api . storageShares . listIncoming ( {
id: " 507f1f77bcf86cd799439033 "
Get all shares targeting any of your containers across all projects. Useful for an account-wide inventory of incoming storage.
Name In Type Required Description realm_idquery string No Filter by realm ID. Alternative to using the realm subdomain in the URL.
"message" : " All incoming shares retrieved successfully " ,
"id" : " 507f1f77bcf86cd799439011 " ,
"source_container_id" : " 507f1f77bcf86cd799439022 " ,
"source_path" : " /home/app/shared-data " ,
"target_container_id" : " 507f1f77bcf86cd799439033 " ,
"target_project_id" : null ,
"target_type" : " container " ,
"expires_at" : 1735689599 ,
"created_by" : " 507f1f77bcf86cd799439044 " ,
"created_at" : " 2025-01-15T10:30:00.000Z " ,
"updated_at" : " 2025-01-15T10:30:00.000Z "
"message" : " Authentication token required "
const incoming = await client . api . storageShares . listIncomingGlobalIterator ( {
realm_id: " 507f1f77bcf86cd799439010 "
List every share that originates from a specific source container. Supports filters by target type, label, status, enabled flag, expiry, and realm.
Name In Type Required Description idpath string Yes Source container ID target_typequery string No Filter by target type. Allowed: container, project. labelquery string No Filter by label statusquery string No Filter by status. Allowed: active, failed. enabledquery string No Filter by enabled status. Allowed: true, false. include_expiredquery string No Include expired shares. Allowed: true, false. Default: false. realm_idquery string No Filter by realm ID. Alternative to using the realm subdomain in the URL.
"message" : " Storage shares retrieved successfully " ,
"id" : " 507f1f77bcf86cd799439011 " ,
"source_container_id" : " 507f1f77bcf86cd799439022 " ,
"source_path" : " /home/app/shared-data " ,
"target_container_id" : " 507f1f77bcf86cd799439033 " ,
"target_project_id" : null ,
"target_type" : " container " ,
"alias" : " prod-data-share " ,
"description" : " Shared application data directory " ,
"expires_at" : 1735689599 ,
"expiry_notified" : false ,
"created_by" : " 507f1f77bcf86cd799439044 " ,
"created_at" : " 2025-01-15T10:30:00.000Z " ,
"updated_at" : " 2025-01-15T10:30:00.000Z "
"id" : " 507f1f77bcf86cd799439066 " ,
"source_container_id" : " 507f1f77bcf86cd799439022 " ,
"source_path" : " /var/log/app " ,
"target_container_id" : null ,
"target_project_id" : " 507f1f77bcf86cd799439055 " ,
"target_type" : " project " ,
"description" : " Application logs shared with project " ,
"expiry_notified" : false ,
"created_by" : " 507f1f77bcf86cd799439044 " ,
"created_at" : " 2025-01-10T08:00:00.000Z " ,
"updated_at" : " 2025-01-10T08:00:00.000Z "
"message" : " Authentication token required "
"message" : " Insufficient permissions "
const shares = await client . api . storageShares . listIterator ( {
id: " 507f1f77bcf86cd799439022 " ,
target_type: " container " ,
List every storage share you have created across all of your containers (what you are sharing with others).
Name In Type Required Description realm_idquery string No Filter by realm ID. Alternative to using the realm subdomain in the URL.
"message" : " All storage shares retrieved successfully " ,
"id" : " 507f1f77bcf86cd799439011 " ,
"source_container_id" : " 507f1f77bcf86cd799439022 " ,
"source_path" : " /home/app/shared-data " ,
"target_container_id" : " 507f1f77bcf86cd799439033 " ,
"target_project_id" : null ,
"target_type" : " container " ,
"alias" : " prod-data-share " ,
"description" : " Shared application data directory " ,
"expires_at" : 1735689599 ,
"expiry_notified" : false ,
"created_by" : " 507f1f77bcf86cd799439044 " ,
"created_at" : " 2025-01-15T10:30:00.000Z " ,
"updated_at" : " 2025-01-15T10:30:00.000Z "
"message" : " Authentication token required "
const shares = await client . api . storageShares . listGlobalIterator ();
Retrieve the full details of a single storage share.
Name In Type Required Description idpath string Yes Source container ID shareIdpath string Yes Share ID
"message" : " Storage share retrieved successfully " ,
"id" : " 507f1f77bcf86cd799439011 " ,
"source_container_id" : " 507f1f77bcf86cd799439022 " ,
"source_path" : " /home/app/shared-data " ,
"target_container_id" : " 507f1f77bcf86cd799439033 " ,
"target_project_id" : null ,
"target_type" : " container " ,
"alias" : " prod-data-share " ,
"description" : " Shared application data directory " ,
"expires_at" : 1735689599 ,
"expiry_notified" : false ,
"created_by" : " 507f1f77bcf86cd799439044 " ,
"created_at" : " 2025-01-15T10:30:00.000Z " ,
"updated_at" : " 2025-01-15T10:30:00.000Z "
"message" : " Authentication token required "
"message" : " Insufficient permissions "
"message" : " Storage share not found "
const share = await client . api . storageShares . get ( {
id: " 507f1f77bcf86cd799439022 " ,
shareId: " 507f1f77bcf86cd799439011 "
Share a directory from a source container to either a single target container or to every container in a target project. The share is automatically mounted on the target(s).
Name In Type Required Description idpath string Yes Source container ID
Name Type Required Description source_pathstring Yes Absolute path inside the source container. Subject to the path-security rules above. target_container_idstring No Target container ID for a 1:1 share. Mutually exclusive with target_project_id. target_project_idstring No Target project ID for a project-wide share. Mutually exclusive with target_container_id. modestring Yes Mount mode. Allowed: readonly, readwrite. aliasstring No Optional lowercase alphanumeric alias (3–63 chars, hyphens/underscores allowed). labelstring No Optional label for grouping shares (same constraints as alias). descriptionstring No Optional description (max 1000 chars). enabledboolean No Enable the share on creation. Default: true. expires_atnumber No Unix timestamp (seconds) when the share should auto-expire.
"message" : " Storage share created successfully " ,
"id" : " 507f1f77bcf86cd799439020 " ,
"source_container_id" : " 507f1f77bcf86cd799439012 " ,
"source_path" : " /data/shared " ,
"target_container_id" : null ,
"target_project_id" : " 507f1f77bcf86cd799439010 " ,
"target_type" : " project " ,
"alias" : " team-shared-data " ,
"description" : " Shared project files for team collaboration " ,
"expires_at" : 1738252800 ,
"expiry_notified" : false ,
"created_by" : " 507f1f77bcf86cd799439001 " ,
"created_at" : " 2025-01-29T15:00:00.000Z " ,
"updated_at" : " 2025-01-29T15:00:00.000Z "
"error" : " VALIDATION_ERROR " ,
"message" : " Validation failed "
Error Code Title Description Resolution VALIDATION_ERRORInvalid input parameters One or more request parameters failed validation Check the error message for specific field requirements and correct your input INVALID_PATHInvalid Path The provided source or destination path is invalid. Kernel paths like /proc, /sys, /dev are not allowed. Provide a valid, non-kernel path for the storage share. SELF_SHARECannot Share to Self A container cannot share a directory with itself. Choose a different target container or project.
"message" : " Authentication token required "
Error Code Title Description Resolution MISSING_TOKENAuthentication token missing No authentication token was provided in the request Include a valid JWT token in the Authorization header as Bearer <token> INVALID_TOKENInvalid authentication token The provided authentication token is malformed or invalid Obtain a new token by logging in again or using a valid auth token
"message" : " Insufficient permissions "
Error Code Title Description Resolution INSUFFICIENT_PERMISSIONSInsufficient permissions You do not have the required permissions to perform this action Contact the resource owner or administrator to request access
"message" : " Container not found "
Error Code Title Description Resolution CONTAINER_NOT_FOUNDContainer not found The requested container does not exist or you do not have permission to access it. Verify the container ID is correct and that you have access to the project it belongs to. RESOURCE_NOT_FOUNDResource not found The requested resource does not exist or has been deleted Verify the resource ID and ensure it exists
"message" : " Storage share already exists. "
Error Code Title Description Resolution SHARE_ALREADY_EXISTSShare Already Exists A share with the same source path and target already exists. Update the existing share or choose a different target.
"error" : " Too Many Requests " ,
"message" : " Rate limit exceeded "
Error Code Title Description Resolution RATE_LIMIT_EXCEEDEDRate limit exceeded You have exceeded the rate limit for this endpoint Wait before making additional requests, or upgrade your plan for higher limits
const share = await client . api . storageShares . create ( {
id: " 507f1f77bcf86cd799439012 " ,
source_path: " /home/shared/documents " ,
target_container_id: " 507f1f77bcf86cd799439033 " ,
description: " Read-only access to team documentation "
Update share properties. Only the fields you include are changed. Pass null to clear alias, label, description, or expires_at.
Name In Type Required Description idpath string Yes Source container ID shareIdpath string Yes Share ID
Name Type Required Description modestring No Mount mode. Allowed: readonly, readwrite. aliasstring No Alias (lowercase alphanumeric, 3–63 chars). Pass null to remove. labelstring No Label for grouping shares. Pass null to remove. descriptionstring No Description (max 1000 chars). Pass null to remove. enabledboolean No Enable or disable the share. expires_atnumber No Unix timestamp (seconds) for auto-expiry. Pass null to never expire.
"message" : " Storage share updated successfully " ,
"id" : " 507f1f77bcf86cd799439011 " ,
"source_container_id" : " 507f1f77bcf86cd799439022 " ,
"source_path" : " /home/app/shared-data " ,
"target_container_id" : " 507f1f77bcf86cd799439033 " ,
"target_project_id" : null ,
"target_type" : " container " ,
"description" : " Updated to read-write access " ,
"expiry_notified" : false ,
"created_by" : " 507f1f77bcf86cd799439044 " ,
"created_at" : " 2025-01-15T10:30:00.000Z " ,
"updated_at" : " 2025-01-15T14:45:00.000Z "
"message" : " Validation failed "
"message" : " Authentication token required "
"message" : " Insufficient permissions "
"message" : " Storage share not found "
const updated = await client . api . storageShares . update ( {
id: " 507f1f77bcf86cd799439022 " ,
shareId: " 507f1f77bcf86cd799439011 " ,
description: " Updated to read-write access "
Allow the target (receiver) container owner to accept or reject an incoming share. A share is only mounted if both the creator’s enabled flag and the receiver’s mount override are true.
Name In Type Required Description idpath string Yes Target container ID (receiver container) shareIdpath string Yes Share ID to toggle
Name Type Required Description mountboolean Yes Set to true to accept and mount the share, false to reject or unmount it.
"message" : " Share enabled for mounting successfully " ,
"id" : " 507f1f77bcf86cd799439011 " ,
"source_container_id" : " 507f1f77bcf86cd799439022 " ,
"source_path" : " /home/app/shared-data " ,
"target_container_id" : " 507f1f77bcf86cd799439033 " ,
"target_project_id" : null ,
"target_type" : " container " ,
"alias" : " prod-data-share " ,
"description" : " Shared application data directory " ,
"expires_at" : 1735689599 ,
"expiry_notified" : false ,
"created_by" : " 507f1f77bcf86cd799439044 " ,
"created_at" : " 2025-01-15T10:30:00.000Z " ,
"updated_at" : " 2025-01-15T14:45:00.000Z "
"id" : " 507f1f77bcf86cd799439099 " ,
"share_id" : " 507f1f77bcf86cd799439011 " ,
"container_id" : " 507f1f77bcf86cd799439033 " ,
"created_at" : " 2025-01-15T14:45:00.000Z " ,
"updated_at" : " 2025-01-15T14:45:00.000Z "
"error" : " VALIDATION_ERROR " ,
"message" : " This share does not target the specified container " ,
"share_id" : " 507f1f77bcf86cd799439011 " ,
"container_id" : " 507f1f77bcf86cd799439099 " ,
"target_container_id" : " 507f1f77bcf86cd799439033 " ,
"target_project_id" : null
"message" : " Authentication token required "
"message" : " Insufficient permissions "
"message" : " Storage share not found "
await client . api . storageShares . toggleIncomingMount ({
id: " 507f1f77bcf86cd799439033 " ,
shareId: " 507f1f77bcf86cd799439011 " ,
Remove a storage share. The share ID is globally unique, so the source container ID is not required. The share is automatically unmounted from all targets.
Name In Type Required Description shareIdpath string Yes Share ID (globally unique, no container ID needed)
"message" : " Storage share deleted successfully "
"message" : " Authentication token required "
"message" : " Insufficient permissions "
"message" : " Storage share not found "
await client . api . storageShares . delete ({
shareId: " 507f1f77bcf86cd799439011 "