Save a Private Website Draft
website.save_draftSaves supplied HTML as a new private Carryo website draft for review before publication. Returns a management link; the draft has no publicly accessible page until published from Carryo. Passwords and restricted access are configured in the Carryo web app. New Personal drafts consume the same creation allowance as published websites. Personal is the default destination; workspaceId selects a user-chosen team. Pass attached images through imageFiles. For one attachment, assets needs only its relative website path; Carryo matches the attachment automatically. For multiple attachments, use fileIndex (0 for the first imageFiles entry). Do not invent file IDs or ask for a public URL when attachment upload is available. Known fileId references and fetchable HTTP(S) sourceUrl imports also work. Carryo imports and hosts its own copy. Base64 image bytes and data URLs are unsupported. Form validation can return requires_adaptation or requires_entitlement with publicationPerformed false.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| 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 website path. With one imageFiles attachment, path alone uses that attachment. Otherwise select exactly one source: fileIndex (zero-based imageFiles position), a known fileId, or a fetchable HTTP(S) sourceUrl. Never guess generated file IDs. Existing images are preserved when omitted; 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 through the host's file upload support. The host supplies file_id and download_url. Map each attachment to a website path in assets: with one attachment, path alone is sufficient; with multiple attachments, use fileIndex. The assistant does not need to know generated file IDs or download URLs. Temporary URLs are import sources, not hosted image URLs. Clients without file input support can omit this field. | |
| htmlContent | Yes | Complete HTML for the private Carryo draft page, presentation, slide deck, proposal, report, landing page, dashboard, invitation, portfolio, or one-page website. | |
| workspaceId | No | Optional exact workspaceId of the Carryo team explicitly selected by the user. The default destination is Personal when omitted. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| forms | No | ||
| status | No | ||
| draftId | No | Carryo private draft identifier | |
| message | No | ||
| guidance | No | ||
| expiresAt | No | Optional ISO-8601 expiration timestamp | |
| manageUrl | No | Carryo URL where the user can review access settings and publish the draft | |
| workspaceId | No | Workspace that owns the draft; omitted for Personal | |
| currentVersionNumber | No | ||
| publicationPerformed | No |