/api/v1/artifactsPublish an uploaded file
Publishes a file uploaded with Get a single upload URL, after checking its real size and type.
Request body
#application/json, required
blob_keystringRequired1–300 characters.
titlestringShown on the page and in link previews. Up to 200 characters.
filenamestringUp to 255 characters.
custom_slugstringYour own address:
markdrop.in/<custom_slug>. Letters, digits,-and_. Taken or reserved addresses answer409. 3–50 characters. Matches^[a-zA-Z0-9_-]+$.expires_in"never" | "1d" | "7d" | "30d" | "custom"When the document is deleted.
customneedscustom_expires_at. Default"never".custom_expires_atstring (date-time)The deletion time, when
expires_iniscustom. Must be in the future. ISO 8601, for example2026-11-30T12:00:00Z.read_passwordstringReaders must enter this password before they see the content. 1–100 characters.
access_level"private" | "link" | "workspace"Who 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".workspacestringFile it in this workspace: the workspace's id. 1–64 characters.
folderstringAn existing folder of
workspace: its id or its path, likeguides/setup. 1–400 characters.
Responses
#201Created.401No token, or the token is revoked or mistyped.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.
201 response: 22 fields (ArtifactCreateResponse)
slugstringurlstringtitlestring | nullShown on the page and in link previews.
kindstringDefault
"artifact".mimestringrendererstringtype_labelstringsize_bytesintegeroriginal_filenamestring | nullartifact_urlstringworkspace_urlstring | nulldownload_urlstringposter_urlstring | nullmediaobject | nullcreated_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_ownerbooleanDefault
false.edit_secretstringworkspace_errorstring | null