/api/v1/documents/{slug}Update a document
Replaces a document's content, and optionally its title, password and expiry. Send a token as the owner or an editor, or the document's edit secret in X-Edit-Secret.
Guide: Edit key
Code samples and Try itPath parameters
#slugstringRequiredThe document's address: the part after
markdrop.in/.
Headers
#X-Edit-SecretstringThe document's edit secret (
sk_…), for a document published without an account. See Edit key.
Request body
#application/json, required
titlestringShown on the page and in link previews. Up to 200 characters.
contentstringRequiredThe document's Markdown. 1–500,000 characters.
read_passwordstringReaders must enter this password before they see the content. Up to 100 characters.
remove_passwordbooleantrueremoves the password. Defaultfalse.expires_in"never" | "1h" | "1d" | "7d" | "30d" | "custom"When the document is deleted.
customneedscustom_expires_at.custom_expires_atstring (date-time)The deletion time, when
expires_iniscustom. Must be in the future. ISO 8601, for example2026-11-30T12:00:00Z.
Responses
#200OK.422The request didn't validate.detaillists each problem, with where it is (loc) and why (msg).429Too many requests from your IP address. Wait the seconds inRetry-After.
200 response: 35 fields (DocumentResponse)
slugstringThe address:
markdrop.in/<slug>.urlstringThe link to share.
folder_patharray of stringtitlestring | nullShown on the page and in link previews.
contentstringThe document's Markdown.
created_atstring (date-time)ISO 8601, for example
2026-11-30T12:00:00Z.updated_atstring (date-time)ISO 8601, for example
2026-11-30T12:00:00Z.expires_atstring (date-time) | nullISO 8601, for example
2026-11-30T12:00:00Z.viewsintegerDefault
0.is_password_protectedbooleanDefault
false.is_ownedbooleanDefault
false.is_ownerbooleanDefault
false.idstring | nullrefstring | nullgoogle_doc_urlstring | nullgoogle_doc_stalebooleanDefault
false.vscode_syncedbooleanDefault
false.encryptedbooleanSet by clients that encrypt in the browser:
contentandtitleare already ciphertext. The server never sees the key. Defaultfalse.kindstringmarkdownfor a document,artifactfor a file. Default"markdown".mimestring | nullrendererstring | nulltype_labelstring | nullsize_bytesinteger | nulloriginal_filenamestring | nullartifact_urlstring | nulldownload_urlstring | nullposter_urlstring | nullmediaobject | nullfile_versioninteger | nullworkspace_urlstring | nullThe address on its workspace's own domain, when it has a live one.
access_levelstringWho can open it:
link(anyone with the link),private(only you and the people you share it with) orworkspace(members of its workspace). Default"link".workspace_idstring | nullcanobject | nullWhat you may do with it:
edit,replace,settings,access,rename,delete,share,move,unshare.read_ticketstring | nullaccess_epochintegerDefault
0.