Dashboard
Open Compose, choose Schedule/Draft, and check Save as draft. The orange Post button changes to Save Draft with a clock icon. Click it to save; clicking it again updates the same draft. Uncheck Save as draft when you want to post or schedule. Find drafts mixed with your other posts in Posts, in list, grid, or calendar view. Drafts are ordered by the date they were first saved; editing does not change that date. The calendar shows a draft on that day in your browser timezone. Choose Edit draft to change it, save again, or choose Post or Schedule. Delete removes the saved draft; it does not delete uploaded media. Move or delete a profile’s unpublished drafts before deleting that connection profile. You can move a draft by changing its profile in Compose or updating itsprofile_id through the API.
If a draft changed in another tab, reload it before saving. If a submission response was lost, reloading shows the original publishing jobs.
API
data.id, data.revision, and data.status: "draft". Read it with GET /api/v1/drafts/{id}. Use PATCH to edit and DELETE to delete, with expected_revision in the JSON body. List drafts with GET /api/v1/drafts?profile_id=ProfilePublic1&page=1&per_page=20.
Only POST /api/v1/drafts/{id}/submit publishes. Send {"expected_revision":2} to publish now, or add scheduled_at and an optional scheduled_timezone to schedule. Read the draft first and use its actual revision. Repeat the exact submission revision and schedule to recover the same jobs after a lost response. Change neither value on a retry.
Upload media first and use its https://files.mallary.ai/... URL. Uploaded media has a public URL even while the draft is unpublished. Saves reject schedule fields. Supplied lists and platform_options replace their saved values; omitted fields stay unchanged.
MCP, Claude, and ChatGPT
The draft tools aremallary_create_draft, mallary_list_drafts, mallary_get_draft, mallary_update_draft, mallary_delete_draft, and mallary_submit_draft.
Ask your AI: “Save this as a draft in Mallary. Do not publish or schedule it.” This asks it to store the post in your account. “Write a draft here” only asks for text in the chat. Saving a draft never gives permission to publish it.
Read before editing, deleting, or submitting. Writes need mallary.publish; reads need mallary.read. ChatGPT submission needs both scopes so it can check the saved content first. Saved drafts are available to all users across all surfaces, including Free and Starter accounts. Publishing and scheduling keep their normal rules.
The Claude connector shares the standard MCP tools. ChatGPT uses its existing plugin endpoint; new tools become available after OpenAI’s tool checks. If the draft tools are not shown in your chat yet, use the dashboard or API.

