Share Link
A tokenized URL for sharing a Droplet — internal (SSO) or external (public domain), optionally gated by password, email verification, or an allow-list.
A Share Link is the external-sharing primitive for Droplets. Internal links live on the CloudFront domain and require Hi Marley SSO; external links live on the public fromhimarley.com domain and can be additionally gated by magic-link email verification, a password, or an allow-list of exact emails / apex domains / wildcard subdomains. Default external expiry is 30 days; default magic-link verification is on for external links.
The Share Link object
Every Share Link carries these attributes.
Attributes
?token={token}). Globally unique. Lambda@Edge looks it up in DynamoDB to enforce access rules before the asset is served.false (default) — internal link on the CloudFront domain, requires Hi Marley SSO. true — external link on fromhimarley.com, accessible to anyone (subject to the gates below).alice@acme.com), an apex domain (@acme.com), or a wildcard subdomain (*.acme.com). Patterns with fewer than 2 labels after the wildcard (e.g. *.com) are rejected server-side. Empty array = no restriction.null (subject to your role) to remove expiry. After expiry, the edge returns 410.false to immediately disable the link. The edge cache is re-synced and CloudFront is invalidated on disable. The link is preserved (re-enabling restores access).More attributes+ Show 7− Hide
{linkId} in PATCH / DELETE paths.hasPassword: boolean instead.passwordHash on every write.requireVerifiedEmail (magic-link). Preserved for old links; new external links default to requireVerifiedEmail: true.{
"id": "clx6pqr...",
"appId": "clx1abc...",
"token": "abc123def456",
"name": "For Acme partner review",
"isExternal": true,
"requireEmail": false,
"requireVerifiedEmail": true,
"allowedEmails": [
"alice@acme.com",
"@acme-legal.com",
"*.partner.com"
],
"expiresAt": "2026-07-14T12:00:00.000Z",
"enabled": true,
"createdById": "usr_alex",
"createdAt": "2026-06-14T12:00:00.000Z",
"updatedAt": "2026-06-14T12:00:00.000Z"
}Methods
Endpoints to operate on a Share Link. The example switches between curl, drop CLI, and MCP via the dropdown — your choice persists across the page.
List share links
Return every share link for a Droplet, with view counts and the rendered URL. Owners and editors only.
Parameters
drop shares list q2-retro-board[
{
"id": "clx6pqr",
"token": "abc123def456",
"name": "For design review",
"hasPassword": false,
"requireEmail": false,
"requireVerifiedEmail": true,
"expiresAt": "2026-07-14T12:00:00.000Z",
"enabled": true,
"createdAt": "2026-06-14T12:00:00.000Z",
"viewCount": 5,
"isExternal": true,
"allowedEmails": [],
"url": "https://fromhimarley.com/q2-retro-board?token=abc123def456"
}
]Create a share link
Create a new share link. External links default to a 30-day expiry and use the public fromhimarley.com domain. Internal links use the CloudFront domain and require Hi Marley SSO. Optional gates: password, requireVerifiedEmail (magic-link), allowedEmails (exact / apex-domain / wildcard subdomain).
Parameters
drop shares create q2-retro-board --name "For Acme partner review" --is-external --require-verified-email --allowed-emails alice@acme.com,@acme-legal.com,*.partner.com{
"id": "clx6pqr",
"token": "abc123def456",
"name": "For Acme partner review",
"hasPassword": false,
"requireEmail": false,
"requireVerifiedEmail": true,
"expiresAt": "2026-07-14T12:00:00.000Z",
"enabled": true,
"createdAt": "2026-06-14T12:00:00.000Z",
"viewCount": 0,
"isExternal": true,
"allowedEmails": [
"alice@acme.com",
"@acme-legal.com",
"*.partner.com"
],
"url": "https://fromhimarley.com/q2-retro-board?token=abc123def456"
}Update a share link
Partial update — only supply fields you want to change. Common cases: toggle enabled to disable / re-enable, extend expiresAt, replace allowedEmails, rotate the password. Allow-list edits emit a SHARE_LINK_ALLOWLIST_UPDATED audit event with the sorted before/after diff. Allow-list validation is all-or-nothing — one bad entry rejects the whole list.
Parameters
drop shares update q2-retro-board clx6pqr --allowed-emails alice@acme.com,bob@acme.com,@partner.com{
"id": "clx6pqr",
"token": "abc123def456",
"name": "For Acme partner review",
"hasPassword": false,
"requireEmail": false,
"requireVerifiedEmail": true,
"expiresAt": "2026-07-14T12:00:00.000Z",
"enabled": true,
"createdAt": "2026-06-14T12:00:00.000Z",
"isExternal": true,
"allowedEmails": [
"alice@acme.com",
"bob@acme.com",
"@partner.com"
]
}Delete a share link
Delete the link and remove it from the edge access cache. The link stops working immediately. There is no soft-delete — use enabled: false via Update for recoverable disable.
Parameters
drop shares delete q2-retro-board clx6pqr{
"success": true
}List views
Return the view log for a share link — one row per view with email (if captured / verified), IP address, and timestamp. Useful for after-the-fact "who actually opened this" auditing on external shares. Up to 100 most recent rows.
Parameters
drop shares views q2-retro-board clx6pqr[
{
"id": "clxview1",
"email": "alice@acme.com",
"verified": true,
"ipAddress": "203.0.113.***",
"viewedAt": "2026-06-15T14:22:00.000Z"
},
{
"id": "clxview2",
"email": "bob@acme.com",
"verified": true,
"ipAddress": "203.0.113.***",
"viewedAt": "2026-06-15T15:08:00.000Z"
}
]