/api/v1/documents/{slug}Read a document
Returns a document's content and details, if you may read it. For a private or workspace document, send a token; for a password-protected one, send the password in X-Read-Password.
A document whose address changed answers at its old address too, but only to someone who can read it: 200 with "moved": true and the current slug.
Path parameters
#slugstringRequiredThe document's address: the part after
markdrop.in/.
Headers
#X-Read-PasswordstringThe password of a password-protected document.
X-Edit-SecretstringThe document's edit secret (
sk_…), for a document published without an account. See Edit key.X-Markdrop-WorkspacestringX-Markdrop-Pathstring
Responses
#200OK.401It needs a token, or the right password.404No such document, or you can't open it.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.