link is a Daysync-owned storage key, and Daysync builds the public URL from it on read.
Because the API can’t receive raw file bytes, you attach a file in two steps:
POST /v1/attachmentswith a public URL — Daysync fetches the file, stores it, and returns alink.- Pass that
linkin theattachment/attachmentsfield of a create or update on the target resource.
Upload an attachment
url and stores it in Daysync-hosted storage. Returns the storage key to use as attachment.link.
Scope: schedule.write
Body
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Public https/http URL of the file to fetch. Must be directly reachable — see the constraints below. |
fileName | string | No | Display file name. If omitted, it’s derived from the URL. The extension is set from the response Content-Type. |
data
| Field | Type | Description |
|---|---|---|
link | string | Daysync storage key — pass this verbatim as attachment.link. It is not a full URL; Daysync builds the public URL from it. |
fileName | string | The stored file name. |
fileSize | number | Size in bytes. |
Attaching the file to a resource
Use the returnedlink in the attachment (single) or attachments (array) field on a create or update:
link is required. Attachments are supported on:
- Schedule items —
attachment/attachmentson create and update (with upsert/delete semantics on update). - Venues —
attachments. - Accommodation —
attachment/attachments. - Guest list entries —
attachment/attachments.
Always obtain
link from POST /v1/attachments. Don’t pass an external URL (e.g. your own CDN link) directly as attachment.link — Daysync treats link as one of its own storage keys and builds the public URL from it, so a foreign URL renders as a broken link.See also: Schedule, Venues, Scopes & Permissions.

