| forms | No | Optional definitions for JavaScript/React forms using window.CarryoForms.submit(key, values), which resolves on acceptance and rejects on failure. Stable keys and field names identify forms across edits. Static collection forms are inferred from data-carryo-form="key" and named controls without duplicate definitions; placeholder submit handlers can block collection. Local calculator/filter forms use data-carryo-local and do not collect responses. Existing external endpoints retain their destination. Visitor acknowledgement is disabled unless explicitly enabled. | |
| assets | No | Optional image assets to add or replace. Each entry requires a relative HTML path and exactly one of fileId (matching imageFiles[].file_id) or sourceUrl (a fetchable HTTP(S) image URL). Existing images are preserved when omitted. The hosted-image allowance applies to the final website collection; replacing an existing path does not use another slot. Base64 bytes and data URLs are unsupported. | |
| fileName | Yes | Short internal file name, for example client-proposal.html, board-deck.html, report.html, or landing-page.html. | |
| expiresAt | No | Optional ISO-8601 expiration timestamp | |
| customSlug | No | Optional user-chosen URL ending using lowercase letters, numbers, and hyphens. An automatic URL is generated when omitted. | |
| imageFiles | No | Optional image attachments supplied by a compatible host, with file_id and download_url. Each attachment is mapped to a relative HTML path by an assets entry with the matching fileId. Temporary download URLs are import sources, not hosted image URLs. Clients without file input support can omit this field. | |
| htmlContent | Yes | Complete HTML for the page, presentation, slide deck, proposal, report, landing page, dashboard, invitation, portfolio, or one-page website to publish. | |
| sharingMode | Yes | Publishing mode for the Carryo page. Only public live links are supported here. | |
| workspaceId | No | Optional exact workspaceId of the Carryo team explicitly selected by the user. The default destination is Personal when omitted. | |